• Легализация дохода фрилансера в Украине. Часть 1: государственная регистрация бизнеса

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

    Я работаю предпринимателем — фрилансером с 2007 года и успел накопить значительный опыт получения денег из-за рубежа как через онлайн-биржи вроде oDesk и Elance, так и работая с заказчиками напрямую. В свое время я был инициатором некоторых изменений на oDesk, помогающих упростить легальное получение денег на свой предпринимательский счет. Сегодня я руковожу разработкой в нашем украинском стартапе Taxer.ua, от чего опыта во взаимодействии с государством накопилось еще больше.

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

    1. Государственная регистрация предпринимателя: выбор системы налогообложения, подача заявления.
    2. Составление ВЭД договора, получение денег от клиентов: биржи oDesk, Elance и напрямую.
    3. Ведение ВЭД бухгалтерии: акты, счета, книга доходов и курсовая разница.
    4. Уплата налогов и отправка отчетности в контролирующие органы: сдавать ли валютную декларацию.

    Читать дальше →
  • Интерактивная обучалка ветвлению в Git

      Некий Питер Коттл (Peter Cottle) сделал интерактивную обучалку по основам ветвления в Git. Есть несколько простых обучающих уровней, где нужно сделать пару коммитов, а затем merge или rebase, есть и сложные уровни, над которыми придется подумать. Можно также сохранять уровни и делиться ими с друзьями.

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

      image
      Читать дальше →
      • +150
      • 74,5k
      • 38
    • Как работает оператор delete

      Пару недель назад мне попалась на глаза книга Стояна Стефанова (Stoyan Stefanov) Объектно-ориентированный Javascript. У книги был настолько высокий рейтинг на Амазоне (12 обзоров на 5 звезд), что я решил просмотреть, нет ли в ней чего-нибудь что можно было бы порекомендовать другим. Мне очень понравилось, как все описывается в разделе про функции, с которого я начал; поток примеров выстроен таким приятным и прогрессивным образом, что даже начинающие очень легко освоят его. Однако практически сразу я наткнулся на интересное заблуждение, описываемое на протяжении целой главы — удаление функций. Есть и другие ошибки (такие как разница между объявлением функции и оператором function), но сейчас мы не будем их обсуждать.

      Книга утверждает, что «функции работают как обычные переменные — их можно скопировать в другую переменную или даже удалить». И приводится следующий пример:

      >>> var sum = function(a, b) {return a + b;}
      >>> var add = sum;
      >>> delete sum
      true
      >>> typeof sum;
      "undefined"

      Если не обращать внимания на пару отсутствующих точек с запятой, что еще не так с этим куском кода? Конечно, проблема в том, что удаление переменной sum не должно было пройти успешно; выражение с оператором delete не должно разрешаться в true и typeof sum не должно вернуть «undefined». Все потому, что в яваскрипте нельзя удалять переменные. По крайней мере, те, которые определены таким образом.

      Так что же происходит в этом примере? Опечатка? Диверсия? Скорее всего нет. На самом деле весь этот отрывок кода скопирован из Файрбага, который Стоян, должно быть, использовал для тестирования по-быстрому. Почти похоже что у Файрбага какие-то свои правила по поводу удаления. Это Файрбаг сбил Стояна с толку! Так что же на самом деле здесь происходит?
      Узнать скорей!
    • Базовые рекомендации для повышения безопасности *nix веб-сервера

      Вдохновившись статьей о поиске следов взлома, решил написать статью о предупреждении взлома и базовых шагах для сведения возможности взлома сервера к минимуму.
      Все шаги крайне важны, и невозможно выделить самый-самый важный, либо второстепенный.
      Данная статья не является пошаговой инструкцией, а лишь списком рекомендуемых шагов.
      Читать дальше →
    • Web – P2P — Web

        Доброе время суток, дорогой %username%.

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

        Под катом общие размышления, обзор текущего состояния проекта, перспективы и, конечно, немного трафика.

        Если интересно — welcome под кат.
        Читать дальше →
      • Hg Init: Часть 6. Архитектура репозиториев

        • Перевод
        Это шестая, заключительная часть из серии Hg Init: Учебное пособие по Mercurial от Джоэля Спольски (Joel Spolsky). Предыдущие части:



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

        Часть 6. Архитектура репозиториев



        Наш рецепт становится все лучше:

        Читать дальше →
      • Hg Init: Часть 4. Исправляем ошибки

        • Перевод
        Это четвертая часть из серии Hg Init: Учебное пособие по Mercurial от Джоэля Спольски (Joel Spolsky). Предыдущие части:


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

        Часть 4. Исправляем ошибки




        Mercurial позволяет свободно экспериментировать. Представьте, что во время работы вы что-то не то сделали в редакторе, и случилось нечто ужасное:

        Читать дальше →
      • Основы Linux от основателя Gentoo. Часть 3 (1/4): Документация

        • Перевод
        Первый отрывок третьей части серии руководств для новичков. Практически всё, что нужно знать, чтобы найти справочную информацию по вашей системе. Короче, RTFM и не задавайте глупых вопросов.



        Навигация по основам Linux от основателя Gentoo:

        Часть I: 1, 2, 3, 4

        Часть II: 1, 2, 3, 4, 5

        Часть III
        1. Документация (вступление)
        2. Модель прав доступа
        3. Управление аккаунтами
        4. Настройка окружения (итоги и ссылки)


        Читать дальше →
      • Повышение производительности netfilter, использование ipset

          iptables — интерфейс к файрволу Linux (netfilter). При большом количестве правил iptables нагрузка может быть достаточно высокой и создавать проблемы. В этой заметке я постараюсь описать, что влияет на производительность iptables и как ее повысить.
          Читать дальше →
        • Большие потоки трафика и управление прерываниями в Linux

            В этой заметке я опишу методы увеличения производительности линуксового маршрутизатора. Для меня эта тема стала актуальна, когда проходящий сетевой трафик через один линуксовый маршрутизатор стал достаточно высоким (>150 Мбит/с, > 50 Kpps). Маршрутизатор помимо роутинга еще занимается шейпированием и выступает в качестве файрволла.
            Читать дальше →
          • Prelink и Preload для ускорения запуска программ в Linux

              В этой заметке я опишу две утилиты, которые помогут ускорить работу системы Linux, а конкретно — запуск приложений: prelink и preload. Prelink оптимизирует исполняемые файлы для быстрого связывания с библиотеками. Preload кэширует часто используемые библиотеки и программы.
              Подробности под катом.
              Читать дальше →