• От Facebook HackerCup 2011 до стажировки в Facebook

    Начало

    Всем привет! Часто, пробегая утром глазами заголовки на Хабре, я вижу статьи о том, как кто-то уехал учиться зарубеж. И каждый раз я думаю, что пора уже перестать лениться и описать свою историю о том, как я уехал стажироваться в Facebook.
    Читать дальше →
  • 10 лучших stop-motion видеороликов на YouTube

      imageСоздание stop-motion видеороликов — труд зачастую бескорыстный, но достаточно кропотливый. Ниже представлена коллекция из десяти видеороликов, созданных людьми, которые были по-настоящему вовлечены в свою работу.

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

      Итак, 10 невероятных покадровых видеороликов:

      1. Stop Motion With Wolf And Pig



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

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

        • Translation
        image

        Вы наверняка интуитивно догадывались, что приложения, выполняемые на Intel x86 компьютерах, ограничены в своих возможностях, и что некоторые действия могут быть выполнены исключительно операционной системой. Но знаете ли вы, как это действительно работает? В данном посте рассмотрим уровни привилегий x86 — механизм, в котором ОС и процессор действуют сообща для того, чтобы ограничить то, что могут сделать user mode приложения.

        Читать дальше →
        • +22
        • 38k
        • 5
      • Как мы создали облачную АТС Sipuni.com

          Для меня настоящим чудом было появление Skype. Когда я начал им пользоваться в 2004 году, он еще показывал сколько абонентов в сети — их было около 600 тысяч. Думаю, из них в России было не больше 1%. По крайней мере из моих друзей-знакомых скайпа не было ни у кого — серьезное препятствие для свободного общения.

          Читать дальше →
        • Hyperboria: Маршрутизация


            Продолжая цикл статей об Hyperboria, в этой статье будут рассмотрены следующие аспекты:
            1) Количество IP адресов в Hyperboria, как они генерируются.
            2) Коллизии и как с ними бороться.
            3) Почему используется служебный (приватный) диапазон IPv6 адресов.
            4) Роутеры и Hyperboria.
            5) Маршруты и DHT.
            6) Защищенность сети.
            Читать дальше →
          • Оптимизация MySQL запросов с помощью Neor Profile SQL

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

            image

            Читать дальше →
          • Нужны ли в JavaScript классы?

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

                Робот не может причинить вред человеку
                или своим бездействием допустить,
                чтобы человеку был причинён вред.
                Айзек Азимов

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

                Роботестер сам ищет ошибки

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

                Нам такая идея очень понравилась, и мы начали её реализовывать.
                Читать дальше →
              • Инспектор UIKit в реальном времени (Reveal App)



                  Программу сравнивают с Web Inspector для WebKit, если это сравнение вам о чём-нибудь говорит. Если без сравнения, то это инструмент, который позволяет вживую исследовать всю иерархию объектов UIKit в вашем приложении и менять их аттрибуты.
                  Читать дальше →
                  • +16
                  • 9.8k
                  • 5
                • Getters & Setters в Javascript

                    Много людей знают, что такое getter'ы и setter'ы во многих языках программирования. Есть эти чудесные штуки и в JavaScript, хоть узнал я об этом совсем недавно (темень я необразованная). Речь пойдёт не только и не столько про методы getSomeProperty()/setSomeProperty(...), а про более интересную реализацию — псевдо-аттрибуты, при изменении которых будут вызываться функции-обработчики.

                    Дальше...
                  • Ежедневная работа с Git

                    • Tutorial
                    Я совсем не долго изучаю и использую git практически везде, где только можно. Однако, за это время я успел многому научиться и хочу поделиться своим опытом с сообществом.

                    Я постараюсь донести основные идеи, показать как эта VCS помогает разрабатывать проект. Надеюсь, что после прочтения вы сможете ответить на вопросы:
                    • можно ли git «подстроить» под тот процесс разработки, который мне нужен?
                    • будет ли менеджер и заказчик удовлетворён этим процессом?
                    • будет ли легко работать разработчикам?
                    • смогут ли новички быстро включиться в процесс?
                    • можно ли процесс относительно легко и быстро изменить?


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

                    Далее очень много букв случайным образом превратились в пост.
                  • Логическая организация кэш-памяти процессора

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

                    Кэш память процессора используется для уменьшения времени простоя процессора при обращении к RAM.

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

                    Логически кэш-память представляет собой набор кэш-линий. Каждая кэш-линия хранит блок данных определенного размера и дополнительную информацию. Под размером кэш-линии понимают обычно размер блока данных, который в ней хранится. Для архитектуры x86 размер кэш линии составляет 64 байта.



                    Так вот суть кэширования состоит в разбиении RAM на кэш-линии и отображении их на кэш-линии кэш-памяти. Возможно несколько вариантов такого отображения.
                    Читать дальше →
                  • Миллион PPS в секунду — связанность и балансировка


                    На последней конференции РИТ++ мне посчастливилось стать впервые докладчиком конференции такого масштаба и такой значимости. В этой статье я не просто хочу пересказать всё, о чём я докладывал. Выступать впервые перед такой большой аудиторией для меня было непривычно и я половину забыл рассказать, нервничал немного. Речь пойдет о создании с нуля собственной отказоустойчивой структуры для веб-проектов. Мало кому из системных администраторов дается возможность с нуля запустить в production крупный проект. Мне повезло.

                    Как я уже написал, я не смог рассказать всё, что планировал со сцены, в этой статье я восполню эти пробелы, да и для того, кто не смог там присутствовать — это будет приятно, видео с конференции так и не дали бесплатно всем. Да и стать пользователем Хабра я хотел давно, вот только не было времени. Майские праздники дали время и силы. Статья будет не столько технической с кучей конфигов и графиков — статья будет принципиальная, все пробелы мелких технических вопросов можно будет восполнить в комментариях.
                    Читать дальше →
                  • Переход на MySQL 5.6, а стоит ли?

                      После выхода новой версии MySQL в начале этого года, многие задумались о том стоит ли на неё переходить с более старых версий. Чтобы ответить на этот вопрос для себя, вначале необходимо понять, а что именно даст этот переход. В этой статье я постараюсь осветить новые, важные для меня, фичи, которые были включены в дистрибутив новой версии, анализ их производительности и работоспособность новой версии, а так же необходимость что-то менять в коде в связи в переписанным оптимизатором. Так как объем изменений действительно очень велик, для каждого пункта дам ссылку на оригинальную статью по тестирования производительности и исключу из описания воду.
                      Читать дальше →
                    • Лёгкий сайт или как посадить браузер на диету

                      • Translation

                      А что если объединить профессионалов, работавших над крупными web проектами, чтобы создать исчерпывающее руководство по оптимизации front-end разработки?
                      И получить в результате не скучную инструкцию, а что то поинтереснее? А если позвать Briza Bueno (Americanas.com), Davidson Fellipe (Globo.com), Giovanni Keppelen (ex-Peixe Urbano), Jaydson Gomes (Terra), Marcel Duran (Twitter), Mike Taylor (Opera), Renato Mangini (Google), и Sérgio Lopes (Caelum) чтобы собрать лучшие практики?

                      Именно это мы и сделали! Мы научим вас создавать быстрые сайты.

                      Zeno Rocha, руководитель проекта.


                      Читать дальше →
                    • Objective-C Runtime. Теория и практическое применение

                      В данном посте я хочу обратиться к теме, о которой многие начинающие iPhone-разработчики часто имеют смутное представление: Objective-C Runtime. Многие знают, что он существует, но каковы его возможности и как его использовать на практике?
                      Попробуем разобраться в базовых функциях этой библиотеки. Материал основан на лекциях, которые мы в Coalla используем для обучения сотрудников.
                      Читать дальше →
                      • +20
                      • 54.8k
                      • 8
                    • Оптимизация работы веб-студии. Применение теории ограничений в производстве сайтов



                        В статье «12 тыс рублей за сайт. Есть ли бизнес за МКАДом?» я писал про наш подход к разработке сайтов на базе разработанной внутри компании технологии. На момент написания той статьи, мы выпускали «под ключ» 24 сайта в месяц. Это больше чем один сайт в день силами команды из 8 человек.

                        После рассказа на хабре о нашей технологии количество заявок на разработку сайтов выросло в несколько раз. Только за март 2012 было выставлено около 60-ти коммерческих предложений и, большая часть из них превращалась в договора.

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



                          Говоря о шаблонных сайтах, мы нередко слышим, что такие проекты не живут дольше нескольких месяцев. Потенциальные клиенты, услышав слово «шаблонный», не хотят продолжать разговор и делают обиженные лица. Студии, которые делают «шаблонные» решения – часто лишены должного уважения в профессиональном сообществе. И, наконец, сайты, которые дешевле 20 000 руб часто называют, простите, «говносайтами». Вы тоже так думаете? Давайте разберемся насколько это действительно так и восстановим мировой баланс (если он существует).
                          Читать дальше →
                        • 12 000 рублей за сайт. Есть ли бизнес за МКАДом?

                            Сегодня мы с уверенностью можем сказать, что отказались от разработки сложных и дорогих интернет-проектов в пользу бюджетных, простых решений за 12 000 рублей. Вместо одного недовольного клиента, мы получаем десять довольных, а сам бизнес стал стабильным, рентабельным и, главное, прогнозируемым и предсказуемым. Я давно обещал рассказать, как нам это удается. В декабре мы перешагнули планку «21 сайт в месяц», и готовы поделиться своими секретами.
                            Читать дальше →