• Альтернатива !important в лице .class.class.class. Что скажете?

    27cm
    @27cm
    TODO: Написать статус
    Нет, не стоит.

    1. Для других разработчиков это будет не так очевидно, как !important. Могут принять за опечатку и удалить дубликат класса.
    2. Оптимизаторы CSS, наверняка будут превращать .class.class.class в .class
    Ответ написан
    2 комментария
  • Почему не работает массив ссылок jquery?

    Ronnie_Gardocki
    @Ronnie_Gardocki
    Я у мамы фронтендщик.
    Вы отменяете стандартное действие по клику на span (которого в общем то и нет), и затем идет всплытие ивента, которое триггерит стандартный ивент при клике на анкор. Вам либо надо предотвращать всплытие, с помощью e.stopPropagation(), либо биндить перехват ивента конкретно на a, а не на спан внутри a.
    Ну и к тому же конструкция с toArray.forEach кривая, вам надо делать как написано в ответе Kir ---
    Ответ написан
    Комментировать
  • Почему не работает массив ссылок jquery?

    SowingSadness
    @SowingSadness
    web-разработчик
    Зачем тут toArray?
    $('.roomsList a').each(function(element){
       //...
    });


    А вообще вам нужно при клике делать preventDefault

    $(this).on('click',function(event){
        event.preventDefault();
    });
    Ответ написан
    4 комментария
  • Как сделать многоуровневое меню как на картинке?

    YuriMolotov
    @YuriMolotov
    Дизайн и вёрстка сайтов — Molotov.pro
    <ul class="mainmenu">
      <li>Unlimited
        <ul>
          <li>Prime</li>
          <li>Learn</li>
        </ul>
      </li>
      <li>MP3s
        <ul>
          <li>MP3</li>
          <li>Music</li>
        </ul>
      </li>
    </ul>


    css:
    .mainmenu ul{display:none; position:absolute;}
    .mainmenu li:hover ul{display:block;}

    - При наведении на пункт 1 уровня отображаем зафиксированные дочерние подпункты.
    Ответ написан
    4 комментария
  • Какую ОС лучше поставить на сервер?

    laska
    @laska
    PHP/JS разработчик
    Как я понимаю, стандартный ответ: "что лучше знаете, то и ставьте" вам ничего не даст, так как вы не знаете ничего?

    Ну значит скажу так. Документации по LAMP гораздо больше для Debian и Ubuntu, чем для Windows. Почти вся документация от Debian подходит к Ubuntu и наоборот (но не вся). В Debian чуть более академическое комьюнити. Пакеты и там и там примерно одинаковые, если мы говорим о Ubuntu LTS. Но в целом в Дебиане пакеты обновляются реже.

    Ставьте Debian со спокойной душой, и это будет отличный выбор!
    Ответ написан
    Комментировать
  • Как динамически вставить картинку внутри добавляемого span с помощью jquerry?

    @reifter
    У вас message это массив, а тут идёт обращение к объекту msg.message.pass==1, должно быть msg.message[i].pass==1

    jsfiddle.net/1ut2jo6h
    Ответ написан
    1 комментарий
  • Что такое Virtual DOM?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    Ну вот есть DOM. Он медленный, и дергать его просто так не стоит. А есть виртуальный DOM, что-то типа прослойки между вашим кодом и реальным DOM. Вы можете дергать виртуальный DOM сколько вам душе угодно, а прослойка эта соберет всю инфу о том как вы чего делали, и попробует оптимизировать взаимодействие с реальным DOM что бы вышло как можно меньше действий.

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

    Решение в лоб - каждый раз когда приходят данные, дропать старую таблицу, проходить циклом по массиву и формировать новую. Это куча операций с DOM. У вас каждые n милисекунд будет полностью перестраиваться вся эта штука, дропаться и создаваться новые элементы и все это будет ужасно долго пересчитываться и перерисовываться.

    А теперь добавим между всем этим виртуальную апишку, которая запоминает что она там в прошлый раз создала и что надо в этот раз создать. Вы все так же влоб проходите циклом по массиву и просите виртуальный дом построить новую апишку, а виртуальный дом будет стараться переиспользовать то что у него уже есть, ну и все в таком духе. За счет этого получается нефиговый прирост производительности (но есть потери на работу самого виртуального DOM, зато можно фигачить как хочешь).

    Если же прослойку эту сделать со своим интерфейсом, можно получить слой абстракции для работы с UI. Именно это предлагает тот же React. Слой абстракции над UI. Вы можете работать с реактом, но UI будет отрисовываться не через DOM а скажем... это может быть нативный интерфейс мобильной платформы (гуглить native-react). Ну и т.д.
    Ответ написан
    Комментировать
  • Чем закрыть огромную дыру между теоретическими знаниями и их практическим применением в веб-программировании?

    globuzer
    @globuzer
    gezgrouvingus progreszive ombusgrander greyderzux
    Учиться нужно не только осваивая теорию, но и применяя все это на практике. После изучения теории - много-примного практики. Притом стараться выбирать и делать разнопрофильные и разнонаправленные задачи, сложные, искать себе трудности. На ошибках учатся. Каждую проблему пытаться решить, запоминать способы решения. Общаться с компетентными специалистами по сложностям в своих задачах (соц.сети, форумы, сайты, жизнь). Не раз и не два постоянно открывать теорию и вспоминать что было когда-то изучено, повторять, повторять, и вновь применять на практике уже все знания с большим профессионализмом и классностью. Только со временем вы сможете прокачаться, с приобретением опыта, потратив много трудодней обретете высокопрофессионализм, который может быть оценен в дальнейшем солидно и справедливо. Это ваша цель!
    Ответ написан
    2 комментария
  • Русские символы в send_file?

    @thepry
    Ruby on rails, 1С разработчик
    А в первой строке файла стоит # encoding: UTF-8?
    Обычно это решает проблему с кириллицей.
    Ответ написан
    4 комментария
  • Чем закрыть огромную дыру между теоретическими знаниями и их практическим применением в веб-программировании?

    alexey-m-ukolov
    @alexey-m-ukolov Куратор тега Веб-разработка
    Единственный способ прийти к написанию хорошего кода - писать код. При чем не абы как, а по одному из двух сценариев:
    1. Вы должны писать что-то достаточно большое, чем будете пользоваться непосредственно вы. Тогда вы поймете Самую Главную Вещь в работе программиста - код нужно поддерживать. И сразу станет ясно зачем нужны всякие паттерны, фреймворки, тесты и в чем смысл рефакторинга.
    2. Вы должны найти кого-то, у кото такой опыт уже есть и тянуть из него знания.
    Ответ написан
    2 комментария
  • Как начать работать удаленно или фрилансить, если даже проекты по мизерной цене вызывают затруднения?

    MegaMufa
    @MegaMufa
    Я бы посоветовал вам устроиться на некоторое время работать в офис. Работа в команде очень сильно помогает поднять свой уровень. В этом есть несколько плюсов:
    1. У вас всегда под рукой есть ментор, который может подсказать как решить поставленую перед вами конкретную задачу. Знания, получаемые таким образом, усваиваются намного лучше. Вы лучше понимете, как применять свои навыки.
    2. К окманде работает несколько человек, каждый со своим мнением и кругозором. Общение на обеде, за кофе и на обсуждениях проектов поможет ваам расширить свой профессиональный кругозор. Вы узнаете про многие технологии. В данный момент они вам не понадобытся, но вы будете знать о них, во время принятия решений в будущем.
    3. Устраиваясь на работу в офис стажером (или новичком, в общем неопытным специализстом), вы ставите в известность своего работодателя. Он в замен на пониженый оклад (у начинающего программиста ЗП, конечно ниже), помогает вам обучаться, выделяя вам ментора и давая практику.
    4. Вы преобретаете опыт решения реальных кейсов. В дальнейшем вы будете знать, как решается большинство типовых задач.
    5. В спокойной, но реальной обстановке получите опыт обучения "на лету" и поиска нужного материала.

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

    Мой вам совет: поработайте некоторое время в команде.
    Ответ написан
    6 комментариев
  • Верстка в Linux?

    @timonbandit
    Front End Developer
    Почему-то на этот вопрос есть ОГРОМНАЯ КУЧА БРЕДА, от малоопытных ребят, которые готовы прям помочь. Я с 2012 года не пользуюсь виндой(для игр только и то не для всех (-:) и я фронтендер.
    Linux Mint(Xfce и Cinnamon)
    Photoshop CS2 - просто скачал и установил(wine) - просто он бесплатен(типа того), работает отлично. ВСЁ РАБОТАЕТ.
    Но пришлось поставить cs6, по иным причинам. Так вот! ОН РАБОТАЕТ! БЕЗ ПРОБЛЕМ, БЕЗ ТАНЦЕВ С БУБНОМ, БЕЗ ВИРТУАЛОК. просто берешь и устанавливаешь в PlayOnLinux(уже готовая сборка есть под эту версию)

    Так же в playOnLinux - IE8, IE9, IE10

    На хабре мало линуксоидов, но много виндоюзеров без опыта и поэтому некоторые вопросы превращаются в Ответы.Mail. Не слушай их! Linux идеален для веб-разработки, мак тоже хорош, но мне не нравится клавиатура родная и для настройки сервера тоже нужны костыли(но это мелочи по сравнению с костылями в винде)
    Ответ написан
    5 комментариев
  • В каких случаях лучше использовать Apache, а в каких Express?

    MarcusAurelius
    @MarcusAurelius Куратор тега Node.js
    автор Impress Application Server для Node.js
    Сравнение не совсем корректное. Если Вы пишете серверную сторону на JavaScript под Node.js, то используете встроенный http сервер (express это надстройка над встроенным сервером, мало имеющая отнощения к веб-серверу вообще), а если пишете на PHP или другом языке, работающим через CGI с Apache, то используете Apache.
    Ответ написан
    3 комментария
  • Есть ли такие ресурсы на которых разбирают базовые проблемы вёрстки?

    @President42
    Как делается сетка: тыц, тыщ, тыдыщь

    Как делается меню: раз, два, три

    SVG: адын, два, три, четыре

    Parallax: вот, и вот, и ещё вот. И вот тут почти Parallax, думаю тоже пригодится

    Бонус:
    • JavaScript Garden -- тонкости JavaScript
    • Learn X in Y minutes -- краткие туториалы по куче языков (там и JS, и CSS и много чего ещё есть), некоторые с русским переводом (но не все)
    • Material Design -- гайдлайн по Material Design
    • PrimerCSS -- стайлгайд Github + их CSS фреймворк
    Ответ написан
    7 комментариев
  • Как поставить высоту блока div в зависимость от ширины?

    Зачем скрипты? Можно ведь обычным css'ом обойтись:
    jsfiddle.net/qso14y3k

    Один минус - 2 дополнительные обёртки для каждого блока. Но это не смертельно. Фокус этот работает по стандартам, так что работать должен везде.
    Также эта техника входит в toolkit, который написан ребятами, которые написали Singularity.
    Ответ написан
    2 комментария
  • В чем суть интерфейсов в программировании?

    ptchol
    @ptchol
    Linux system administrator
    Интерфейс это фактически регламент взаимодействия.
    Класс который реализует интерфейс обязан реализовывать все его методы.
    В интерфейсе вы описываете лишь сигнатуры методов, то есть вы указываете что класс наследник должен уметь делать, но как он будет это делать, тот решает сам.
    Таким образом вы уверенны, что если класс реализует тот или иной интерфейс, все объекты данного класса имеют определенный набор методов.
    ООП - мир абстракций :) Впустите его в себя :) Интерфейсы это еше одна абстракция позволяющая отделить описание от реалзиации.

    "Придумать класс с правильным именем" - так вы не сможете заставить "наследников" реализовывать функционал.

    Интерфейсы располагаются на уровень выше классов, если можно так выразиться. Они неявно "объединяют" классы схожие по каким то общим признаком, и которые обязаны (по логике вашего приложения) реализовывать те или иные методы.

    interface Instruments {
        final static String key = "До мажор";
        public void play();
    }
    class Drum implements Instruments {
        public void play() {
            System.out.println("бум бац бац бум бац бац");
        }
    }
    class Guitar implements Instruments {
        public void play() {
            System.out.println("до ми соль до ре до");
        }
    }


    p.s: программисты дополнят и поправят.
    Ответ написан
    2 комментария