• Контролируем переполнение ячейки таблицы с помощью max-width

    • Tutorial


    Допустим, мы хотим сделать двухколоночную раскладку с помощью свойства table-cell. Левая колонка будет занимать всю доступную ширину, правая же может иметь два варианта в нашем случае:

    • мы зададим этой колонке фиксированную ширину;
    • она будет равняться минимальной ширине контента → minimum content width (MCW).

    Едем дальше
  • Сделай свой AngularJS: Часть 1 — Scope и Digest

    • Перевод
    • Tutorial
    Angular — зрелый и мощный JavaScript-фреймворк. Он довольно большой и основан на множестве новых концепций, которые необходимо освоить, чтобы работать с ним эффективно. Большинство разработчиков, знакомясь с Angular, сталкиваются с одними и теми же трудностями. Что конкретно делает функция digest? Какие существуют способы создания директив? Чем отличается сервис от провайдера?

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

    В этой серии статей я собираюсь воссоздать AngularJS с нуля. Мы сделаем это вместе шаг за шагом, в процессе чего, вы намного глубже поймете внутреннее устройство Angular.
    Сделаем Angular вместе
  • Как получить американский диплом о высшем образовании дистанционно

      Тема изменений в системе высшего образования становится все более актуальной. Много говорят об онлайн курсах как альтернативе университетскому образованию. Один из основных аргументов за традиционное университетское образование это отсутствие диплома и реальной аттестации после окончания онлайн курса.

      На самом деле аттестацию можно получить. Причём не просто сертификат о сдаче экзамена после определённого курса, а вполне реальный диплом американского колледжа после выполнения конкретной программы курсов.

      Читать дальше →
    • I2P: Прозрачный доступ из любого браузера

      • Tutorial


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

      Но куда уходить людям?

      Что бы был доступ к информации, свобода слова и соблюдались хотя бы те правила, которые есть в конституции?

      Mesh сети не подходят, Tor — тоже не может обеспечить требуемого, остается I2P.

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

      • Перевод
      • Tutorial
      От переводчика: Это пятая статья из цикла о Node.js от команды Mozilla Identity, которая занимается проектом Persona.





      Как написать приложение Node.js, которое будет продолжать работать даже под невозможной нагрузкой? В этой статье показана методика и библиотека node-toobusy, её воплощающая, суть которой наиболее кратко может быть передана этим фрагментом кода:

      var toobusy = require('toobusy');
       
      app.use(function(req, res, next) {
        if (toobusy()) res.send(503, "I'm busy right now, sorry.");
        else next();
      });
      

      В чём заключается проблема?


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

      Это может быть и злонамеренный всплеск трафика, например от DoS-атаки. Первый шаг к борьбе с такими атаками — написание сервера, который не падает.
      Читать дальше →
    • Photoshop в Ubuntu

        Резюме


        Мы будем использовать VirtualBox с установленными windows и photoshop, затем интегрируем виртуальную машину в ubuntu. В итоге, мы, практически, не будем ощущать, что используется эмулятор.



        Читать дальше
      • Обучение программированию на Java


          Я собираюсь переучить на Java-программистов миллион человек.
          Я собрал команду и сделал обучающий сервис, которым могу гордиться.
          Рад сообщить, что теперь стать программистом легко, независимо от образования и опыта.

          Но обо всем по порядку, много картинок
        • Просто, как дважды два четыре

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

            И действительно, как же доказать, что 2 × 2 = 4? Ответ под хабракатом.

            Дисклеймер


            Данная статья не содержит ничего нового для читателей с серьёзным математическим образованием. Также, вполне вероятно, она будет неинтересна людям с чисто инженерным складом ума. Этот текст писался в расчёте на тех, кому интересны основания математики, но кто до сих пор не нашёл времени и сил в них разобраться.
            Читать дальше →
          • Что нам стоит Git настроить!

            • Tutorial

            Дарова, хабр! (ничего оригинальнее не придумал)

            Сомневаюсь что эта заметка тянет на полноценный пост, но я все же оставлю ее здесь. О чем же пойдет речь?

            Все мы слышали о Git. Все мы знаем что он — хорош. Но лишь немногие пытаются что-то с ним делать, как-то его протвикерить. Сразу говорю, тут не будет ничего паранормального, только немного работы с файлом .gitconfig. Да-да, именно с тем файлом, который так трепетно пылится у вас в домашней директории.

            Так, мне уже немного надоело писать этот, по сути, бессмысленный вступительный текст, так что давайте уже начнем что-то делать.
            Читать дальше →
          • Тренды фронтэнда. Javascript APIs для мобильных устройств

            Презентация: http://sergey.makoveev.info/2013/01/frontend.js-apis-mobile.presentation/.
            Примеры: http://goo.gl/5jv4i.
            Исходники: http://goo.gl/YYj0R.

            В настоящее время нельзя не заметить общую тенденцию к миграции сервисов и приложений в веб, что подкрепляется появлением множества онлайн-сервисов, которые претендуют называться однозначно можно назвать веб-приложениями. Как следствие, теряют популярность standalone-приложения, функционал которых не предусматривает связи с массовыми веб-сервисами. Таким приложением приходится либо видоизменяться, добавляя в себя функционал для интеграции с внешним миром, либо мигрировать в веб.
            Читать дальше →
            • +26
            • 17,1k
            • 8
          • Touch-web: Swipe

              Этим постом мы продолжаем серию статей на тему разработки веб-интерфейсов для touch-устройств.

              Смартфоны с сенсорными экранами достаточно сильно распространены и стали незаменимыми помощниками многим из нас. Потому нельзя не учитывать их особенности при разработке мобильных веб-интерфейсов.
              Сенсорное управление существенно отличается от привычного управления мышкой.
              Пользователь взаимодействует пальцами с самим экраном. И в зависимости от того, какие движения и сколькими пальцами производит пользователь, интерфейс реагирует по-разному: если быстро коснулся экрана и отпустил палец, то срабатывает клик; если коснулся и провел пальцем по экрану – скролл; если провел двумя пальцами – zoom; и великое множество других вариантов реакции.

              Сегодня речь пойдет о swipe, в простонародье – листалке. Swipe позволяет перелистывать «страницы» привычным движением пальца. О том, как грамотно реализовать swipe, я расскажу на примере блока новостей на главной странице портала Mail.Ru.



              Много подробностей под катом
            • Мобильные браузеры и position:fixed

              CSS-свойство position:fixed в Mobile Safari сносно работает начиная c iOS 5. В Android родной браузер частично понимает это свойство начиная с версии системы 2.1, адекватно — с 2.2, полная поддержка — с 3.0. Подробнее: таблица поддержки position:fixed.

              HTML:
              <div id="topbar">Fixed Title</div>
              <div id="content">
              	<h2>Start</h2>
              	<p>Main content text </p>
              	...
              	<p>Main content text </p>
              	<h2>End</h2>
              </div>
              <div id="bottombar">Fixed footer</div>
              

              CSS:
              #content{
              	padding: 50px 0; /* отбиваем высоту баров, чтобы не перекрывать контент вверху и внизу страницы */
              }
              #topbar,
              #bottombar {
              	position: fixed;
              	left: 0;
              	width:100%;
              	height: 50px; /* фиксируем высоту для простоты */
              	line-height:50px;
              	background:#eee;
              	text-align: center;
              }
              #topbar {top: 0;}
              #bottombar {bottom: 0;}
              
              

              Теперь в современных смартах у нас topbar и bottombar «прибиты» соответственно к верху и к низу окна. Проблема позицонирования при первом скролле в iOS решается мини-Javacript'ом (исправлено):
              window.scrollBy(0, 1);
              

              А как быть со старичками?
            • Сайт для программиста [на Node.js]. Просто. Стильно. Бесплатно

              • Tutorial

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

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

              Если бы я не был веб-разработчиком, мне пришлось бы плакать и грызть кактус. К счастью, я им являюсь, поэтому решил сделать себе сайт сам. Чтобы выкладывать на нём статьи вроде этой, небольшие хобби-проекты, и чтобы было что указать в поле «сайт» профиля на Хабре.

              Если вы тоже хотели бы иметь сайт, который полностью контролируете, на котором всё именно так, как вам хочется, но всё никак руки не доходили разобраться и сделать, то эта статья для вас.

              Некоторые знания HTML и JS вам пригодятся. Опыт работы с Node.js не обязателен.

              Читать дальше →
            • Git & Github глазами очевидца

                imageСлово «Git» среди разработчиков, как правило, вызывает две диаметрально противоположные реакции. Один при его звуке начинает возбужденно делиться историями и опытом. Другой – говорит, что Git – это весьма опасный и сложный в изучении инструмент, вокруг которого в последнее время поднялась незаслуженная шумиха. Так кто же прав? Анализу этого вопроса и была посвящена встреча Git & Github в Киевском офисе EPAM Systems.
                Читать дальше →
              • Оптимизируем производительность JavaScript для V8

                • Перевод
                • Tutorial

                Предисловие


                Дэниел Клиффорд сделал на Google I/O прекрасный доклад, посвященный особенностям оптимизации кода JavaSсript для движка V8. Дэниел призвал нас стремиться к большей скорости, тщательно анализировать отличия между С++ и JavaScript, и писать код, помня о том, как работает интерпретатор. Я собрал в этой статье резюме самых главных моментов выступления Дэниела, и буду обновлять её по мере того, как движок будет меняться.
                Читать дальше →
              • Видеозапись доклада «Вся соль одностраничных приложений» с 404fest

                  Федя Шумов и Арсений Заречнев, фронт-енд разработчики из команды Островка, рассказали о
                  «Всей соли одностраничных приложений» на 404fest в Самаре.

                  Содержание доклада:


                  Читать дальше →
                • Готовим Sublime Text 2 для front-end

                    Ни для одного опытного программиста или верстальщика не секрет, что настроенная под себя среда разработки (не в смысле IDE, а в более общем) — жизненная необходимость. Было время, когда я делал очередную верстку в практически голом Notepad++ на единственном мониторе, поочередно открывая Photoshop, браузер и редактор. Сегодня, в эпоху «автоматизации всего», мне сложно представить, как вообще можно было так работать.

                    Sublime Text 2 — популярный расширяемый кроссплатформенный текстовый редактор, для которого написано множество плагинов если и не на все случаи жизни, то на многие. В этом посте я попытаюсь рассказать как из этого конструктора сложить удобный инструмент front-end разработчика для работы с HTML, CSS и JavaScript.
                    Читать дальше →
                  • Особенности загрузки файлов на HTML5

                    После некоторого, опыта решил написать небольшую статью-шпаргалку о загрузке файлов с использованием возможностей HTML5, а именно File API.

                    Читайте далее:
                    1. Поддержка браузерами.
                    2. Загрузка через Form Data.
                    3. Загрузка через File Reader.

                    Читать дальше →
                  • Понимание ООП в JavaScript [Часть 1]

                    • Перевод
                    • Tutorial
                    — Прототипное наследование — это прекрасно
                    JavaScript — это объектно-ориентированный (ОО) язык, уходящий корнями в язык Self, несмотря на то, что внешне он выглядит как Java. Это обстоятельство делает язык действительно мощным благодаря некоторым приятным особенностям.

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

                    К счастью, в ECMAScript 5 появилось множество вещей, которые позволили поставить язык на правильный путь (некоторые из них раскрыты в этой статье). Также будет рассказано о недостатках дизайна JavaScript и будет произведено небольшое сравнение с классической моделью прототипного ОО (включая его достоинства и недостатки).
                    Читать дальше →
                  • Функциональное программирование на Javascript

                    • Перевод
                    • Tutorial


                    Краткое содержание:

                    Возьмем немного функций высшего порядка, добавим частичное применение функций, приправим fold с map-ом и получим Javascript DSL для работы с DOM.

                    Человеческим языком:
                    Простое и понятное введение в функциональное программирование на чистом и понятном Javascript.

                    В отличие от «Через тернии к Haskell» все разжевано (возможно даже слишком) и разложено по полочкам.

                    Прочтение статьи развоплотит миф о неприменимости ФП в реальной жизни. Вы сможете смотреть на решение одной и той же задачи с разных точек зрения. Прямо как на картинке.

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