• Теория относительности в картинках

    • Tutorial
    В своей статье я хотел бы рассказать о теории относительности. Эта теория не требуется в представлении. С самого своего создания она была окутана ореолом тайны, поскольку полностью подрывает наши привычные представления о пространстве и времени. Все мы в школе учили формулы теории относительности, но мало кто действительно понимал их. И это не удивительно, ведь человеку, чтобы по-настоящему понять какую-то теорию во всей её красоте, полноте и непротиворечивости, не достаточно знать формулы. Нужно иметь какой-то визуальный ориентир, нужна динамика, чтобы было что-то, что можно повертеть в руках. Я решил восполнить этот пробел и написал небольшую программку, в которой можно «повертеть в руках» пространство-время. Мы, как настоящие исследователи, с помощью небольших экспериментов попытаемся выяснить основные свойства этой загадочной материи.
    Под катом много картинок (и ни одной формулы).
    Читать дальше →
  • Голые пятницы #1

    • Tutorial
    голые пятницы

    Всем доброго времени суток. Сегодня мы поговорим о том, как красиво оформить выделенный текст, совладать с отступами в кнопках, прокачать скролл в мобильных браузерах, скрестить цвет текста с цветом границ, а также рассмотрим интересные новые единицы измерения.
    Поехали!
  • Git Wizardry

      1 Введение


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

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

      Читать дальше →
    • Книги о кибербезопасности: 5+ рекомендаций наших экспертов

        Недавно у меня состоялся показательный разговор с Алексеем Малановым, сотрудником «Лаборатории» и опытным исследователем вредоносных программ, о том, может ли, например, сотрудник отдела по связям с общественностью (=не технарь) стать вирусным аналитиком? Ответ был простой и сложный одновременно: основы программирования, архитектура процессоров, особенности операционных систем, сетевые протоколы… В общем, «купи книжку по Ассемблеру и приходи лет через пять».

        А что, если подняться на уровень выше? От анализа конкретных экземпляров вредоносных программ (что само по себе непросто) перейти к комплексному исследованию компьютерных инцидентов? Этим у нас занимается подразделение Global Research and Analysis Team (GReaT). К ним я недавно обратился с похожим вопросом: какие книги они могут порекомендовать другим специалистам по компьютерной безопасности (имея в виду, что азы программирования и прочие базовые вещи уже освоены)? В результате получился список из пяти книг — а на самом деле из десяти :-), — с которым можно ознакомиться под катом.
        Читать дальше →
      • Сети для самых маленьких. Часть девятая. Мультикаст

        • Tutorial

        Наш умозрительный провайдер linkmeup взрослеет и обрастает по-тихоньку всеми услугами обычных операторов связи. Теперь мы доросли до IPTV.
        Отсюда вытекает необходимость настройки мультикастовой маршрутизации и в первую очередь понимание того, что вообще такое мультикаст.
        Это первое отклонение от привычных нам принципов работы IP-сетей. Всё-таки парадигма многоадресной рассылки в корне отличается от тёплого лампового юникаста.
        Можно даже сказать, это в некоторой степени бросает вызов гибкости вашего разума в понимании новых подходов.

        В этой статье сосредоточимся на следующем:




        Читать дальше →
      • Как использовать Томита-парсер в своих проектах. Практический курс

        • Tutorial

        Привет, меня зовут Наталья, я работаю в Яндексе разработчиком в группе извлечения фактов. Весной мы рассказали о том, что такое Томита-парсер и для чего он используется в Яндексе. А уже этой осенью исходники парсера будут выложены в открытый доступ.

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





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

        Читать дальше →
        • +69
        • 41.6k
        • 8
      • Переключаем WiFi в режим точки доступа в Windows

        Так уж получилось, что на работе для получения полноценного интернета без ограничений, мне приходиться использовать нетбук и 3g-модем. Недавно, купив iPod Touch, я очень захотел его подключить к интернету. Если смартфон еще мог вылезти в интернет самостоятельно, то вот с плеером несколько труднее.

        Один из вариантов — это подключение с помощью кабеля синхронизации. Вариант не очень удобный, так как носить с собой постоянно кабель желания совершенно нет, да и iTunes ставить тоже не хочеться. Второй вариант, тот который и описывается в данной статье — это подключение через WiFi. На Хабрахабре уже упоминалась похожая задача и её решение, но для Linux. Наша задача настроить тоже самое под Windows.

        Итак, что мы имеем


        — Нетбук, ASUS 1215B
        — Интернет через USB 3g-модем
        — Плеер и смартфон с наличием WiFi

        Задача


        — Получить на всех устройствах интернет

        Читать дальше →
      • Как работают браузеры: принципы работы современных веб-браузеров

          Просматривая одно из обучающих видео "Школы разработки интерфейсов" Яндекса, наткнулся на ссылку на офигенный труд израильской веб-программистки Тали Гарсиэль (Tali Garsiel) "How browsers work" (Как работают браузеры).

          Она в течение нескольких лет отслеживала всю издаваемую информацию о внутреннем устройстве браузеров, изучала исходный код WebKit и Gecko и, в конце концов, собрала все воедино. Вот что пишет сама Тали:
          Когда на 90% компьютеров был установлен IE, приходилось мириться с тем, что это загадочный «черный ящик», однако теперь, когда более половины пользователей выбирает браузеры с открытым исходным кодом, пришло время разобраться, что скрывается у них внутри, в миллионах строк программного кода на C++...
          Пролистав, я был поражен — отличная работа. Внутреннее устройство браузеров, алгоритмы разбора — все хорошо иллюстрировано, доступно и понятно. И без излишних подробностей, страниц на 30-40. Как раз то, что нужно. Решил — это надо обязательно перевести. Покопался еще немного — оказалось перевод уже как 1,5 года есть!

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

          Под катом содержание перевода, чтобы решить стоит ли читать.
          Читать дальше →
        • URL.js или дружим JavaScript с обработкой ссылок

          image

          Доброго времени суток, уважаемые хабравчане!

          Возникла передо мной сегодня задача генерации GET-параметров и всего URL в целом, на стороне клиента, прям вот щас, без возможности «поговорить» с сервером. Сразу оговорюсь, про этот пост я узнал вот прям перед написанием данной статьи ибо сначала закончил писать, а потом уже прибег к поиску, да и пост тот — не со всем про то же самое, что у меня.

          Итак, к делу.

          Задача и проблемы


          Проблемы — те же что и в посте, который я привел выше:
          • Невозможность использовать window.location для «приготовления» URL;
          • Нельзя работать сразу с несколькими window.location в силу политики безопасности браузеров;
          • Отсутствие известных готовых решений ( да и сейчас, уже апосля, я не нашел подобного кода )

          Задачи которые я поставил перед собой:
          • Удобный синтаксис
          • Возможность как читать части URL так и изменять их
          • Работа с GET-параметрами
          • Кроссбраузерность и универсальность


          Писал я на чистейшем JavaScript, причем без использования prototype.__defineGetter__ или prototype.__defineSetter__ в угоду кроссбраузерности ибо IE < 9 такого не умеет. Более подробно про getters/setters написано в этом посте.

          Для тех кому интересно — сядем разберем, а кому надо готовое решение — милости прошу в конец поста, ссылки на скачивание — там.

          Приступим! Раньше сядем — раньше выйдем.
          Читать дальше →
        • Почему вы никогда не должны использовать MongoDB

          • Translation
          Дисклеймер от автора (автор — девушка): Я не разрабатываю движки баз данных. Я создаю веб-приложения. Я участвую в 4-6 разных проектах каждый год, то есть создаю много веб-приложений. Я вижу много приложений с различными требованиями и различными потребностями хранения данных. Я разворачивала большинство хранилищ, о которых вы слышали, и несколько, о которых даже не подозреваете.

          Несколько раз я делала неправильный выбор СУБД. Эта история об одном таком выборе — почему мы сделали такой выбор, как бы узнали что выбор был неверен и как мы с этим боролись.Это все произошло на проекте с открытым исходным кодом, называемым Diaspora.
          Читать дальше →
        • С большой силой приходит и большая ответственность — техника безопасности в AngularJS

            image

            Несомненно, ангуляр даёт вам силу. Но пользоваться ей нужно с умом. Я постарался сформулировать три простых правила, которые я много раз нарушал и страдал от этого.
            Читать дальше →
          • Пишем простую систему рекомендаций на примере Хабра


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

              1. Что такое рекомендательная система
              2. Интуиция
              3. Теория
              4. Реализация: код и данные
              5. Сервис Хабра-рекомендаций
              6. Хабра-аналитика

              Читать дальше →
            • Почему пришло время поддерживать только Android 4.0 и выше?

              • Translation
              От переводчика: эта статья пылится у меня в Pocket уже довольно давно (с конца 2013). Прошло уже больше полугода, так что мнение автора еще более логично.
              Я надеялся, что перевод сделает кто-то другой, но, видимо, придется мне.
              Я не супер-крутой знаток английского, поэтому обо всех шероховатостях просьба писать в личку — исправим.


              Разрабатывая под Android, приходится иметь дело со страшной вещью, начинающейся на «ф», — фрагментацией.

              Это то, о чем не брезгуют напомнить в технических блогах. Это слово, которое отпугивает некоторых разработчиков от платформы. Это то, что любит упоминать Apple на своих презентациях, дабы продемонстрироватьать превосходство своей ОС.
              Читать дальше →
            • 1000+ часов видео по Java на русском

              • Tutorial
              Добрый день.
              Меня зовут Головач Иван, я руковожу небольшой образовательной компанией и преподаю сам:
              1. Java Core
              2. Junior Java Developer: Servlet API, JDBC, Maven, JUnit, Mockito, Log4J, основы Spring/SpringMVC, основы JPA/Hibernate, шаблоны/архитектуры MVC/IoC/DAO.
              3. Multicore programming in Java.


              Также я веду курс «Scala for Java Developers» на платформе для онлайн-образования udemy.com (аналог Coursera/EdX).

              В следствии этого у меня скопилось значительно количество ссылок на видео на русском языке по Java как моего авторства, так и моих коллег.

              (GolovachCourses.com)


              Здесь собраны несколько вариантов записи моего курса Java Core.
              Модуль #1 (Procedural Java):
              Набор июль 2013: #1, #2, #3, #4
              Набор апрель 2013: #1, #2, #3, #4
              Набор февраль 2013: #1, #2, #3, #4
              Набор январь 2013: #1, #2, #3, #4
              Набор октябрь 2012: #1, #2, #3, #4.
              Читать дальше →
              • +102
              • 1200k
              • 38
            • 12 малоизвестных возможностей CSS

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

              В процессе работы с CSS я постоянно нахожу что-нибудь интересненькое, так что решил написать пост и поделиться своими знаниями с вами. Правда, учитывайте, что не всё, о чем будет рассказано, имеет непосредственное практическое значение, но, на всякий случай, в хозяйстве пригодится.
              Читать дальше →
            • Пишем эмулятор приставки ч2, или немного о CHIP16

                В предыдущей своей небольшой заметке я описывал принцип построения эмулятора старой игровой платформы CHIP-8 из далеких 70-х. Здесь же речь пойдет о своего рода наследнице – CHIP16. Итак, что же такое CHIP16?

                CHIP16 – “вымышленная” игровая приставка, которой никогда не существовало в “железе”. Всю спецификацию на нее разрабатывали (-ют) энтузиасты с одного англоязычного форума. Смысл в том, чтобы максимально упростить написание эмулятора, иметь хорошую документацию и поддержку комьюнити. Тем самым позволяя даже новичкам в программировании создать полностью рабочий эмулятор с нуля на фактически любом языке программирования. Сразу оговорюсь, что здесь я не буду приводить примеры кода эмулятора, цель – просто рассказать об этой платформе. И да, конечно все Just for fun!

                Читать дальше →
              • MongoDB от теории к практике. Руководство по установке кластера mongoDB

                     Доброго времени суток, уважаемые читатели. В этом посте я хотел бы описать несколько примеров развертки mongoDB, отличия между ними, принципы их работы. Однако больше всего хотелось бы поделиться с вами практическом опытом шардирования mongoDB. Если бы этот пост имел план, он бы выглядел скорее всего так:

                1. Вступление. Кратко о масштабировании
                2. Некоторые примеры развертки mongoDB и их описание
                3. Шардинг mongoDB

                    Пункты 1 и 2 — теоретические, а номер 3 претендует на практическое руководство по поднятию кластера mongoDB и больше всего подойдет тем, кто столкнулся с этим в первый раз.
                Читать дальше →
              • Введение в D3

                • Tutorial

                D3.js (или просто D3) это JavaScript-библиотека для обработки и визуализации данных. Она предоставляет удобные утилиты для обработки и загрузки массивов данных и создания DOM-элементов. Эта заметка описывает работу с основными методами библиотеки, она подойдёт для изучения основ библиотеки и погружения в её логику и возможности.

                Для понимания статьи пригодятся знания JS, HTML и CSS.

                Читать дальше →
                • +55
                • 133k
                • 7
              • Полезное для Android разработчика из Github

                  Доброго времени суток.


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

                  Зайти на огонек!
                  • +41
                  • 21k
                  • 7
                • Видео-курс «Введение в логику» на русском языке

                    Здравствуй, Хабр!

                    Представляю вам курс «Введение в логику», недавно прошедший на Хекслете. Он основан на учебнике по математике Романа Добровенского. Курс состоит из шести лекций общей продолжительностью 2 часа 20 минут.



                    Первая лекция. Базовые понятия логики, логические операции, наша первая теорема и закон Де Моргана.


                    Читать дальше →
                    • +60
                    • 58.1k
                    • 8