• Как фрилансеру открыть фирму в Латвии и какие преимущества это дает

    • Tutorial

    1. Введение


    Всем привет, меня зовут Владислав, я из России, и я фрилансер-программист. Сейчас на Хабре очень популярная тема — юридические и налоговые вопросы при работе с Upwork, как получать и декларировать плату от зарубежных заказчиков, и так далее.



    Я тоже довольно долго изучал эти вопросы. Российское законодательство по этим вопросам сильно зарегулировано, и все эти законы и правила причиняют массу проблем фрилансерам, работающим на зарубежный рынок. В итоге я принял решение перевести свой «бизнес» в другую юрисдикцию. Изучив все возможные варианты, я выбрал такой путь — зарегистрировать фирму ООО в Латвии, и принимать платежи от заказчиков на эту фирму. То есть просто переместить свой бизнес из России в Латвию.

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

      image

      Привет, Хабр. Прошло почти 2 года после моего последнего поста. Очень рад, что он оказался для многих полезным. За эти 2 года мы сделали очень многое. И мне хотелось бы поделиться опытом и своими впечатлениями.

      С 20 заведений-клиентов из одной страны мы выросли почти до 4 000 из 12 стран. Наша команда выросла в 5 раз. Открыли офис в Москве и Варшаве. Выпустили приложение, помимо iOs и Web, еще на Android и Windows. Значительно увеличили функционал. Перевели Poster на 5 языков. За последний квартал приняли участие в 3-х международных выставках. Тесно дружим с такими компаниями как Epson, Microsoft, Intel. За нами пристально следят несколько крупных инвесторов. Европейская компания предложила нам поглощение.

      На первый взгляд может показаться, что все просто и безоблачно, но уверяю это не так. Самое интересное и опасное только предстоит. По сути мы прошли только первый этап — этап проверки идеи и построения первой версии продукта. Дальше предстоит самый сложный этап — этап становления, когда происходит внутренняя оптимизация и реструктуризация компании. Именно об этом я и хочу рассказать.
      Читать дальше →
    • Прокачка TinyMCE 4

      Здравствуйте, меня зовут Константин, я работаю front-end-разработчиком на информационно-развлекательном портале, основную долю контента которого составляют новости и статьи. И, конечно же, нам было крайне важно организовать удобную работу с порталом для наших редакторов. О том, каких успехов мы добились на данном поприще, и будет эта статья.
      Читать дальше →
      • +31
      • 30k
      • 5
    • Как мы готовим React, Require и Backbone

      Как следует из официальной документации, React.js — V из MVC, и, как правило, вместе с ним применяются другие решения, в данном случае — Backbone.js и Require.js. А еще Jasmine, Karma и Grunt. Сегодня я поделюсь наброском проекта с применением этих инструментов.

      Ссылка для нетерпеливых.

      Хотелки


      • Прозрачная структура проекта;
      • Автоматизация всей рутинной работы;
      • Автоматизация тестирования;
      • Модульность;
      • Повторное использования кода;
      • Производительность.

      Интересно что из этого получилось?
    • Проблема инициализации объектов в ООП приложениях на PHP. Поиск решения при помощи шаблонов Registry, Factory Method, Service Locator и Dependency Injection

        Так уж повелось, что программисты закрепляют удачные решения в виде шаблонов проектирования. По шаблонам существует множество литературы. Классикой безусловно считается книга Банды четырех «Design Patterns» by Erich Gamma, Richard Helm, Ralph Johnson and John Vlissides" и еще, пожалуй, «Patterns of Enterprise Application Architecture» by Martin Fowler. Лучшее из того, что я читал с примерами на PHP – это «PHP Objects, Patterns and Practice» by Matt Zandstra. Так уж получилось, что вся эта литература достаточно сложна для людей, которые только начали осваивать ООП. Поэтому у меня появилась идея изложить некоторые паттерны, которые я считаю наиболее полезными, в сильно упрощенном виде. Другими словами, эта статья – моя первая попытка интерпретировать шаблоны проектирования в KISS стиле.
        Сегодня речь пойдет о том, какие проблемы могут возникнуть с инициализацией объектов в ООП приложении и о том, как можно использовать некоторые популярные шаблоны проектирования для решения этих проблем.
        Читать дальше.
      • Паттерны и антипаттерны Chef

        • Перевод

        Предисловие от переводчика


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

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

        Статья будет полезна как для видавших виды «поваров», так и для новичков.
        Читать дальше →
      • Быстрая морфология или файлы против MySQL

          image
          Входе одного проекта мне пришлось создать сверхбыструю русскую морфологию. Около 50.000 слов в секунду на довольно слабом ноутбуке, что всего в 2-3 раза медленнее чем стемминг (обрезка окончаний по правилам), но значительно его точнее. Это данные по обычному диску, на SSD или виртуальном диске поиск происходит значительно быстрее.

          Первоначальная версия была на MySQL, но перевод ее на файлы мне удалось добиться стократного увеличения производительности. О том когда и почему файлы быстрее MySQL я и расскажу в статье.

          Читать дальше →
        • Живой Debian

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

          Представьте ситуацию: у вас есть хорошо настроенная и отлаженная система под управлением Debian. В какой-то момент вы хотите сделать так, чтобы эта система установленная на HDD начала загружаться с флешки или с CD-диска и работать в режиме ReadOnly. Типичное применение подобного решения это различные уличные киоски или тонкие клиенты, состояние которых сбрасывается в исходное при каждой перезагрузке.

          Сегодня я хочу рассказать о том, как добиться подобного результата, но сначала немного теории.
          Как известно, операционная система Linux Debian будучи установленной на HDD состоит из 4 достаточно независимых компонентов, каждый из которых можно подобрать или настроить по своему вкусу, а именно:

          1. Загрузчик — то, что отрабатывает после BIOS и загружает Debian. По умолчанию используется «GRUB», но можно использовать любой другой. Мы будем использовать Syslinux, т.к. умеет грузить ОС с флешки, CD-диска и по сети.
          2. Kernel или «ядро» — собственно центральная часть ОС, вокруг которой все крутится. Будем использовать то, что идет в составе дистрибутива.
          3. initrd — промежуточная файловая система, которая помогает ядру найти RootFS. Требует небольшой модификации, к счастью не ручной.
          4. RootFS — корневая ФС. Вот ее то нам и предстоит преобразовать так, что бы ОС могла грузиться в режиме RO.
          Читать дальше →
        • Анатомия Ember.js (часть первая, теоретическая)

          image Ember.js сложный в обучении. Хотя даже не так. Концепты Ember.js сложны в освоении и понимании. Мне кажется, что любой курс обучения Ember.js должен начинаться с этих слов.

          Я разработчик, работающий с Ruby on Rails (до этого я программировал в .NET и Python). Для меня было довольно проблематично понять магию, заставляющую Ember.js работать. Иногда я общаюсь с другими начинающими разработчиками, вставшими (или пытающимися встать) на путь Ember.js — все их проблемы начинаются из-за того, что они не понимают, как устроен данный фреймворк.

          Да, с одной стороны есть официальная документация в которой детально описаны все аспекты данного фреймворка. Но ей не хватает концепции; для начинающего разработчика это просто осколки информации разбросанные случайным способом. Из документации, например, можно узнать что у нас есть в арсенале контроллеры, модели и виды (controller, model, view). Но для того что-бы узнать за что они отвечают и как работают начинающему разработчику предлагают сначала наступить на грабли пару десятков раз. Плюс в нагрузку к контроллерам, моделям и видам Ember.js нам дает целый взвод разношерстых объектов типа компонентов, шаблонов, маршрутизатора и путей (component, template, router, route).
          Читать дальше →
        • Использование EXPLAIN. Улучшение запросов

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