• Frontend-разработчики должны быть в теме всего


      Мысли Криса Койера


      Одна из мыслей, которая поселилась в моей голове: должен ли frontend-разработчик быть в курсе всего? В общем смысле, frontend-разработчик может использоваться и на других рабочих местах. Вся команда разработчиков заканчивает разговор на frontend-разработчике. В этом смысл моей идеи. Frontend-разработчики создают те вещи, с которыми будут взаимодействовать люди. Все этапы разработки проходят вместе с frontend-разработчиком. Возможно, именно поэтому это такая забавная работа! Поскольку frontend-разработчик занимает центральное место в цепочке разработки, и при этом мы имеем дело с большим количеством разных специалистов, мы должны понимать их работу и иногда подсказывать, что и как сделать лучше.

      От переводчика


      Всем привет, с вами Максим Иванов, и сегодня мы поговорим на довольно острую тему в сфере веб-разработки. Как утверждает Крис Койер, frontend-разработчик должен разбираться в очень многих вещах, о которых не все даже и задумываются. Конечно, мы должны понимать, что frontend-разработчик не главный в процессе разработки любого онлайн-сервиса или ПО в целом. На ту же позицию frontend-разработчика вы найдете больше откликов на вакансию, чем на позицию backend-разработчиком. Но почему же тогда Крис Койер считает, что работать frontend-разработчиком сложнее, ибо ты должен специализироваться во всем. Конечно, ситуаций в жизни очень много, разные компании по-разному используют своих специалистов, но в чем наверняка должен разбираться frontend-разработчик? Об этом мы сегодня и поговорим. Жду комментариев на эту тему, а сейчас приступим.
      Читать дальше →
    • Простые правила простой вёрстки

      Речь в этой небольшой статье пойдет не о специфических техниках для конкретных случаев, также не будет раскрыта тема правильной оптимизации кода и графики под высоконагруженные проекты. Не знаю, много ли здесь людей, часто имеющих дело с вёрсткой небольших проектов, для которых избыточно применение haml/sass и кучи методик правильной оптимизации, отлично описанных в статьях других профессионалов.

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

      Попробую собрать общие рекомендации, следуя которым можно получить не только деньги, но и благодарность заказчика, программистов и будущих посетителей сайта. Вещи очевидные, но статьи, собирающей их воедино я не нашел. В комментариях раскрываются минусы некоторых описываемых методов, для удобства в посте указаны ссылки на ветки комментариев, где можно почитать об этом подробнее.
      Читать дальше →
    • Про мегапиксели, число 41 и Жака Фреско / UPD: добавлено демо-видео с зумом и сравнение с мыльницей по просьбам читателей


        Вместо предисловия




        Прежде всего хотелось бы уточнить, для кого написана данная статья и с какой целью.

        Но сперва небольшая предыстория. В конце прошлого года я приобрёл себе уже порядком нашумевший камерафон Nokia Lumia 1020. Как-то раз в университете, когда мой приятель поинтересовался, что за чёрный круглый блин выступает на спине моего смартфона, я имел неосторожность при всех произнести словосочетание:
        «Камера с разрешением 41 мегапиксель».

        Реакции окружающих долго ждать не пришлось. Практически сразу несколько человек обратили свой взор на смартфон и с насмешкой намекнули мне, что я лох жертва рекламы и маркетинга. В принципе в интернете можно наблюдать ту же самую картину. Стоит на хабре появиться какой-нибудь статье о 1020, так в комментариях всегда найдутся теоретики, которые в пух и прах разнесут данный камерафон.




        За примером далеко ходить не надо, вот небольшая вырезка типичных комментариев под любой публикацией о 1020:




        Теоретик №1
        #

        Ещё немного исследований от теоретика №1




        Теоретик №2
        Читать дальше →
      • Феерическая расстановка всех точек над Lumia 1020 или каким должен быть настоящий камерофон с поддержкой RAW


          Пришло время собрать в одном месте все-все-все мифы и разоблачения одного из самых противоречивых с точки зрения читателей камерофонов — Lumia 1020. (Внимание, много фото, красивых фото)

          А также гвоздь программы, впервые на хабре, у всех на глазах: работа с RAW-исходниками, полученными с 1020, и их обработка.

          Садитесь поудобнее, мы начинаем ;)
          Какие вопросы чаще всего приходят в голову, когда читатель слышит выражение: «Камерофон Lumia 1020 с камерой в 41 мегапиксель»?

          1. 41 мегапиксель, как он там умещается?
          2. Соответствует ли остальное железо заявленному уровню фотомодуля?
          3. И всё же, там правда столько мегапикселей?
          4. Да даже если столько, какая от них польза? Зачем так много?
          5. Предположим, что в этом есть смысл, но RAW в смартфоне — это же перебор, толку от него с такой матрицы?!!
          6. Всё равно зеркалка лучше!

          P.S. Да, у автора всё так же остался приступ «Люди любят обиженных» и он всё ещё отчаянно пытается восстановить честь финских инженеров, чьи достижения, по мнению автора, были незаслуженно проигнорированы в свете последних событий.


          Пойдём по порядку.

          1. 41 мегапиксель, как он там умещается?


          Читать дальше →
        • Тестирование вёрстки на визуальные регрессии с помощью PhantomCSS

          • Translation
          Работа с чужим кодом — одна из распространенных и сложных проблем, с которыми мне приходилось сталкиваться в своей работе. Почти в каждом случае предыдущий разработчик писал код не так, как бы мне этого хотелось.

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

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

          С другой стороны, мы могли просто переименовать файлы и включить их в один прекомпилированный css (без какого-либо рефакторинга). Но для улучшения кода было бы хорошо порефакторить стили. Эта работа более затратная, но в будущем себя бы окупила. И, что самое важное — это позволило бы нам работать быстрее, с большей уверенностью что мы что-то не сломаем.

          Раньше я рассматривал такие изменения как большие риски. В конце концов, C в CSS это каскадирование, где порядок абсолютно важен. Реструктуризация нескольких стилей означает изменение порядка, что, естественно, приводит к большому риску что-то сломать.

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

          На этот раз было решено построить визуально регрессионный набор тестов.
          Читать дальше →
          • +20
          • 22.4k
          • 1
        • То, что вам никто не говорил о z-index в статье «То, что вам никто не говорил о z-index»

            image
            Почти два года назад вышла статья «What no one told you about z-index» (и её перевод на Хабре «То, что вам никто не говорил о z-index»), авторы которой рассказывают о малоизвестной (76% проголосовавших пользователей Хабра слышат об этом впервые), но документированной возможности создания нового контекста наложения указав opacity меньше единицы.

            Но несмотря на название статьи, авторы не рассказали вам ещё кое о чём.

            Предполагается, что вы знакомы с понятием контекста наложения (англ. stacking context).
            Элементы с общими родителями, перемещающиеся на передний или задний план вместе известны как контекст наложения. Понимание контекста наложения является ключом к пониманию z-index и порядка наложения элементов.

            Каждый контекст наложения имеет свой корневой элемент в HTML структуре. В момент формирования нового контекста на элементе, все дочерние элементы так же попадают в этот контекст и занимают своё место в порядке наложения. Если элемент располагается в самом низу одного контекста наложения, то никаким мыслимым и немыслимым образом не получится отобразить его над другим элементом в соседнем контексте наложения, располагающимся выше по иерархии, даже с установленным z-index равным миллиону.
            — Из статьи «То, что вам никто не говорил о z-index». Для понимания темы настоятельно рекомендую к ознакомлению либо её, либо классический труд на MDN.

            Новый контекст наложения формируется в случаях:

            • Корневой элемент () всегда содержит корневой контекст наложения. Любой элемент на странице, не участвующий в локальном контексте наложения (сформированном любым из последующих вариантов), участвует в корневом контексте наложения.
              Элемент с position отличным от static и значением z-index отличным от auto. Кроме одного исключения для position: fixed, но я это вынес в отдельный пункт.
              Элемент имеет значение opacity меньше, чем 1.
            Нужно больше контекстов наложения!
          • Clear или overflow:hidden — очистка всего потока или создание контекста форматирования?

              clear и overflowСвойство clear со значениями left, right, both действительно очищает поток в отличие от overflow со значеним hidden, которое создаёт отдельный контекст форматирования для выбранного элемента, тем самым локализуя действие свойства float внутри элемента к которому применён.

              Читать дальше →
            • «Пожиратель сердец» — Маршрутизатор ASUS RT-AC68U: 802.11ac, usb 3.0, BitTorent, TimeMachine


                К 23 февраля и 8 марта. Порадуй себя и близких тебе


                Предисловие от автора (написано за 5 минут перед публикацией)


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

                Краткая информация


                На рынке домашнего сетевого оборудования представлено множество решений, но сегодня я хочу рассказать вам об одном, действительно, уникальном устройстве: маршрутизаторе ASUS RT-AC68U (описание на сайте ASUS).

                Не откладывая в долгий ящик, приведу ключевые особенности RT-AC68U, ставящие его выше остальных устройств на рынке:
                • новейший стандарт беспроводной связи 802.11ac
                • подключение внешнего жесткого диска по интерфейсу usb 3.0
                • официальная функция Time Machine
                • поддержка стандарта BitTorent (с учетом предыдущего пункта)

                Именно совокупность этих черт сподвигла меня к данному приобретению. Разумеется, я умалчиваю про общеизвестные функции, такие как: подключение принтера или 3G/4G-модема во второй usb2.0 порт, работа в качестве домашнего файл-сервера, работа в качестве качалки всего и вся.

                Технические характеристики ASUS RT-AC68U
                Таблица с характеристиками честно скопирована с официальной страницы Asus и в ней отсутствует упоминание о функции Time Machine.
                Дополнительно хочу отметить, что крепление к стене не предусмотрено.
                Network Standard IEEE 802.11a, IEEE 802.11b, IEEE 802.11g, IEEE 802.11n, IEEE 802.11ac, IPv4, IPv6
                Product Segment AC1900 ultimate AC performance: 600+1300Mbps
                Data Rate 802.11a: 6,9,12,18,24,36,48,54Mbps
                802.11b: 1, 2, 5.5, 11Mbps
                802.11g: 6,9,12,18,24,36,48,54Mbps
                802.11n: up to 450Mbps
                802.11n TurboQAM:up to600Mbps
                802.11ac: up to 1300Mbps
                Antenna External x 3
                Operating Frequency 2.4GHz/5GHz
                Encryption 4-bit WEP, 128-bit WEP, WPA2-PSK, WPA-PSK, WPA-Enterprise, WPA2-Enterprise, WPS support
                Firewall & Access Control Firewall: SPI intrusion detection,DoS protection
                Access control: Parental control, Network service filter, URL filter, Port filter
                Management UPnP, IGMP v1/v2/v3, DNS Proxy, DHCP, NTP Client, DDNS, Port Triger, Universal Repeater, System Event Log
                VPN Support IPSec Pass-Throuth
                PPTP Pass-Through
                L2TP Pass-Through
                PPTP server
                OpenVPN server
                PPTP client
                L2TP client
                OpenVPN client
                WAN Connection Type Internet connection type: Automatic IP, Static IP, PPPoE(MPPE supported), PPTP, L2TP
                WAN Bridge support
                Multicast Proxy support
                Multicast Rate Setting support
                Utilities .Download master
                — support BT, NZB, HTTP, ED2K
                — support encryption, DHT, PEX and magnet link
                — upload and download bandwidth control
                — download scheduling
                .Media server:
                — Image: JPEG
                — Audio: mp3, wma, wav, pcm, mp4, lpcm, ogg
                — Video: asf, avi, divx, mpeg, mpg, ts, vob, wmv, mkv, mov
                .QoS:
                — WMM
                — User definable rules for IP/MAC/Port. Upload and Download bandwidth management.
                — ACK/SYN/FIN/RST/ICMP with Highest priority
                .Guest Network
                — 2.4GHz guest network x 3, 5GHz guest network x 3
                .Printer Server: multifunctional printer support(Windows nly), LPR protocol support
                .File server: Samba and FTP server with account management
                .PPTP VPN server
                .Network map
                .Traffic monitor
                Ports 4 x RJ45 for 10/100/1000/Gigabits BaseT for LAN, 1 x RJ45 for 10/100/1000/Gigabits BaseT for WAN
                USB 2.0 x 1
                USB 3.0 x 1
                Кнопка WPS Button, Reset Button, Power Button, Wireless on/off Button
                Светодиодный индикатор PWR x 1
                Wi-Fi x 2
                LAN x 4
                WAN x 1
                USB x 2
                Электропитание AC Input: 110V~240V(50~60Hz)
                DC Output: 19 V with max. 1.75 A current
                Размеры 220 x 83.3 x 160 mm (WxDxH)
                Вес 640 g
                Комплeктация 1 x RT-AC68U Wireless-AC1900 Dual Band Gigabit Router
                1 x RJ-45 cable
                1 x Power adapter
                1 x QSG
                1 x Support CD(user manual and ultility)
                Router Special Features 3G/4G data sharing, AiCloud, Printer server, Download Master, AiDisK, Multiple SSIDs, Parental Control
                Ещё немного официальных картинок ASUS RT-AC68U












                Читать дальше →
              • Система домашнего видеонаблюдения

                Доброго времени суток уважаемые Хабровчани! Решил поделиться с вами своей маленькой слабостью, с детства люблю все знать и за всеми наблюдать! Именно эта идея и привела меня к желанию построить свою собственную систему видеонаблюдения в рамках квартиры. Мой путь оказался несколько тернист, но обо всем по порядку.
                Читать дальше →
              • Обзор 75-дюймового 4K-телевизора Samsung UE75HU7500

                  Время идёт, растут диагонали экранов, а с ними и наши аппетиты. Экраны в 50-55 дюймов, казавшиеся огромными лишь несколько лет назад, теперь являются обычным делом и продаются в любом приличном магазине электроники. Они же, по моим наблюдениям, предлагают и самое выгодное сочетание размера экрана и цены.

                  Но к дьяволу выгоду! Наш пациент сегодня — 75-дюймовый монстр Samsung UE75HU7500, точное название модели Samsung UE75HU7500LXXN (поскольку я живу в Нидерландах, то и версия устройства соответствующая). Цена, рекомендованная производителем: 5499 евро.

                  Это один из самых больших телевизоров компании, имеющихся в массовой продаже на сегодняшний день; крупнее него есть лишь «гнутые» 78-дюймовики 78JU7500 и 78HU9000 и мегамонстр 85HU7500 с диагональю 85" — но у них цены уж совсем заоблачные (85-дюймовая модель стоит десять тысяч евро).



                  Телевизор находится у меня в активном использовании уже около полутора месяцев, так что могу поделиться опытом от первого лица. Под катом множество картинок.
                  Читать дальше →
                • Слушаем музыку дома

                    Как-то так сложилось, но музыкального центра у меня никогда не было, максимум советский магнитофон Маяк-223 да пара колонок. Приобщиться к цифровому звуку и компакт-дискам удалось только с появлением PC-совместимого компьютера в начале 2000-х. Да и CD-привод был дорог и появился далеко не сразу. Однако в то время уже во всю развивалась революция MP3, а соответственно как и у многих, у меня начала расти небольшая коллекция музыки на винте, что-то было скопировано у друзей, что-то рипалось собственноручно с купленных компакт-дисков, дабы не дергать постоянно привод ради прослушивания музыки. Да и в Winamp'е можно было составить плейлист на много-много часов из много-много альбомов, а не гонять строго один альбом постоянно.

                    Собственно музыка слушалась со встроенной звуковухи на обычных компьютерных пищалках без особых претензий. Но несколько лет назад вдруг захотелось чего-то большего. Что называется, не было у бабы проблем, купила баба порося. В этой статье я постараюсь поделиться с вами личным опытом в организации домашнего звука.
                    Читать дальше →
                  • Open Home Automation Standard (OHAS)

                      image

                      Не пугайтесь, стандарт неофициальный и самопровозглашённый, то есть совершенно необязательный к использованию. Это попытка разработать народный стандарт домашней автоматизации, который позволил бы собирать умный дом из стандартизированных блоков, просто как конструктор Лего. Возможно ли это? Да, возможно и такой умный дом давно работает и практика показала полную жизнеспособность идеи. За несколько лет эксплуатации не выявлено никаких сбоев и проблем, мало того, после эксплуатации умного дома, построенного по этому принципу, другие варианты смотрятся просто как анахронизм.
                      Читать дальше →
                    • Аудио мультирум своими руками. Многокомнатная музыкальная система на основе бесплатного Logitech Media Server

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


                      Проект Tobias на основе HiFiBerry

                      Один из вопросов, удивляющих своим постоянством — как организировать музыкальную систему на объекте таким образом, чтобы было легко включить её в единый интерфейс управления домом, наравне с освещением, климатом и другими системами. Вспоминая, что сам в первый раз делал это с большими сложностями и ошибками, я решил описать этот процесс подробнее для всех интересующихся.
                      Читать дальше →
                    • NAS для нас: от дорогого к простому и бюджетному

                        Продолжая тему накопителей, поднятую в постах про беспроводные диски и флешки, хочу перейти к теме NAS. Штука эта довольно интересная, особенно в эпоху планшетов, ноутбуков и множества семейных устройств. Я специально остановлюсь на домашнем применении, потому что корпоративный NAS – тема отдельной большой статьи.



                        Зачем нужен NAS дома? Вроде бы простой вопрос и большинство на него ответит так – для хранения данных и доступа к ним всех членов семьи. Только вот это совсем не так, потому что тогда проще и вполне достаточно будет взять нормальный роутер и подключить к нему внешний диск по USB.
                        Читать дальше →
                      • Что не так с онлайн-курсами и как это исправить: опыт HTML Academy

                          image

                          Мы в HTML Academy постоянно работаем над повышением эффективности наших образовательных программ и курсов (ради этого мы ставим опыты на студентах и внедряем геймификацию).

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

                          Именно поэтому мы решили создать курс, прохождение которого позволяло бы людям не просто получить базовые знания вёрстки, но стать настоящим (пусть и начинающим) ИТ-специалистом. В сегодняшнем материале мы расскажем о том, что в итоге из всего этого получилось.
                          Читать дальше →
                        • Здоровье гика: как не закиснуть к старости

                            Привет, Geektimes! Сегодня мы поговорим — внезапно! — о здоровье. А если быть точным — о том, как влияет многочасовое ежедневное сидение за компьютером и как можно минимизировать этот вред, чтобы в старости радоваться жизни и продолжать работать сидя за компом, а не жаловаться на жизнь на приёмах у врачей.


                            Наверное, многие гики считают, что уж вот их никак и никогда не посетят все сопутствующие болячки — дескать, не сутками же сидим, гулять ходим, да и вообще мы же не дальнобойщики. Грустно, но факт — проблемы случаются и от меньшего, поверьте. Поэтому стоит задуматься об этом уже сейчас. Тем более что радикально менять свой образ жизни и перестать гиковать не нужно :) Достаточно выделить суммарно пару часов в неделю на выполнение несложных физических упражнений.

                            Условно все «компьютерные» упражнения можно поделить на три блока — для глаз, для суставов кистей и для осанки. Итак, поехали.
                            Читать дальше →
                          • Windows server 2012 r2 Hyper-V установка роли или о том, как можно наделать ошибок в процессе установки

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

                            Два года назад я делал тестовый вариант прокси-сервера. Сделал его на Zentyal 3.3, через squid. Ушёл в отпуск, пришёл — тестовой машины не стало. Так как проблема не стояла столь остро, то про это на время забили, к тому же было просто не на чем строить новый прокси.

                            В конце позапрошлого года появился у нас новый сервер под 1С с мощным железом, на котором вполне может крутится виртуальная машина, и при этом не одна.

                            Читал неоднократно на Хабре, как ставить роль Hyper-V, как настроить сеть. При этом полезных публикаций было мало. Почему? Так я сейчас вам покажу.
                            Читать дальше →
                          • Пересмотренное руководство по Grunt для начинающих

                            • Translation
                            • Tutorial
                            Еще в марте 2013 года я написал статью руководство по Grunt для начинающих и она стала самой посещаемой статьей на моем сайте. Я написал ее в то время, когда сам только начинал своё знакомство с Grunt, и это было скорее руководство для себя, чем для кого-то ещё. Теперь, спустя 18 месяцев, я почувствовал, что пришло время пересмотреть как я использую Grunt потому что сейчас я знаю гораздо больше, чем в то время.

                            Если вам не терпится просто увидеть код, то весь он есть на Github.
                            Читать дальше →
                          • Программисты и депрессия

                                  Это перевод (причем достаточно вольный) выступления 2013 года программиста на Ruby по имени Greg Bauges, посвященного депрессии и психическим расстройствам в среде программистов. Выступление старое, но проблема вечная. Вот само видео с конференции:



                                  Итак, начнем, меня зовут Грег. Я работаю в компании Table XI в Чикаго. Мы что-то вроде веб-студии из 30 человек. Я программировал большую часть своей жизни, начав еще с TRS-80, когда мне было только 6 или 7 лет. Там были кассеты и Basic, я даже еще помню ежемесячный журнал 3-2-1 Contact, который печатал на заднем развороте программы для BASIC. Тогда я не мог копипастить и мне оставалось только перепечатывать программу чтобы запустить, заставляя меняться цвета на экране и делать прочие непотребства… Я провел большую часть моей жизни пытаясь усидеть на двух стульях — программируя и работая с клиентами. И еще у меня биполярное расстройство второго типа(БАР2) и СДВ, и сегодня я хочу рассказать вам свою историю, друзья. Рассказать вам почему мы должны уделять внимание депрессии и психическим заболеваниям на подобных встречах, конференциях, и в разговорах с коллегами.
                              Читать дальше →