Gulp-файл для frontend проекта

Решение не претендует на идеальность. Но вполне подойдет для разработки небольшого frontend проекта, написанного с использованием coffeescript и less. Важное замечание: использование бекенда не предусмотрено. Nodejs использован только для билда ассетов (такое решение удобно, к примеру, если вы планируете создать гибридное оффлайн приложение для смартфона).

Ключевые особенности нашего проекта, и, как следствие, gulp-файла:

1)  Поддерживает разные среды (prod, dev, etc)

2) Компиляция и минификация less, CoffeScript файлов, объединение нескольких в один (конкатенация)

3) Поддержка тестов (jasmine)

4) В dev-среде работает watch (динамически перебилдивает ассеты при изменении исходников)

Откуда гении? (Обзор книги "Вы, конечно, шутите, мистер Фейнман")

Так откуда же гении? Ответ, к сожалению, неизвестен никому.
Но кое-какие интересные предположения все-таки можно отыскать в книге “Вы, конечно, шутите, мистер Фейнман!”.

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

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

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

Но вернемся к Ричарду Фейнману.
Книга - яркий пример того, как человек наслаждается жизнью, в хорошем, возвышенном смысле.

Создание респонсивных таблиц с помощью css

В этой заметке мы рассмотрим, как можно использовать таблицы в респонсивных шаблонах и как мы можем сделать удобным использование таблиц на мобильных устройствах.

При создании респонсивных таблиц вы столкнетесь с множеством проблем:

  • Слишком много колонок
  • Слова вылазят за границы ячеек
  • Ширина колонки становится слишком малой
  • Если у вас много строк, при скроле вы не сможете видеть заголовки колонок

В этой заметке, надеюсь, мы исправим все эти проблемы путем использования респонсивного css-решения.

Junior vs Senior разработчик: в чем, в конце концов, разница между ними?

Junior vs Senior engineerКажется, что есть резкий контраст между этими уровнями. Но на самом деле, какое различие между Junior и Senior разработчиком?

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

Этот вопрос может показаться глупым и очевидным, но какой же ответ на самом деле?

Инкапсуляция с помощью замыканий в JavaScript

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

Если переменная или объект в JavaScript не помещены внутрь какой-либо функции, то они становятся глобальными. Все глобальные элементы в JavaScript являются свойствами глобального объекта. Для браузера это объект window. При этом конструкции for, if и другие не влияют на видимость переменных.

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

Готовимся к HTTP/2: Руководство для веб-дизайнеров и разработчиков

http2Протокол передачи гипертекста (HTTPангл. HyperText Transfer Protocol) - протокол, который управляет соединением между вашим сервером и браузерами клиентов. Впервые после 1999 года, появилась новая версия этого протокола, и это обещает значительно ускорить каждый сайт.

В этой статье мы опишем основы HTTP/2 для дизайнеров и разработчиков. Я объясню некоторые ключевые особенности нового протокола, рассмотрю совместимость (серверную и браузерную) и остановлюсь подробнее на вещах, над которыми нужно задуматься, поскольку все чаще видим внедрение HTTP/2. Прочитав эту статью, вы получите обзор того, что нужно изменить в вашей работе в кратко- и долгосрочной перспективе. Также я включу множество дополнительных ресурсов, на тот случай, если вы захотите углубится в вопрос. Моя цель - предоставить достаточное количество знаний, которое поможет принят правильное решение о переходе на HTTP/2.

Новое в PHP 7: оператор объединения со значением NULL

Не слишком броское имя для оператора, но раз уж php 7 принес нам удобный оператор объединения со значением NULL (англ. null coalesce operator), покажем пример.

У php 5 уже есть тернарный оператор, который проверяет выражение и потом возвращает второй элемент, если оно истинно и третий если ложно:

echo $count ? $count : 10; // выводит 10