• Стал работать по часам и обнаружил, что выходит 6 часов в день. Это нормально?

    Sir_Waat
    @Sir_Waat
    Business Analytics, Scrum Master
    Скажу по опыту работы с разными командами + опыт коллег. Если разработчик\менеджер\маркетолог\ктоугодно работает в день 6 часов не отвлекаясь на внешние раздражители и выполняет свою работу - это считается идеальным человекоднем. Правильно распределенные перерывы на размять конечности и попить чаю\кофе позволяют за эти 6 часов сделать масимум полезной работы, т.к. чисто физически невозможно эффективно и вовлеченно работать 2 промеждутка по 4 часа в день с минимальными перерывами.
    Ответ написан
    Комментировать
  • Как бороться с клоном сайта?

    Sanasol
    @Sanasol Куратор тега Веб-разработка
    нельзя просто так взять и загуглить ошибку
    Если просто проксируют сайт
    1. Можно вычислить айпишник с помощью логов вебсервера.
    Достаточно зайти на какую-нибудь УНИКАЛЬНУЮ страницу на паразите чтобы увидеть этот переход в логах СВОЕГО сайта.
    Т.к. паразит пойдёт на ваш сервер за страницей.
    Уникальную потому что может быть кеш на стороне паразита, и его надо исключить запросив страницу которой не мог никто запрашивать ранее.
    Уникальность легко сделать с помощью случайных get параметров: parazit.ru/page/asd?random=12eqsdasd
    После вычисления забанить на сервере любым удобным способом, через iptables например.

    2. Если не вычислили, но точно известно что сайт всё таки проксирует запросы на ваш, то можно сделать так

    Добавить на ваш сайт
    <script>
    window.addEventListener("load", function load(event){
        if(window.location.hostname == "parazit.ru"){ // Домен сайта паразита
            document.write('<iframe width="1903" height="765" src="https://www.youtube.com/embed/dQw4w9WgXcQ?autoplay=1" frameborder="0" allowfullscreen></iframe>');
        }
    },false);
    </script>
    Ответ написан
    8 комментариев
  • Знания Junior php разработчика?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    что должен знать идеальный джуниор (мое личное мнение):

    - Сетевой стэк. Нужно иметь хотя бы базовое представление о том как с сервером общаются. Ну то есть не нужно лезть в дебри, но понимать что такое HTTP или чем TCP от UDP отличается - нужно. В целом это пара часов чтения википедии.
    - GIT или любая другая распределенная VCS. Базовые навыки, что бы хотя бы понимал что есть git revert или git rebase, что такое фичабрэнчи и примерное представление как это работает и зачем надо.
    - Базовые основы unix. Ну то есть что бы не пугаться таких вещей как ssh хотя бы.
    - PHP. Без этого никуда. Он должен понимать что такое слабая динамическая типизация (не заучивать табличку кастов типов, а понимать плюсы и минусы, такая же история с приоритетами операторов - не заучивать а знать как избегать проблем с чтением кода)
    - Понимать что код чаще читают чем пишут, а потому не экономить 5 минут на написании кода, а писать так, чтобы сэкономить 30 минут человеку, разбирающемуся в куске кода.
    - Знать базовые вещи в плане безопасности. XSS и как защищаться, SQL инъекции и как защищаться, CSRF, MITM. Понимать что такое NDA, что данные пользователей - секретная информация. Как хэшировать пароли (не md5 а password_hash) и почему это важно.
    - Знать SQL. Глубоких знаний не требуется, нужно лишь понимание того, что такое нормальная форма, желательно разобраться с вопросом денормализации данных. Идеально иметь хотя бы базовые представления о том как работать с NoSQL решениями.
    - Процедурное программирование: почему глобальные переменные порождают сложность, что такое состояние, как можно использовать классы для изоляции состояния и т.д. Инкапсуляция. Инварианты, пост/пред условия, сохранение целостности...
    - Разделение ответственности. Это один из важнейших принципов, и упрощать все это до "mvc фреймворк" слегка неправильно. Вы должны понимать что от чего отделяете и главное зачем.
    - Автоматические тесты. Джуниор должен знать что это такое и иметь хотя бы минимальный опыт их написания. Должен понимать разницу между юнит и интеграционными тестами. Быть знакомым с пирамидой тестирования.
    - Уметь решать стандартные задачи не задавая слишком много вопросов. Например регистрацию пользователя по email-у вы должны написать, или авторизацию через соц сети, или комментарии, или новостную ленту.
    - Уметь дебажить. xdebug, blackfire и тд.

    В целом где-то за годик весь этот список можно влегкую покрыть с нуля.

    p.s. Я в списке специально не указывал ООП, поскольку всеравно первые пару лет у разработчиков выходит процедурщина на классах. Это не плохо, но того что в моем списке более чем должно хватать для решения стандартных задач. Но термины вроде "инкапсуляция/полиморфизм/наследование" требуются в обязательном порядке подавляющем количеством интервьюверов, а стало быть знать это надо. Единственное что - рекомендую в свободное время глубже погрузиться в этот вопрос а не тупо заучивать формулировки.

    Так же вещи вроде docker джуниорам знать не обязательно просто потому, что их врядли допустят сходу к управлению инфраструктурой. А так пару неделек на изучение и вперед.
    Ответ написан
    12 комментариев
  • Какой существует бесплатный и self-hosted/desktop конструктор интерфейса на базе Bootstrap?

    Maksclub
    @Maksclub
    maksfedorov.ru
    Бесплатная и очень крутая (для Винды и Линукса — что для меян очень важно):
    Pingendo

    Описание с видео работы программки для 3 версии, 4 чуть отличается по дизайну
    https://maksfedorov.ru/blog/all/prototipy-saytov-v...
    для 4 версии также есть веб-интерфейс

    Кликабельно
    5a734cca8cd49875804262.png
    Ответ написан
    1 комментарий
  • Пример хорошего ТЗ/гайдлайна для вёрстки?

    xmoonlight
    @xmoonlight
    https://sitecoder.blogspot.com
    Основные требования: здесь
    Примеры стайл-гайдов: здесь

    1. Требования к вёрстке: здесь, здесь, здесь, здесь
    2. Как проверять качество вёрстки: здесь.
    3. Как определять стоимость (трудозатраты) вёрстки одной унифицированной страницы: здесь.
    4. Требования к дизайнеру: здесь и здесь.
    5. Пример документации (генератор шаблона, Helix3 для CMS Joomla!): здесь
    6. Готовые "скелеты" шаблонов HTML5 для начала вёрстки: простой (с поясняющими комментариями), www.initializr.com (ещё 3 простых) и максимально полный html5boilerplate.com.
    7. Вопросы на вакансию верстальщика (front-end developer): здесь

    Бонус по-теме: Turning Design Mockups Into Code With Deep Learning
    Ответ написан
    3 комментария
  • Каков сценарий использования git для одного разработчика?

    KazeZlat
    @KazeZlat
    Погромист-затейник
    Работаете в ветке dev, периодически вливая ее в master. Для крупных задач (не входящих в один коммит) делаете отдельные ветви из dev.

    Вливая dev в master, делаете это с ключом --squash как то так:
    git checkout master
    git merge --squash dev

    Тут теоретически могут быть конфликты, если вы делали коммиты в masterпараллельно с dev, которые вам надо разрешить, а после уже добавляете и делаете один большой коммит:
    git add -A
    git commit -m "Merged dev: %кратко (или нет) основные изменения%"
    git push


    А чтобы не мозолили глаз висящие коммиты с логической незавершенностью, их можно сливать их перед merge с помощью интерактивного rebase:
    git checkout dev
    git rebase -i master

    Откроется редактор, в котором будет список коммитов ветки dev. Здесь можете слепить ненавистные коммиты с помощью команды squash (и тогда вам предложат отредактировать сообщение) или fixup (тут не предложат) и потом сделать git push --force (для одного не критично, в толпе лучше использовать --force-with-lease.

    Или есть еще вариант - лепить к предыдущему коммиту сразу с помощью git commit --amend

    Ну и после merge уже можете на master лейбл версии повесить.
    Ответ написан
    Комментировать
  • С чего начать изучение MySQL для веб-проекта?

    kiberspy
    @kiberspy
    Я думаю, нужно начать читать/учить о базовом SQL-языке (синтаксис которого идентичен, наверное, процентов на 70 для всех серверов реляционных БД)...
    Установите MySQL и из консоли пробуйте подключиться к нему, создать/удалить таблицы, добавить/удалить/обновить записи... создать запросы на выборку данных и объединение таблиц... и т.д. и т.п.
    Ответ написан
    Комментировать
  • Ion.RangeSlider как передать значение слайдера в текстовое поле?

    0xD34F
    @0xD34F Куратор тега JavaScript
    Добавить обработчик onChange:

    onChange(data) {
      $('input[name="sum"]').val(data.from);
    }

    И как поступить, если слайдера например два.

    onChange(data) {
      data.input
        .closest('селектор блоков со слайдерами')
        .find('селектор инпутов, в которые надо копировать значения')
        .val(data.from);
    }

    https://jsfiddle.net/k7stn10b/
    Ответ написан
    1 комментарий
  • Как узнать как именно взломали сайт, и как защитить?

    XXX
    @XXX
    Решение где-то рядом
    Для начала сделайте бекап своего сайта, скачайте и проверьте антивирусом, мб что поймаете. Еще может у Вас есть какие-то косяки с правами на каталоги или файлы, благодаря которым их какой-то бот или редиска их правит, тут тоже нужно внимательно поискать.

    @lukoie плагины есть, но все сразу ставить не советую. Пробуйте по одному, если после установки плагина защиты взлом повторится, этот плагин вырубаете и ставите другой.
    Eyesite мониторит сайт и файлы и шлет уведомления о изменениях Вам.
    JHacker Watch похож на Eyesite
    Admin Tools может и мониторить и дает возможность удобно править разные настройки, связанные с защитой сайта. Но как-то подзаморочено и про версию плагина купить предлагают.
    Marco's SQL Injection по названию понятно что :)
    Securitycheck, здесь всё, от настроек, до фаервола и различных мониторов.

    Если у Вас воруют пароли от FTP, то тут нужно прежде всего логи доступа поднимать и как посоветовал @alexclear проверять все машины, с которых имеется доступ к сайту, на наличие дырок.
    Ответ написан
    Комментировать
  • Неотднократный взлом аккаунт instagram, как такое возможно?

    zoonman
    @zoonman
    ⋆⋆⋆⋆⋆
    Возможны следующие варианты:
    • инфицирован компьютер клиентки (наиболее вероятно)
    • имеется доступ к каналу пересылки конфиденциальных данных (например к почте)
    • плохой/простой/словарный пароль (вероятно)
    • инфицирован роутер/модем/камера (вероятно)
    • используется левый сервис для накрутки аккаунтов (вероятно)
    • клиент передает данные от аккуанта третьему лицу, от которого происходит утечка
    • заражено устройство у провайдера (маловероятно, и такое бывает)
    • инфицировано устройство (например троян на телефоне)
    • дыра у Инстаграма (маловероятно)
    Ответ написан
    1 комментарий
  • Как ускорить вёрстку?

    @taki154
    Для быстрой и оперативной верстки использую gulp с плагинами и препроцессорными плюшками:

    - jade (сейчас больше известен как pug) - html-шаблонизатор, синтаксис простой и понятный, поддерживает циклы, инклюды, примеси, переменные, условия и пр. использую как препроцессор и из него генерирую статичные страницы, верстаю в нем.
    - less - тут даже говорить нечего, любой css-препроцессор для разработки и скорости при умелом использовании подойдет лучше писанины на нативном css;
    - далее, до кучи всякие автопрефиксеры, минификаторы, лайврелоды, браузерсинк и прочее.

    ВАЖНО:
    если вы никогда не работали в среде npm, для легкого и понятного старта вы можете воспользоваться сервисом quenchjs.com, который сделает всю грязную работу за вас. Там есть конфигуратор, выбираете что надо и качаете архив. Ставите себе node.js, и дальше в папке, куда распаковали архив из командной строки- npm install. После того, как все пакеты будут установлены, перезапускаете в этой же папке терминал и пишите волшебную команду "gulp". И будет вам счастье. Это если совсем в двух словах. Поверьте, все это перевернет ваш опыт верстальщика и поднимет скиллы на новый уровень! Дерзайте! :)
    Ответ написан
    2 комментария
  • Как ускорить вёрстку?

    @architawr
    "Ok, Google" и все твои проблемы решены
    1) SASS и сетку для него(типа bootstrap)
    2) GULP для компиляции , а также его LiveReload и AutoPrefixer, и BrowserSync с его локальным сервером, и Bower (закачка либ)
    3) GIT
    4) Emmet
    5) BEM (БЭМ)
    6) Используйте gist от github
    Ну и прямые руки
    Ответ написан
    16 комментариев
  • Как найти работу джуниору?

    v_sadist
    @v_sadist
    DevOps engineer
    Какие-то в треде все злые и грубые.

    "Я студент-математик, уже 3 месяца безуспешно ищу работу."
    Для начала по вашему резюме:
    3 месяца - не так уж много, я искал свою первую работу почти год на третьем курсе :)

    "Из языков знаю C++, Java, C#, Python, "
    Определитесь с языком для начала. Решили, что ява? Напишите, что именно вы знаете по языку, по остальным напишите basic knowledge / understanding in или что-то похожее

    "неплохо ориентируюсь в Unix,"
    Операционной системы Unix больше не существует. С какими ОС вы знакомы? Только линукс? Опишите дистрибутивы, и уровень владения (архитектура, coreutils, тонкая настройка и тд)

    " базах данных"
    Каких? Так же как и с *nix

    "Работу ищу в основном по Java."
    Если вы хотите акцентировать внимание строго на ява, то копайте и развивайтесь в этом направлении. Владение серверами приложений и фремворками будет для вас плюсом. Если хотите попытать счастья в других языках, напишите отдельное резюме для каждого языка (у меня было три резюме - для системного инженера, линукс админа и дбашника)

    "Опыта разработки нет."
    Это несмертельно. Откуда-то же берутся люди с опытом :) ищите стажировки и "нулевые" позиции. Денег будет мало, зато быстро наберетесь опыта.

    "Вакансий без требований к опыту крайне мало (ищу на hh), да и на тех отказывают."
    Без резюме очень тяжело сказать, что может быть не так. Отказывают в отклике? Какие конторы? Какие позиции. Некоторые компании держат позиции пустышки для анализа рынка (особенно крупные). На собесе? На каком этапе. Попробуйте "прочесть" интервьюера, чтобы понять, что вы могли сказать или сделать не так.

    "Сейчас с рынком труда совсем плохо или я что-то не так делаю? Буду рад вашим советам."
    Не так все славно в датском королевстве, но у вас все получится. Успех неизбежен.
    Ответ написан
    Комментировать
  • Как найти работу джуниору?

    viktorvsk
    @viktorvsk
    Из языков знаю C++, Java, C#, Python, неплохо ориентируюсь в Unix, базах данных.

    Для начала сами для себя проясните, что это неправда. Плюсы "знает" Страуструпп. А вы, наверняка частично, знакомы с синтаксисом. А Торвальдс "неплохо" ориентируется в никсах.

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

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

    А чем вам fl.ru freelance.ru weblancer.net и подобные сайты не устраивают? Вам только кажется что там сидят одни профессионалы. В реальности же процентов 85% составляют такие люди как вы, которые ищут где поднабраться опыта и тд.

    Большинство людей вообще не смыслит в том, что вы будете делать. Вы дали им результат - получили оплату, что там под капотом, интересует единицы. Так что дерзайте.

    P.S Я нисколько не поощряю халатность, но реалии этих биржи именно такие.
    Ответ написан
    Комментировать
  • Как можно заразиться вирусом просто посещая сайты?

    @Mercury13
    Программист на «си с крестами» и не только
    Сейчас это крайне тяжело. Заражение возможно через четыре канала:
    • Уязвимости конкретного браузера. Кстати, это одна из причин, почему каждая вкладка Хрома — отдельный (и низкопривилегированный) процесс: если процесс хакнут, меньше шансов, что дойдёт до овладения компьютером.
    UPD. Это такой набор данных (например, специально созданный GIF/JPEG/HTML), который, например, пробивает в браузере буфер.
    • Уязвимости плагинов. Уязвимости в Java — это настолько обсосанная вещь, что и говорить не буду; вроде от Java в вебе отказались даже сами Oracle. Flash каждую неделю обновляют. Уязвимости плагинов плохи двумя вещами: 1) Пускай сейчас в мире один браузер — есть ещё два десятка прихлебателей и три браузера «труба пониже, дым пожиже». А Флэш один на всех; 2) Старое плагинное API, оставленное только Флэшу,— большая дыра в безопасности.
    • Уязвимости прочего софта. Казалось бы, качаешь PDF — а это эксплойт для Adobe Reader.
    • «Троянские кони» — но это уже надо своими руками запустить EXE.
    Кстати, в нашей пиратской культуре считается, что UAC надо побыстрее отключить, и во всех «левых» дистрибутивах он выключен. По-моему, это в корне неверно.
    Ответ написан
    8 комментариев
  • Стек технологий, чтобы верстать быстрее?

    Krasnodar_etc
    @Krasnodar_etc
    avito front
    1) Опыт
    2) Emmet для написания разметки
    3) Второй моник
    4) Sass/Scss препроцессоры
    5) БЭМ, в связке с препроцессорами особенно.
    6) Любой шаблонизатор, главное чтоб импортировать файлы умел. Если пишу фуллстэк - юзаю EJS для Node.js. Если только фронт - JSX (React.js)
    7) Не юзал zeplin/avocode, но figma - офигенная штука.

    *Порядок произвольный, не по важности.
    Ответ написан
    11 комментариев
  • Стек технологий, чтобы верстать быстрее?

    vicodin
    @vicodin
    Имею некоторый опыт
    1) опыт
    2) css-препроцессоры, nunjucks, автопрефиксеры, браузерсинк
    3) второй(третий) моник
    4) зеплин/авокод
    5) качество макетов(артборды, хорошая группировка слоёв, отсутствие нейминга слоёв по типу Layer 467 copy copy
    Ответ написан
    3 комментария