• Да, но кто сказал, что они купят это?

    • Перевод
    Продолжение перевода серии статей «5 уроков просмотра стартапов»,
    прошлая статья Настоящие нечестные конкурентные преимущества


    На сотнях стартап питчей в Capital Factory, не нашелся и десяток людей, которые были бы готовы сказать «если вы создадите этот продукт, я дам вам X долларов».



    Задумайся над этим: сотни людей готовы уволиться с постоянной работы, потратить свои сбережения, рискнуть личной репутацией, трудиться 70 часов в неделю, пережить такой же стресс, как и рождение ребенка (поверьте мне, я испытал рождение и ребенка, и стартапов)… и все это при том, что нет жалкого десятка людей, действительно готовых заплатить за то, что предлагают стартаперы.

    Недальновидно, не правда ли?
    Читать дальше →
  • 11 важных вещей, которые нужно знать про DevOps — часть первая

    • Перевод

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


    В 2009 года за рубежом возникло движение, которое назвало себя DevOps. На первый взгляд это разработчики с навыками сисадминов и сисадмины с навыками разработчиков. Но на самом деле это отнюдь не так. Данное подход имеет четкие цели, философию, инструменты и методы, которые только некоторые русскоязычные компании начинают использовать. Мне кажется, что данный подход у нас незаслуженно игнорируется и мне хотелось бы рассказать об 11 вещах, которые нужно знать о DevOps, в частности:
    • что такое DevOps
    • каковы его ценности
    • как он внедряется
    • кому он приносит пользу

    Надеюсь, этот текст вам понравится.

    Читать дальше →
  • Яндекс.Диск как файловая система


      Недавно Яндекс анонсировал свой новый сервис, подобный DropBox'у. Многие его сразу же начали поливать из ведра, хотя, я думаю, зря.

      Один из плюсов лично для меня, линуксоида — не нужно устанавливать дополнительные приложения, как в случае с DropBox'ом. Сервис можно подключить через файловый менеджер Nautilus, используя WebDAV. Что я, собственно, сразу же и сделал.

      Однако, я не стал на этом ограничиваться, ведь гуёвый доступ — не совсем хорошо, консольки никто не отменял.

      Подключим Яндекс.Диск как файловую систему
    • Time Machine: бекапим OS X Lion на Ubuntu 12.04 LTS сервер




      Если кто не знает, Time Machine — это такой замечательный бэкап-сервис из коробки для Apple OS X, тут и тут можно почитать поподробнее. Если у вас есть мак, и вы не пользуетесь «машиной времени», то это совершенно напрасно. Time Machine делает постоянные дифференциальные бэкапы, поэтому она удобна даже в случае прекрасной жизни ваших HDD / SSD. Можно в любой момент открутить назад историю и восстановить случайно удаленный файл, или, что еще важнее, предыдущую версию измененного файла.

      Предполагается, что пользователи будут использовать либо обычный жесткий диск, либо специальный сетевой девайс Time Capsule. Традиционный внешний жесткий диск — решение для очень организованных людей, которые регулярно (хотя бы ежедневно) будут его подключать для автоматического бэкапа, иначе польза от тайм машины будет весьма ограничена (хотя прошлогодний бэкап все же лучше, чем совсем ничего). С тайм-капсулой будет гораздо удобнее и надежнее. Кроме функции бэкапа, она может выполнять еще и функцию сетевой шары, раздачи Wi-Fi (фактически Time Capsule — это Wi-Fi роутер с HDD). Но устройство стоит денег, и оно не такое универсальное. Мне захотелось прикрутить на свой сервер работающий на Ubuntu возможность делать бэкапы тайм-машиной. И это не так сложно, о чем и будет эта заметка.

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

        Чем дальше в лес, тем толще партизаны. Нет, не так. Чем старше веб, тем больше джаваскрипта

        Клиентского кода в веб-приложениях с каждым годом действительно становится все больше. Подчас это десятки файлов с сотнями функций. И что делать, когда нам нужно поменять код, выполняемый по событию (например, клик по ссылке). Как его найти? Задавшись решением этой задачи, я придумал несколько разных вариантов. Каждый из них имеет свои плюсы и минусы. И в конце статьи я предлагаю метод, который мне кажется оптимальным.
        Читать дальше →
      • Простой и эффективный метод отразить http DDoS от 50мбит с помощью nginx и iptables

          Здравствуй, Хабр!
          Предлагаю твоему вниманию простой и в то же время эффективный метод борьбы с http DDoS. На основе сервера Xeon 2.5GHz / 4Gb RAM / SAS можно отражать атаку примерно до 300 Мбит/с (значение получено методом экстраполяции).

          Способ реализация

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

          Область применения

          Борьба с Http DDoS на выделенном сервере или ВПС. Максимальная возможная мощность сдерживания DDoS атаки ограничивается физическими возможностями сервера и пропускной способностью канала.

          SEO под DDoS-ом

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

          Стоимость и эффективность

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

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

            Вступление окончено, переходим к советам!
            Читать дальше →
          • Rails custom Scaffolding


              Наверное каждый в начале работы с ROR был впечатлен возможностью Scaffolding'а, который позволяет одной командой создавать migrations, controllers, models и views.

              Но что делать если в своем проекте вы используете не стандартные Rails утилиты: erb, Test::Unit, fixturies, а сторонние инструменты: Haml, Rspec, Cucumber, Factory Girl и более того, хотите добавить собственные шаблоны?

              Интересно? GOTO next line.

              Исходные данные:
              Ruby on Rails; Rspec; will-paginate; Haml; Factory-girl

              Задача:
              % rails generate scaffold post post:string
              Генерирует:
              1. contoller's с поддержкой will_paginate, русскоязычными сообщениями
              2. model's с поддержкой will_paginate
              3. view's с заданным нами содержимым и в формате haml
              4. Rspec тесты, вместо Test::Unit
              5. Factory Girl factories вместо стандартных fixtures

              Читать дальше →
            • Использование Deferred объектов в jQuery 1.5

              • Перевод
              Deferred объекты появились в jQuery 1.5. Они позволяют отделить логику, которая зависит от результатов выполнения действия от самого действия. Для JavaScript Deferred объекты не новы, они уже были в MochiKit и Dojo, но с изменениями логики jQuery ajax от Julian Aubourg, внедрение Deferred объектов было неминуемо. С Deferred объектами несколько callback могут быть связаны с результатом задачи и любые из них могут быть привязаны к действию даже после начала его выполнения. Выполняемая задача может быть асинхронна, но не обязательно.

              Deferred объекты теперь встроены в $.ajax() таким образом вы будете получать их автоматически. Обработчики теперь могут быть связаны с результатом следующим образом:
              // $.get, ajax запрос, он асинхронный по умолчанию
              var req = $.get('foo.htm')
                 .success(function( response ){
                    // что-нибудь делаем с ответом
                 })
                 .error(function(){
                    // делаем что-нибудь если запрос провалился
                 });
               
              // это выполнится перед тем как $.get() будет выполнено
              doSomethingAwesome();
               
              // Делаем что-то ещё перед завершением запроса
              req.success(function( response ){
                 // делаем  что-то ещё с ответом
                 // он будет выполнен когда запрос завершится, а если запрос завершен, то будет вызван немедленно
                 // если запрос уже был выполнен
              });

              Читать дальше →
            • Правильный захват контекста в Javascript

                Довольно часто во многих статьях я вижу, как люди захватывают контекст this для использования в анонимной функции и удивляюсь — то, что уже стало стандартом — просто ужасная практика, которая противоречит всем канонам программирования. Вам знакома такая запись?
                var self this;
                Может вам тоже стоит переосмыслить этот аспект?
                Читать дальше →