• Математика CSS-шлюзов

    • Translation

    CSS-шлюзом (CSS-lock) называется методика из адаптивного веб-дизайна, позволяющая не перепрыгивать от одного значения к другому, а переходить плавно, в зависимости от текущего размера области просмотра (viewport). Идею и одну из реализаций предложил Тим Браун в статье Flexible typography with CSS locks. Когда я пытался разобраться с его реализацией и создать свои варианты, мне с трудом удавалось понять, что именно происходит. Я выполнил много вычислений и подумал, что полезно будет объяснить другим всю эту математику.

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



    Это руководство — начальный материал о кросс-DPI и кроссплатформенном дизайне для начинающих и средних дизайнеров, желающих узнать о нем с самого начала или получить больше знаний. Без сложных математических и непонятных диаграмм, только непосредственные объяснения, упорядоченные в небольших разделах, для понимания и применения их непосредственно к вашей дизайнерской работе.

    Автор — Sebastien Gabriel.

    Я не знаю всего, так что, если по вашему мнению я где то ошибаюсь или вам нужно уточнить что-то, либо у вас есть предложения или вопросы для улучшения данного руководства, отправьте письмо (на англ) на sgabriel.contact@gmail.com. Вы также можете найти на меня Twitter, G+ или Facebook.
    Читать дальше →
  • 50+ лучших дополнений к Bootstrap



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

      Для статьи я подобрал наиболее полезные дополнения «на все случаи жизни».
      Читать дальше →
    • Спать мало, но правильно?

        Навеяно этим постом от юзера case. Пост не новый, и на главную он не попал.
        Но я вот наткнулся на него сегодня и решил написать кое-что о сне. Уверен, что это будет полезно многим хабравчанам, да и случайным читателям тоже.
        Читать дальше →
      • Впечатления от Яндекс.Субботника

          Начнём с того, что впечатления самые хорошие, и я безумного благодарен организаторам полезного для меня мероприятия. Впечатлений так много, что своими заметками исписал 12 листов блокнота, мелким шрифтом. Ниже я эти заметки разберу, систематизирую и они будут пригодны для чтения. Я не буду выкладывать стенографические записи самих докладов, их выложат в сеть через 2-3 дня, там и почитаете. Только мои впечатления :)
          Читать дальше →
        • Настройка UAC в Windows 7

            Начиная с Windows Vista, Microsoft включила в состав операционной системы механизм управления учетными записями пользователей (сокращенно UAC). Механизм работы UAC большинство пользователей восприняли негативно, так как бесконечные дополнительные валидации в виде затенения экрана и прощелкивания кнопочки Yes могли вывести из себя даже самого терпеливого. Зачастую UAC функционировал не вполне корректно, что приводило к не возможности работы с рядом программ, которые были написаны под ранние версии Windows. C выходом SP1 для Vista UAC был доработан, но пользователи уже успели отключить UAC и забыть что это такое.

            В Windows 7 UAC приобрел дополнительные настройки. И я бы хотел рассказать, как именно сделать UAC действительно полезным инструментом для защиты ОС.

            Читать дальше...
          • Магический круг: CSS головоломка

              Доброго времени суток, уважаемые хабравчане. Недавно Hugo Giraudel, он же CSS гоблин, SASS хакер и Margin псих опубликовал в своем блоге очень интересную CSS задачку на смышленость.

              image

              Сможете заверстать подобное учитывая следующие правила?

              • Круг в центре должен быть прозрачным, чтобы был виден background
              • Расстояние между левыми и правыми блоками, как между верхними и нижними должно быть одинаковое
              • При наличии потомков в блоке, содержимое должно отображаться
              • DOM должен выглядеть следующим образом: ul > li > section > header + footer
              • Нельзя использовать JavaScript и изображения
              • Дополню еще от себя: нельзя использовать CSS Shape и Clip Path

              Чтобы не было очень лень — каркас уже есть.

              Сделали?

              А тремя способами?
            • Нужны ли в JavaScript классы?

                JavaScript принято считать прототип-ориентированным языком программирования. Но, как ни странно, этим подходом практически никто не пользуется: большинство популярных JS-фреймворков явно или неявно оперируют классами.
                В этой статье я хочу рассказать об альтернативном способе программирования на JavaScript, без использования классов и конструкторов — чистым прототипным ООП и особенностях его реализации на ECMA Script 5.
                Читать дальше →
              • Computex 2013. Девушки с выставки

                  Снова здравствуйте, дорогие мои хабраюзеры! Отгремел, не так громко, как хотелось бы, Computex 2013. Вчера радовали кого-то трансляции с Apple WWDC и Е3. Но сегодня не будет никакого железа, никаких новинок и технологий. Сегодня будут девушки с Computex и только они. Я даже не стану расписывать на каких стендах красотки завлекали посетителей, просто смотрите и плюсуйте. ОСТОРОЖНО, под катом много фоток.
                  Можно устроить импровизированную голосовалку в комментариях, какая из барышень наиболее понравилась хабражителям.
                  Читать дальше →
                • Быстрый старт в MODX Revolution

                  • Tutorial
                  Revolution дорос уже до версии 2.0.8, но большинство разработчиков не спешит его использовать, так как документация еще не полная, да и статей на русском очень мало.
                  Лично я не нашел ни одной пошаговой инструкции «для чайников», и поэтому решил написать ее сам.

                  Конечно, это топик для не «совсем чайников», а для людей, которые хоть немного знакомы с Evolution и при переходе на Revolution обломались от всего непривычного, как я. Никаких секретов и ловких методик тут не будет. Обычный how-to с картинками (их довольно много).
                  Читать дальше →
                • Подборка инструментов для эффективной frontend разработки

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

                    Form Builder

                    image

                    Этот прекрасный генератор форм поможет вам в создании красивейших CSS логин-боксов и прочих input вещей, при минимальных временных затратах. Помимо форм на сайте этого проекта можно создавать и другие не менее красивые CSS элементы, в том числе кнопки и ленты.
                    еще 24 ссылки
                    • +190
                    • 99.2k
                    • 46
                  • Вся правда о Chrome (и не только) Web Inspector. Часть 1

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

                      Так как Web-Inspector не переведен на Русский, я буду сохранять оригинальные названия.


                      В качестве бонуса, приложу скриншот одной и самых первых версий, из далекого 2006го.
                      Читать дальше →
                    • JavaScript — полезные материалы

                        Хочу поделиться набором ссылок на нексолько полезных, интересных и, возможно, не самых известных материалов по JavaScript. Из них вы узнаете немного больше об истории появления языка, о его настоящем, тонкостях реализации в различных браузерах, и о будущем развития стандарта ECMAScript. О различных способах наследования в том числе об эмуляции «классического» ООП, множественном наследовании и миксинах. О функциональном стиле программирования в JavaScript: чистые функции, map, reduce, частичное применение и композиции функций. И, наконец, что если бы Хемингуэй писал на JavaScript?
                        Читать дальше →
                        • +123
                        • 77.8k
                        • 29
                      • Верстка e-mail рассылок — «подводные камни». Часть первая. Картинки

                          Верстка e-mail рассылок. Часть первая. Картинки.Добрый день, уважаемые хабравчане!
                          Не так давно мы вплотную столкнулись с задачей верстки e-mail рассылок. Это не самое приятное занятие, но многие компании активно используют корпоративные рассылки, и верстка становится всё более актуальной задачей.

                          Казалось бы, что сложного — сверстать простую страничку? Но есть «подводные камни», которые могут поставить в тупик даже опытного верстальщика. Именно таким «камням» и посвящен пост (оговоримся сразу — все эксперименты, описанные в посте, проводились под Windows с тем ПО, которое есть у многих под рукой).

                          Первый камень — Изображения


                          Практически каждая рассылка содержит картинки. Логотип, шапка, фотографии, иконки соц.сетей…
                          Есть 2 способа использования картинок:
                          Читать дальше →
                        • 10 рекомендаций по html-верстке электронных писем

                            Рекомендация первая: забудьте про блочную верстку. Весь лэйаут должен быть на таблицах. При этом, без крайней необходимости — их тоже лучше не использовать. Также следует выкинуть из головы представления о семантике, сокращенных css-правилах, валидации, плавающих блоках — и прочее. Самый распространенный в РФ почтовый сервис на данный момент (mail.ru) вообще не понимает стили (css). Любые тэги/атрибуты style заменяются на xstyle и не работают. Вообще все.

                            Так что, фактически, при вёрстке html для почтовой рассылки надо мысленно переместиться в 90-ые годы прошлого века и смело использовать все распространенные приёмы того времени.

                            Для тех, кто с ними не знаком (как я был) — напомню:
                            Читать дальше →
                          • AngularJS — фреймворк для динамических веб-приложений от Google

                              AngularJS создан для тех разработчиков, которые считают, что декларативный стиль лучше подходит для создания UI, а императивный — для написания бизнес-логики.

                              Дзен Angular


                              • Хорошо отделять манипуляцию DOM-ом от логики работы приложения. Это существенно улучшает тестируемость кода.
                              • Хорошо считать, что автоматизированное тестирование приложения настолько же важно, насколько и написание самого приложения. Тестируемость очень сильно зависит от того, как структурирован код.
                              • Хорошо отделять разработку клиентской части от серверной. Это позволяет вести разработку параллельно и улучшает повторное использование на обеих сторонах.
                              • Хорошо, когда фреймворк ведет разработчика по всему циклу разработки приложения: от проектирования UI через написание бизнес-логики к тестированию.
                              • Хорошо, когда распространенные задачи становятся тривиальными, а сложные — упрощаются.


                              AngularJS представляет собой комплексный фреймворк. В стандартной поставке он предоставляет следующие возможности:
                              • Все, что вам нужно для создания CRUD-приложений: data-binding, базовые директивы для шаблонов, валидация форм, роутинг, deep linking, повторное использование компонентов, dependency injection, инструменты для взаимодействия с серверными (RESTful) источниками данных.
                              • Все, что вам нужно для тестирования: средства для модульного тестирование, end-to-end тестирования, mock-и.
                              • Шаблон типового приложения, включающего в себя структуру каталогов и тестовые скрипты.


                              AngularJS разрабатывается сотрудниками Google и используется, как минимум, в одном сервисе Google — DoubleClick.

                              Читать дальше →
                            • Самовызывающийся конструктор Джона Резига и размышление о том, почему это решение не прижилось

                              • Tutorial
                              Настала пора мысленно вернуться на четыре с небольшим года назад ко блогозаписи «Simple “Class” Instantiation» из блога Джона Резига, прославленного создателя необыкновенно удобной библиотеки jQuery. И вернёмся.

                              Однако же, так как я вовсе не вижу её в результатах поиска на Хабрахабре по слову «Resig», то поневоле приходится думать, что эту полезную блогозапись никто не удосужился перевести (или хотя бы пересказать) за четыре прошедших года — мне придётся, стало быть, самостоятельно пересказать блогозапись Резига прежде, чем я исполню моё главное намерение: поразмыслить вслух, почему же предложенный Резигом способ решения указанной им проблемы так и не сделался общераспространённым. И перескажу. (Сам этот пересказ ужé был бы полезен читателю, даже кабы я к нему ничего от себя не прибавил. А я прибавлю.)



                              Шестого декабря 2007 года Резиг рассмотрел, что получается, когда в джаваскрипте используется операция «new» для создания объекта (в языках с классами мы сказали бы «экземпляра класса»):

                              function User(first, last){
                                 this.name = first + " " + last;
                              }
                              
                              var user = new User("John", "Resig");
                              

                              Резиг справедливо подметил, что для начинающих программистов на джаваскрипте не вполне очевидно, что появление «this» в коде функции указывает на то, что перед нами конструктор объекта. (Я от себя в скобках прибавлю: если функция находится в недрах некоторой библиотеки, то это обстоятельство нуждается также и в документировании — а не то пользователь библиотеки не многим будет отличаться от новичка: исходный код с телом функции читают не все, тем более что он нередко применяется в минифицированном, не читаемом виде.)

                              Поэтому, рассудил Резиг, рано или поздно кто-нибудь попробует вызвать «User()» без «new» и тем получит на свою голову сразу две неприятные проблемы. Во-первых, переменная «user» останется неопределённою: функция «User()» задумана ведь как конструктор, а значения она никакого не возвращает. Во-вторых, что ещё хуже, попытки обращения к «this» изнутри такого (некорректно вызванного) конструктора неизбежно приведёт к засорению глобального пространства имён — а это чревато зловещими и трудноуловимыми последствиями. Обе проблемы Джон Резиг продемонстрировал на примере:

                              var name = "Resig";
                              var user = User("John", name);
                              // здесь переменная «user» не определена
                              // БОЛЕЕ ТОГО: значение «name» теперь ужé не «Resig»!
                              if ( name == "John Resig" ) {
                                 // фигассе!…
                              }
                              

                              Читать дальше →
                            • Пять преимуществ прокрастинации

                              Этот текст — перевод статьи Джеймса Алтачера, посвященной прокрастинации (или отлыниванию от работы), то есть тому, чем многие из нас регулярно занимаются. Автор высказывает свою точку зрения — прокрастинация не является исключительно негативным явлением и может обладать преимуществами.
                              Джеймс Алтачер (James Altucher) – предприниматель, инвестор, управляющий директор Formula Capital, основатель Stockpickr.com. Известный блоггер. Обладатель именной статьи про себя в Википедии.

                              Читать дальше →