• Какую книжку выбрать для изучения JS?

    @kode_krendel
    You Don't Know JS
    Ответ написан
    Комментировать
  • Как влиться в тренд нынешней веб-разработки?

    @SuperOleg39ru
    Front-end разработчик
    Добрый день!

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

    flexbox, grid layout
    - это css из современных стандартов. Что бы знать, когда применять - вы должны знать версии старых браузеров, которые необходимо поддерживать на вашем проекте, и соответствующую поддержку этих стилей. Например, формировать элементы на flexbox на порядок удобнее, чем на float, но в IE9 вы уже использовать flexbox не можете.
    Немного о новинках в css тут.
    Поддержка браузерами тут.

    gulp, webpack и пр.
    - это инструменты, которые созданы для облегчения рутинных задач.
    Для верстки очень удобно использовать gulp - вы описываете задачи, такие как создание локального сервера, мгновенная перезагрузка страницы при изменениях, минификация ваших файлов, и прочее.
    Посмотрите отличный скринкаст от Ильи Кантора!

    препроцессоры
    - представьте, что вам чего-либо не хватает в html и css.
    Например, вы хотите разбивать большие html файлы на множество мелких, или вам нужно вставить в html динамическое содержание - для этого созданы html шаблонизаторы. Вы используете в работе синтаксис конкретного шаблонизатора, затем тот же gulp автоматически собирает эти файлы в обычный html, который понимает браузер.
    Аналогичная ситуация с css, препроцессоры позволяют разбивать файлы на мелкие, и собирать в один, доступны переменные и функции, и многое другое.
    Популярный шаблонизатор Pug
    Один из css-препроцессоров Stylus

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

    Ну и конечно статьи и подкасты:
    https://habrahabr.ru/
    jsraccoon.ru

    https://soundcloud.com/web-standards
    https://radiojs.ru/

    Конкретные статьи и ресурсы для новичка:

    frontender.info/a-baseline-for-front-end-developers
    frontender.info/a-guide-to-flexbox
    css-live.ru/articles-css/pravilnye-kontrolnye-toch...
    https://medium.com/russian/%D0%BE%D1%82-%D0%BD%D1%...
    https://medium.com/russian/%D0%BE%D1%82-%D0%BD%D1%...
    https://habrahabr.ru/company/zfort/blog/321214/
    https://frontendmasters.gitbooks.io/front-end-hand...

    Дерзайте!
    Ответ написан
    6 комментариев
  • Минимальные настройки безопасности Linux на VPS?

    Tyranron
    @Tyranron
    Ряд моментов Вы уже сделали, но я все равно их опишу для полноты списка.

    1. Создать отдельного пользователя и хороший пароль на sudo. Не использовать больше root напрямую. Совсем.

    2. SSH. Отключаем метод аутентификации по паролю. Если Вам не нужны другие методы, то их тоже можно отключить, оставив только publickey. Отключаем возможность аутентификации root'ом. Включаем использование только 2й версии SSH протокола.

    3. Устанавливаем Fail2Ban и настраиваем чтобы после нескольких неуспешных попыток подключения по SSH банило по IP на длительное время. Кол-во попыток и время бана можно тюнить в меру своей паранойи. У меня, например, банит на час после 2х неуспешных попыток.

    4. Iptables. Действуем по принципу "запрещено все, что не разрешено". Запрещаем по умолчанию весь INPUT и FORWARD трафик снаружи. Открываем на INPUT'е 22 порт. В дальнейшем открываем порты/forwarding по мере необходимости. Если у нас предполагаются сервисы на соседних серверах нужные только для внутренней коммуникации (Memcached, Redis, и т.д.), то открываем для них порты только для определенных IP. Просто так торчать наружу для всех они не должны.

    5. Настраиваем автоматические обновления apt-пакетов. Уровень security. То есть так, чтобы обновления безопасности накатывались автоматически, но при этом не выполнялись обновления со сменой мажорной версии (дабы обезопасить себя от "само сломалось").

    6. Устанавливаем ntpd. Серверное время должно быть точным. Также временную зону сервера лучше всего установить в UTC.

    7. TLS (не SSL) используем везде где можем. Через Let's Encrypt получаем бесплатные валидные сертификаты. В конфигах веб-серверов, mail-серверов, и других приложений торчащих наружу (в том числе и OpenVPN), запрещаем/убираем использование слабых шифров. Все ключи/параметры генерируем не менее 2048 бит. Самоподписные сертификаты подписываем с помощью SHA-256 (не SHA-1). Diffie-Hellman параметры (dh.pem) под каждый сервис лучше сгенерить отдельно. Проверяем TLS сервисов через Nmap. Минимальный grade должен быть A, не должно быть warning'ов.

    8. Правильный менеджмент пользователей/групп. Приложения/сервисы не должны запускаться под root'ом (разве что они действительно этого требуют и иначе никак). Для каждого сервиса создается свой пользователь.

    9. Если предполагается upload файлов через PHP (либо другие скриптовые языки), в директории, куда эти файлы загружаются (и которая доступна снаружи), должно быть жестко отключено любое выполнение скриптов/бинарников, что на уровне ОС (x права), что на уровне веб-сервера.

    Это была база.
    Дальше, в меру своей паранойи можно за'harden'ить сервер ещё следующими моментами:
    - SELinux, chroot
    - доступ к SSH только с определенных IP (нужно иметь 3-4 VPN-сервера под рукой)

    UPD И да, все это помнить/настраивать руками каждый раз может быть запарно. Используйте Ansible и автоматизируйте процесс (там родные и YAML, Jinja2 и Python).
    Ответ написан
    10 комментариев
  • Можно ли начать изучения сразу с angular/react, а не чистого js?

    @klinnov
    Нет
    Ответ написан
    Комментировать
  • Как испортить кровь копипастерам?

    Как человек который занимается парсерами говорю сразу никак. Весь текст проверяется специальными регулярками и в случае каких-то аномалий ими же исправляется. Картинки вместо текста убьют SEO и не дадут копировать инфу самим юзерам ссылаться по нормальному и обмениваться ей. В случае наличия чего-либо на JS просто запускается PhantomJS. На одном проекте была капча на скачивание файлов, тогда я потратил день и обучил скрипт на разгадывание этой капчи )) Все файлы были скачаны.
    Ответ написан
    1 комментарий
  • Как организовать проект для сборки?

    ShadowOfCasper
    @ShadowOfCasper
    Middle User Interface Web Developer
    b7559f6e7d784cdf82263cde495dbfe3.png"button__primary--hover.html" лол, мэн, никто так файлы не называет. Это БЭМ-классификация разметки, во-первых.
    Во-вторых, на html уже никто нормальные проекты не пишет.
    Вот тебе хорошие ссылки.
    бац https://habrahabr.ru/post/246349/
    бац yeoman.io
    бац https://github.com/larsonjj/generator-yeogurt (ну или просто npm i generator-yeogurt -g)
    Ответ написан
  • Какие еще есть блогеры вроде Sorax?

    lancer_serega
    @lancer_serega
    PHP Developer
    Русскоязычные каналы
    (безумно старался не повторяться, и скорее всего у меня это получилось, но если что прошу сильно не пинать)
    (по возможности, время от времени буду дополнять данный пост новыми каналами)
    Видео курсы и уроки + Графика и 3D моделирование
    Mihail Kozlov (ORACLE, MongoDB, Linux, BSD, Asterisk, CISCO, Python, Microsoft, TRANSACT-SQL, MySQL)
    Ускорение Сайтов (Nginx, защита от DDoS, ускорения MySQL и всеко что относится к сайту)
    Технострим Mail.Ru Group
    fwdays
    SpecialistTV
    Как создать сайт. Основы Самостоятельного Сайтостроения(WebForMySelf)
    WPRUSe · Финты WordPress
    IT Propaganda(Здесь уроки python, и разные задачки на логику)
    Видеоуроки PHP(кстати... здесь не только про php)

    create web-developer

    Frontend & Backend разработка
    FrontendDevConf
    Dev Workout
    GetDevNET
    IT-Channel
    itloft(для бизнеса, стартапа)
    ITmozg.ru
    Itvsi.info
    Ivan Booravoi(в основном backend)
    Java Courses With Kovalevskyi
    Java developer
    Master-CSS(не только про css, но все про верстку)
    Postgres Professional
    Rahim Muratov(YII 2)
    Ruseller.com(эх... ностальгия)
    splincode wd(Java, Php, C, C#, C++, и пр.)

    Англо - понимающим :)
    Codecourse(Eng)
    JREAM(Eng)
    Code Review Videos(Eng)

    Не по теме, ну тоже интересно :)
    Новинки IT, Обзоры компьютерной техники и периферии (здесь моддинг и оверклокинг своего железного питомца)
    COMPDAY.RU(тоже моддинг и разгон)

    MyGap - А вот это самый интересный канал (который не по теме (= )
    Ответ написан
    Комментировать
  • Можно ли заработать в мире Unix-like, unix-way?

    @Z-r
    Мне известно четыре основных способа заработка, напрямую связанных со свободными программами:

    — Первый, самый прямой, но от того почему-то всем не менее неочевидный — брать и продавать копии свободных программ. Аудитория: любые конечные пользователи. Примеры: Parted Magic, ряд программок для «Андроида», ну например, «Conversations». Высокоморальность: в полном порядке.

    — Второй — это уже известная вами продажа поддержки. А фактически иногда и просто своего имени, когда какая-то реальная поддержка начинается с сумм несколько больших, чем базовый контракт. Аудитория: те, для кого ваша программа есть орудие производства, то есть компании и предприниматели. Пример: уже озвученный вами Canonical. Высокоморальность: в полном порядке.

    — Третий — это продажа исключений из авторского лева. Аудиторией будут разработчики несвободных программ, а программа ваша должна быть библиотекой под (как нетрудно догадаться) авторским левом, причем чаще сильным. Суть в том, что для добрых людей ваш продукт свободен на условиях, скажем, GNU GPL или GNU AGPL, а проприетарщики пусть платят за возможность использовать его в своих шкурных интересах. Примеры: GhostScript, MySQL. Высокоморльность: прихрамывает маленько.

    — Четвертый — это то, о чем помянул тов. CityCat4 — т. н. free crippleware, то есть полноценная ваша программа несвободна и платна, но у нее есть свободный урезанный вариант. Причем урезано может быть как что-то существенное, так и сущая ерунда. Аудитория: кто угодно. Примеры: Odoo, GitLab, ProcessMaker. Высокоморальность: от невысокой до никакой, смотря сколько отрезано.

    И разумеется, все вышеперечисленно можно комбинировать: Qt, к примеру, и поддержку (обучение) предоставляет, и исключения из авторского лева (причем слабого!) продает, и совсем ерундовую несвободную часть имеет. А упомянутый вами Red Hat — продает копии и предоставляет поддержку. А иногда и такое бывает: программка для «Андроида» под названием OsmAnd полностью свободна, но поставляется в Гуглоплэе в двух вариантах: полном за копеечку и урезанном бесплатно. Еще раз: обе версии свободны, то есть никакой моральной проблемы здесь нет.

    ――

    P. S. Я перечислил только способы заработка на программах как таковых, полагая, что схемы, где свободные программы участвуют косвенно, и без того очевидны, но в комментариях только о них и говорят, так что надо, наверное, упомянуть, что да, конечно, свободная программа также может быть:
    — Частью продаваемой услуги — чаще всего услуги специфического хостинга, как ставимый здесь в пример Openshift или (если ближе к народу) Feedly.
    — Частью продаваемого устройства, причем само устройство может быть как свободным, так и нет. Тысячи их.
    — И наконец, просто частью приносящего прибыль техпроцесса. То есть компания пишет (заказывает) программу себе для внутреннего использования и могла бы ее вообще не распространять, но, не считая ее своим «ноу-хау», ведет себя благородно и просто свободно делится ею со всеми. Известнейший пример — Reddit (хотя в последнее время они подскурвились).

    ――

    И не могу все-таки не отметить, что unix-way отношение к свободе имеет такое же, как мелкое к горячему.
    Ответ написан
    2 комментария
  • Как изменить каталог по умолчанию в cmd?

    [HKEY_CURRENT_USER\Software\Microsoft\Command Processor] "Autorun"="cd E:\"
    Ответ написан
    1 комментарий
  • Как стать Middle после Junior и Senior после Middle?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    Сколько нужно мне проработать в организации чтобы стать Middle если сейчас я Junior?


    я видел людей которые за 5 лет в "организации" настолько остановились в развитии что как были джунами так и оставались.

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

    Вот и прикидывайте.
    Ответ написан
    Комментировать
  • Почему интернет-магазины не используют спрайты для товаров?

    @metaf
    Спрайты - это background. Background - это оформление, а не контент. Ваши товары - это контент.
    Как потом в поиске ваши товары отображаться будут, или гугл должен будет их нарезать?
    Хотите ускорить работу - грузите картинки на cdn, а не занимайтесь извращениями.
    Ответ написан
    Комментировать
  • Может ли сломаться видеокарта при майнинге?

    evnuh
    @evnuh
    Поиск Гугл помог мне, впусти и ты его в свой дом
    Может
    Ответ написан
    Комментировать
  • Есть ли SQL база с mime-types и иконками к ним?

    27cm
    @27cm
    TODO: Написать статус
    1. Берём какой-нибудь наиболее полный список mime типов:
    svn.apache.org/repos/asf/httpd/httpd/trunk/docs/co...

    2. Любой большой набор иконок для mime типов:
    github.com/eagerterrier/MimeTypes-Link-Icons/tree/...

    3. Пишем небольшой скрипт на любом известном вам языке и база готова.

    ...Это на случай, если никто вам так и не скинет готовую базу.
    Ответ написан
    Комментировать
  • Развитие в электронике/схемотехнике. Есть ли аналог схеме ориентирования в программировании?

    a_volkov1987
    @a_volkov1987
    Инженер-схемотехник
    1. Освоить базовый курс электротехники, чтобы понимать, куда, как и когда текут токи
    2. Освоить базовый курс по пассивным и активным радиоэлементам
    3. Выбрать направление: цифровая или аналоговая техника.
    4. Если аналоговая, то учимся делать радиоприемники, усилители и т.д.
    Если цифровая - проходим базовый курс цифровой схемотехники.
    Параллельно п.4 учимся паять и изучаем нормальный софт для проектирования схем и печатных плат (P-CAD, Altium designer, Eagle)

    Советы сразу брать ардуино мне не по душе, потому как без базовых сознаний аналоговой и цифровой схемотехники сложно к ней приделать что-то более интересное, чем пара светодиодов. Надо хотя бы понимать, в чем разница между биполярным и полевым транзистором, как их использовать и чем опасно для транзистора реле и индуктивные нагрузки в целом.
    Более того, лично я допускаю сборку изделия из ардуины и кучи модулей только в одном случае: это макет. На этом макете я отработаю софт и железо, потом разработаю свою печатную плату и на базе макета соберу красивое и работоспособное изделие. А макет будет разобран. Не вылезать за пределы ардуино с парой модулей и лапшой из кабелей это все равно что проектировать станки из детского конструктора. Можно, но ценность невелика.
    Ответ написан
    Комментировать
  • Миксины в SASS: когда пора остановиться?

    In4in
    @In4in
    °•× JavaScript Developer ^_^ ו°
    Эм, я конечно извиняюсь, что влезаю. Но mixin'ы существуют несколько не для того.

    Печатая код на SASS/SCSS, нужно всегда задумываться о том, как он будет выглядеть на выходе.

    Кликните сюда
    SCSS-код
    @mixin example{
       border: 1px solid red;
    }
    
    .class1{
       @include example;
    }
    
    .class2{
       @include example;
    }


    На выходе CSS-код:
    .class1{
       border: 1px solid red;
    }
    
    .class2{
       border: 1px solid red;
    }



    Опа, дубль. Куда лучше было бы в такой ситуации использовать extend'ы:

    Теперь сюда
    SCSS-код
    %_example{
       border: 1px solid red;
    }
    
    .class1{
       @extend %_example;
    }
    
    .class2{
       @extend %_example;
    }


    На выходе CSS-код:
    .class1,  .class2{
       border: 1px solid red;
    }



    Так для чего же нужны mixin'ы? Они нужны в двух случаях.

    1. Когда не подойдет использование групповых селекторов.
    2. Когда мы можем составить шаблон из свойств, но заранее не знаем какие будут их значения. То есть, когда мы в mixin будем передавать аргументы.

    _
    Ну и сюда
    SCSS-код
    @mixin example($width, $color){
       border: $width solid $color;
    }
    
    .class1{
       @include example(1px, red);
    }
    
    .class2{
       @include example(2px, yellow);
    }


    На выходе CSS-код:
    .class1{
       border: 1px solid red;
    }
    
    .class2{
       border: 2px solid yellow;
    }

    Ответ написан
    3 комментария
  • Создал самоподписанный сертификат, но не получил https?

    CityCat4
    @CityCat4 Куратор тега Цифровые сертификаты
    //COPY01 EXEC PGM=IEBGENER
    Здесь не один вопрос, а целых...три
    1. Зачем мне https
    2. Почему самоподписанный сертификат небезопасен
    3. Чем отличается самоподписанный сертификат от выданного доверенной организацией
    Итак.
    1. https, нужны только для того, чтобы хром не зажигал красный флажок (последние версии уже начали маркировать такие сайты) - это что-то типа установки Windows 10 pre-alpha - круто, потому что новое. Если шифровать нечего - не шифруйте и пофиг на флажок. Если сайт продающий и пофиг быть не может - убейте жабу и купите сертификат от УЦ. Влезть на елку и не поцарапать попу не получится
    2. Самоподписанный сертификат небезопасен потому что никто не гарантирует правдивость данных, которые в нем. Это все равно что взять бумажку и написать на ней "Паспорт" - написать никто не мешает. Верить никто не будет. Чтобы такому сертификату начали верить, он должен быть добавлен в хранилище корневых сертификатов - причем на всех компьютерах, которые будут на него заходить. Вот поэтому, если сайт продающий и Вы даже о флажке так печетесь - как будете обьяснять юзеру, чтобы он скачал себе Ваш сертификат и добавил его в корневые? Тем более, что например на Windows Mobile это сделать в принципе нельзя (на нерутованной)
    3. Сертификат выданный доверенной организацией отличается тем, что сертификат самой организации уже добавлен во все хранилища всех браузеров - и все сертификаты, выданные ею, считаются доверенными. В этом и заключается опасность бесплатных раздатчиков сертификатов - из сертификата может либо не оказаться, либо он будет "подозрительным". Еще раз - если сайт продающий - убейте жабу и купите нормальный сертификат от нормального УЦ. Экономия на бесплатных сертификатах может выйти боком.
    Ответ написан
  • Что должен знать и уметь front-end разработчик?

    Serj-One
    @Serj-One
    i'm sexy and i know it
    Должен уметь пользоваться гуглом. Он выдаёт не один десяток вопросов, полностью идентичных вашему, в том числе и на этом ресурсе, и все возможные ответы на них уже неоднократно даны.
    Ответ написан
    2 комментария