• Как построить сеть с нуля в офисе (160+ компьютеров, 20+ IP камер)?

    Zoominger
    @Zoominger Куратор тега Компьютерные сети
    System Integrator
    Открыл вопрос и из монитора хлынул поток воды, так что сразу к вопросам:

    Какое оборудование (модели) ставить на уровень доступа, распределения?

    Да Микроты ставьте, если прокачаться хотите. В качестве свитчей - HP, например. Можно и D-Link, не слушайте диванных кукаретиков.

    Как делать - 4 коммутатора на все устройства (в шкафу), или же по одному на этажах и центральный в серверную?

    Всё в шкаф, чтоб потом не бегать по этажам и не искать причину поломки.

    Как нарезать vlan? По этажам? По кабинетах?

    По кабинетам геморройно, я бы вообще ничего не делал, сеть-то маленькая.

    Так и не знаю делать ли интернет розетки или нет)

    По уму - надо бы сделать всё грамотно, с нуля, с перфорацией, кабель-каналами и маркировкой, но лично я бы этим занимался, если бы зарплата шла от 70+ тыр минимум без последующих уменьшений и увольнений.

    А, да, и AD бы всё-таки настроить и DNS с DHCP на Windows Server зарулить.
    Ответ написан
    15 комментариев
  • Как еще ускорить верстку?

    @McBernar
    Думаю, проблема здесь не в инструментах, а в самой скорости работы — скорость печати, умение быстро принимать решения, умение правильно раскладывать верстку на блоки, возможно, где-то пишете лишнего, когда можно просто взять либу, возможно, вы работаете на фрилансе с дизайнерами-идиотами, у которых по 40 видов стиля для заголовков.

    Уверен, придет с опытом.

    С инструментами у вас все хорошо. И не слушайте тут никого, кто «вертел бэм и галп».
    Ответ написан
    1 комментарий
  • Вопрос с собеседования - почему не меняется объект?

    lastuniverse
    @lastuniverse
    Всегда вокруг да около IT тем
    потому что в строке
    let products = obj.data

    вы по сути в products вставляете ссылку на obj.data

    а в строке
    products = []

    вы заменяете эту ссылку на другую

    при этом содержимое
    obj.data
    тоже ссылка, и она остается прежней.

    другими словами: если вы записали на листок телефон своей девушки а потом найдя другую девушку, про старую решили забыть и зачеркнув ее номер написали номер новой девушки то прежня девушка никуда не исчезла? она ведь по прежнему сидит на своем номере телефона и ждет вашего звонка? (в данной ситуации products и есть этот листок с номером ))))

    ЗЫ: был несколько невнимателен, не достиг моего мозга последний абзац вашего вопроса. Ответили вы верно.
    Ответ написан
    2 комментария
  • Что делать если увольняют с работы(IT компания. Скорее всего по статье за несоответствие занимаемой должности)?

    php666
    @php666
    PHP-макака
    Пригласили работать в компанию Web-программистом. Разрабатывать сайты на WordPress, Joomla, Bitrix, Yii.
    не программистом, а чернорабочим по клепанию говносайтов - низшая форма деятельности в IT.

    я проработал чуть более месяца и почему то не устроил работодателя по срокам
    ты плохой раб, да.

    Что делать если увольняют с работы
    Уволиться. Желательно, послав их всех в известном направлении, высказав все, что думаешь. Открыть сайты с отзывами о работодателях и написать о них отзывы, что бы другие к ним не ходили работать.

    Потом открыть эту статью и прочитать от корки до корки.
    Ответ написан
    7 комментариев
  • Замыкания в чем конкретно разница?

    for (var i = 0; i < thumbnails.length; i++) {
      thumbnails[i].addEventListener('click', function () { // Корень проблемы здесь.
        // Ты обьявляешь (не вызываешь!) в цикле анонимную функцию. При создании эта функция получает
        // ссылку на внешнее лексическое окружение, которым, в данном случае, является тело цикла for.
        // Когда функция вызывается, в своем лексическом окружении i она не находит, и продолжает поиск
        // во внешнем. К моменту вызова, цикл завершен, и i в его лексическом окружении равна thumbnails.length
        fullPhoto.src = photos[i];
      });
    }
    Ответ написан
    Комментировать
  • Карта мира с детализацией до города и привязкой своих меток?

    @ber_enot
    Веб-разработчик, Vue.js / Node.js
    Посмотрите на библиотеки:
    Leaflet
    OpenLayers

    Источник карт можно задать самому (Яндекс.Карты, Google Maps, OSM и любые другие).
    На карту можно добавлять метки, полигоны, попапы и вообще всё, что душе угодно.

    PS. Работал с обеими библиотеками, по своему опыту рекомендую Leaflet - меньше кода и в целом понятнее.
    Ответ написан
    1 комментарий
  • Как реализовать карту?

    Решал некоторое время назад похожую задачу и использовал вот такую библиотеку https://www.react-simple-maps.io/
    Там и карта простая, и маркеры можно кастомные выводить, и географию до границ США ограничить
    Ответ написан
    2 комментария
  • Как можно создать такую анимацию? Точнее с помощью чего?

    OxCom
    @OxCom


    Пробуйте, играйтесь с размерами блоков и позиционированием изображения. В большом блоке выглядит сносно, все сочленения все же не совпадают. Тут надо посидеть над формулой и процентами.
    Ответ написан
    Комментировать
  • Как организовать процесс web-разработки?

    @roman_gorevoy
    Исполнительный директор "Евросайты"
    На самом деле конфигураций много и разнятся в зависимости от уровня новичка и его желании потратить время на подготовку. Общие принципы такие:

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

    GIT на всех площадках для удобной работы. Обязательно удалённый репозиторий, на мой вкус лучше GitLab или BitBucket, GitHub для приватных проектов не выгоден и не удобен.

    Параллельно подтяните Bash команды.

    Среда разработки (IDE). Тут на выбор много чего есть. Самые популярные это PHPStorm (платный) и NetBeans. Если ничего не понравилось из этого, то можно посмотреть в сторону Visual Studio Code, это не прямо полноценная IDE, но тоже вполне себе редактор, для новичка может быть самое то. К тому же он бесплатен. Всякие Atom и Sublime не советую.

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

    И немного не по теме, но всё же - очень полезно новичку будет начать прививать себе умение писать нормальный код. В случае PHP обязательно изучить PHPDoc и сразу начать его использовать, PSR(минимум 1-2-4), и основы проектирования (что такое MVC, MVP и пару основных паттернов, типа Singleton)

    Основы работы с Git можно получить в статье, где в удобном формате продемонстрированы все основные git команды с примерами
    По всем bash командам можно читать статьи на этом ресурсе
    Ответ написан
    Комментировать
  • Почему загружено только 12 процессоров из 24?

    @BorisKorobkov
    Web developer
    Если у вас виртуалка, то это просто хостер вам заблокировал часть ядер. Ну или просто неправильно настроил вашу виртуалку.
    Ответ написан
    4 комментария
  • Что такое и зачем нужен новый тип данный Symbol в ES15?

    sfi0zy
    @sfi0zy Куратор тега JavaScript
    Creative frontend developer
    Что такое

    Новый тип данных symbol - это попытка ввести уникальные идентификаторы. Все крутится вокруг функции Symbol. Это не конструктор в полном смысле слова, с new ее использовать не получится. Это скорее маленькая фабрика. Она просто возвращает новый символ каждый раз. Это важно. Каждый раз новый. В качестве аргумента можно передать строку, но она используется только для отладки.
    Symbol() === Symbol() // false

    Что такое глобальный символ? Какой еще реестр?

    Есть Symbol.for(), это еще один метод, который не просто возвращает символ, но и сохраняет информацию о том, для какого параметра он создавался. Внешне логика работы напоминает хеширование - для разных параметров символы получаются разные, а для одинаковых - одинаковые.
    Symbol.for('my-string') === Symbol.for('my-string') // true
    Symbol.for('my-string') === Symbol.for('another-string') // false


    Зачем это надо?

    Применение этого типа данных - предмет для споров. Большая часть кейсов из интернета - это попытки поиспользовать новую фишку только ради того, чтобы ее поиспользовать. Самые популярные и практически применимые варианты:
    • В качестве ключа для доступа к свойству объекта. Грубо говоря вместо obj[key] использовать obj[some-magic-unique-key]. Позволяет избежать коллизии этих самых ключей если вы расширяете существующий объект из сторонней библиотеки. На практике встречается не очень часто, особенно в небольших проектах, но по всей видимости это - причина появления символов в языке.
    • Некоторая иллюзия приватных свойств. Символы по-своему работают с циклами и многими методами, связанными со свойствами объекта, становясь невидимыми для них. В результате можно разделить "все свойства с обычными ключами" и "все свойства с ключами-символами". А еще можно запутать код до безобразия.
    • Также, пользуясь предыдущей мыслью, можно сделать что-то вроде метаданных для любого объекта, которые опять же не сломают существующий код, но могут быть использованы для хранения какой-то информации и мередачи ее между отдельными модулями. Штука довольно интересная.
    Ответ написан
    Комментировать
  • Как могут взломать базу данных MySQL?

    @Z1odeypnd
    Здравствуйте.
    Технологий взлома уйма.
    В зависимости от того, какие привелегии получил "хакер" при вломе вашей БД - зависит очень много.
    Если он получил доступ только на чтение, то захешированные в MD5 пароли ему мало чем помогут, т.к. MD5 не имеет алгоритма обратной расшифровки и хэширование спасёт тем, что взломщик получивший доступ на чтение паролей - самих паролей не получит (есть конечно словарь MD5 хешей, то это другая история).
    Вообще для защиты любой БД есть несколько золотых правил:
    0. Переименовать дефолтного админа и защитить его сложным паролем.
    1. Для каждой БД должен создаваться свой владелец и несколько пользователей с разными наборами привелегий.
    2. Ни у одного из пользователей, созданных в п.1 не должно быть прав на изменение таблиц в соседней БД.
    Если есть необходимость обновлять соседние БД - делайте это триггером в соседней БД.
    3. Каждый внешний веб-сервис должен ходить в БД только с тем набором прав, которых ему достаточно для работы. Т.е. не нужно везде прописывать root и надеяться на лучшее.
    В этом случае, если взломщик получит привелегии этого пользователя, то сможет сделать только то, что разрешено этому пользователю. Тогда не выйдет "удалить все и сразу".
    Например, для наполнения католога товаров в интернет-магазине может быть отдельный пользователь, с правами на SELECT, INSERT, UPDATE, DELETE в таблице SHOP_PRODUCTS, например. И ничего более.
    А пользователи, приходящие в магазин за покупками могут делать SELECT, INSERT, UPDATE, DELETE только в таблицу CUSTOMER_CART. В коде веб-сервиса, естественно должна быть проверка, что покупатель редактирует СВОЮ корзину.
    Для показа каталога товаров - отдельный пользователь, имеющий право только на SELECT из таблицы SHOP_PRODUCTS.
    А продажу товара может делать отдельный пользователь, с правом только на UPDATE колонки AMOUNT в таблице SHOP_PRODUCTS. Пример:
    GRANT SELECT ON shopdb.SHOP_PRODUCTS TO 'trader_bot'@'shophost';
    GRANT UPDATE (AMOUNT) ON shopdb.SHOP_PRODUCTS TO 'trader_bot'@'shophost';

    И т.п. По принципу "Разделяй и властвуй."
    4. Писать запросы с использованием placeholder'ов (подстановку данных), что убережёт от SQL-инъекций.
    Пример:
    $DB->select('SELECT * FROM tbl WHERE a=? AND b=?', $a, $b);

    5. Если и БД и приложение, используещее БД установлены на одном сервере - отключить удалённый доступ к БД и работать через сокеты.
    6. Последний, но самый важный - БЕКАПЫ. При удалении всего и вся - нужно откуда-то восстановиться. Делайте бекапы и храните на отдельном сервере (не выставленном наружу).
    Ответ написан
    3 комментария
  • Как могут взломать базу данных MySQL?

    @mirzok
    Information Security
    Взломать могут через web-приложение, найдя SQL-инъекцию в коде. Это часто бывает в самописных CMS на PHP, где пренебрегают использованием синтаксиса параметров для запроса и делают простое сложение строк.

    Есть подозрение, что взломали? Проверьте свой код, проверьте своё приложение. Для этого каждый URL, где есть какие-либо параметры, прогоните через sqlmap - специальная программа для поиска таких уязвимостей. Если не поможет или слишком долго, то попробуйте онлайн сканерами вроде metascan.ru и detectify.com.

    И самое банальное - меняйте пароли доступа и делайте ограничение на вход по порту 3306 (mysql), если есть такая возможность.
    Ответ написан
    Комментировать
  • Какой выбрать биллинг?

    creativeworm
    @creativeworm
    Даже под оффлайн-проект я приспособил BILLmanager. До 50 клиентов бесплатно.
    Ответ написан
    3 комментария
  • Где добывать заказы на разработку сайтов вне фриланс-биржи?

    @Stalinko Куратор тега Фриланс
    PHP'шник и фрилансер до мозга костей
    Учите английский и учитесь уважать себя.

    1. На зарубежных биржах платят очень хорошо тем, кто реально по уровню выше среднего.
    2. Забейте на Вась, готовых работать за еду. Вы ведь лучше них (если нет, то на этом стоит прекратить обсуждение)? Состоятельные клиенты гонятся за качеством, а не низкой ценой, и отметают всех "индусов" на первом же этапе. Смело ставьте себе ставку повыше. Вполне возможно это улучшит ваши результаты.
    3. Реальная тема LinkedIn. Просто зарегайте профиль, добавьте в друзья всех своих коллег и знакомых, кто там зареган, заполните всю инфу про свои умения, и вы удивитесь как к вам сами начнут стучаться HR'ы. Иногда с довольно вкусными предложениями.
    4. StackOverflow Jobs, remote work.
    Ответ написан
  • Каким способом (книги, курсы, лекции, вебинары и пр.) порекомендуете учить WEB? Расскажете свои истории становления в этой сфере?

    @Ariurn
    Единственная книга, которую мне за всё время пришлось использовать - Герберт Шилдт по плюсам. Да и то не для Web-разработки, а чисто для понимания основ логики программирования.
    Если говорить конкретно про Web: самоучка методом проб и ошибок, лазанья по форумам итд. Сначала просто начал глядеть исходный код различных сайтов (было интересно, как оно всё устроено). Потом начал гуглить на различные темы типа: минимальный html шаблон, основы css итд. Вполне достаточно статеек/мануалов с различных тематических сайтов. Сначала пробуете писать простенькие одностраничники, безо всякой серверной части. Потом попробуйте поиграться со стилями, js/jquery фишками. Это Front-end.
    Касательно Back-end'a: сначала рисовал простые скрипты на php (хотя и я бы на вашем месте сразу полез в python) по типу динамического вывода той или иной информации. Потом научился соединять с БД (PostgreSql, MySql, SqLite итд, погуглите разные варианты, каждому своё). Дальше пробовал что-то типа написания мини-блога.
    Когда приучитесь творить подобные мини-проекты, посмотрите в сторону фреймворков.
    Для фронтенда это Bootstrap, Semantic-UI (как наиболее адекватные с моей точки зрения).
    Для бэкэнда (в зависимости от языка, на котором пишете): для PHP - Laravel, для Python - Django.
    В любом случае, основные советы следующие:
    1) Как можно больше практики. Теория в этом деле ничего не стоит, опыт - ваше всё.
    2) Сразу учитесь "этике" программирования: соблюдайте табуляцию, давайте переменным/классам нормальные названия итд.
    3) stackoverflow - ваше всё (вы ещё попомните эти слова).
    4) Хорошие работы (на поздних этапах) сохраняйте для будущего портфолио (будет, что показать).
    Ответ написан
  • Что нужно уметь, чтобы я справедливо мог вписать git в резюме?

    bask
    @bask
    Этого достаточно.
    Но придерживаться Git Flow крайне рекомендую.
    Здесь простым языком и по-русски:
    https://proglib.io/p/git-github-gitflow/
    Ответ написан
    1 комментарий
  • Какие книги по веб-разработке на данный момент актуальны?

    @sdgroup14
    я бы вам посоветовал очень хорошо понять базу https://learn.javascript.ru/ (по несколько раз прочитывал весь сайт перед собеседованиями, потому что именно такие вещи и будут спрашивать и этими методами вы всегда будете пользоваться).
    Насчет css читайте все что только можно. Суть знаний в css - это опыт. Я свои знания заработал только на практике. Ни в одном гайде не встречал к примеру ситуации, "что в Safari(IOS) в некоторых ситуациях если вы div сделали js кликабельным - то нужно div сделать cursor: pointer... иначе не будет отрабатывать обработчик" + Интерпритаторы в разных браузерах по разному воспринимают свойства... Практика практика и еще раз практика
    Ответ написан
    5 комментариев