• Зарубежные заказчики и легализация доходов программиста в РФ. Что надо делать и сколько это всё будет стоить?

    image


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


    Сразу пишу к чему пришёл в ходе изысканий:


    1. ИП на ПСН
    2. поступление оплаты за услуги по разработке ПО на счёт ИП в долларах США
    3. основание для оплаты инвойс, сумма которого не превышает 200 000 руб.
    4. инвойсы выставляются по-мере необходимости
    5. ККТ не используется

    То есть, спокойно работаю, в конце оговоренного периода формирую инвойс, в котором указываю согласованную с работодателем сумму не превышающую указанный порог, получаю деньги прямо на расчётный счёт, оплачиваю раз в год или в течение года патент и взносы в размере 54 000 рублей и больше не переживаю о том, что завтра злобные налоговики придут ко мне с повесткой и ужасными новостями (это была минутка юмора). В следующем году эта сумма подрастёт до 60 000 рублей за год.


    Почему так? Какие могут быть ещё варианты? Чем плохи для меня Upwork, PayPal и Payoneer? Попробую ответить под катом. Кому интересны все эти детали, читаем дальше :-)

    Читать дальше →
  • Распознаем лица на фото с помощью Python и OpenCV


      В этой статье я хотел бы остановиться на алгоритмах распознавания лиц, а заодно познакомить вас с очень интересной и полезной библиотекой OpenCV. Уверен, что этот материал окажется полезным для новичков в этой области.

      Что нам понадобится:
      • Установленный Python 2.7 с библиотеками NumPy и PIL
      • OpenCV 2-й версии

      Здесь ссылка на материал по установке всех необходимых компонентов. Установка всего необходимого не составит труда.
      Читать дальше →
    • ElasticSearch — агрегация данных

      • Tutorial

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

      Для всех, кому интересно как сделать свои запросы в ES интереснее и посмотреть на обычной поиск с другой стороны, прошу под кат.
      Читать дальше →
      • +18
      • 35.8k
      • 8
    • Основы Elasticsearch

        Elasticsearch — поисковый движок с json rest api, использующий Lucene и написанный на Java. Описание всех преимуществ этого движка доступно на официальном сайте. Далее по тексту будем называть Elasticsearch как ES.


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


        В этой статье я расскажу про основы ES на примере индексации постов блога. Покажу как фильтровать, сортировать и искать документы.

        Читать дальше →
      • Поиск по большим документам в ElasticSearch


          Продолжаем цикл статей о том, как мы постигали ES в процессе создания Ambar. Первая статья цикла была о Хайлайтинге больших текстовых полей в ElasticSearch.


          В этой статье мы расскажем о том как заставить ES работать быстро с документами более 100 Мб. Поиск в таких документах при подходе "в лоб" занимает десятки секунд. У нас получилось уменьшить это время до 6 мс.


          Заинтересовавшихся просим под кат.

          Читать дальше →
        • Хайлайтинг больших текстовых полей в ElasticSearch

            В декабре 2016 года мы с товарищем начали заниматься новым проектом — системой сбора-индексации-поиска по документам. Система построена вокруг ElasticSearch (далее — ES), который мы используем как основной движок для полнотекстового поиска.


            Ценными данными, приобретенными в ходе работы над проектом мы бы хотели поделиться с читателями в цикле статей про ES. Начнём с основы любого поисковика — подсветки результатов поиска (далее — хайлайтинг).


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


            Одним из ключевых требований к нашей поисковой системе была возможность быстро и эффективно работать с большими файлами (более 100 Мб). В статье мы расскажем как добиться высокой производительности от ES при хайлайтинге больших полей документа.


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


            Пример результатов поиска с хайлайтом

            Читать дальше →
            • +12
            • 5.8k
            • 5
          • Курс молодого бойца PostgreSQL

            • Tutorial


            Хочу поделиться полезными приемами работы с PostgreSQL (другие СУБД имеют схожий функционал, но могут иметь иной синтаксис).

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

            Данный материал будет полезен тем, кто полностью освоил базовые навыки SQL и желает учиться дальше. Советую выполнять и экспериментировать с примерами в pgAdmin'e, я сделал все SQL-запросы выполнимыми без разворачивания каких-либо дампов.

            Поехали!
            Читать дальше →
          • Bobby. Рюкзак особого назначения

              В мире существует довольно много компаний, производящих такой класс вещей, как рюкзаки. Ещё больше существует самих рюкзаков: для ноутбуков, для фотоаппаратов, для фотоаппаратов и ноутбуков, для дронов, для активного отдыха, для лежания овощем и т.д — только у нас на сайте отобрано более 50 моделей (и это именно в наличии). Казалось бы, рассказывать о них на Geektimes нет никакого смысла, рюкзаки и рюкзаки. Но сегодня про один всё же расскажем, так как внимания гиков он заслуживает совершенно точно: это новый Bobby от голландской компании XD-Design.

              Читать дальше →
            • Поднимаем Owncloud с нуля с динамическим IP и Let's Encrypt. Тысяча слонов!*

              • Tutorial


              Давно хотел написать целостный туториал по поднятию Owncloud в условиях домашнего сервера или небольшой компании до 500 пользователей. Owncloud — это прекрасный open-source проект, который позволяет на собственной инфраструктуре поднять свой вариант сервера синхронизации. По возможностям очень похож на Dropbox, а в чем-то его и превосходит. Огромный плюс — отсутствие ограничений по объемам хранения, полный контроль над сервером. Минусы тоже очевидны: вам самим придется следить за всем этим безобразием и беспокоиться о надежности сервера, валяющегося на антресолях или в шкафу.

              Совсем недавно мне подвернулась задача по развертыванию Owncloud в домашне-боевых условиях. Я честно отработал свои два литра кошерного русского имперского стаута и решил поделиться своим опытом, собрав все воедино. Итак, сегодня мы рассмотрим:

              1. Развертывание актуального LEMP-stack
              2. HTTPS. Let's Encrypt для Nginx с автоматическим обновлением сертификата
              3. Конфигурирование Nginx для Owncloud
              4. Кэширование php-apcu
              5. Подключение внешнего основного хранилища по NFS
              Читать дальше →
            • Пишем веб сервис на Go (часть первая)

              • Tutorial
              В этой статье, я хотел бы рассказать вам, как можно достаточно быстро и легко написать небольшое веб-приложение на языке Go, который, не смотря на юный возраст, успел завоевать расположение у многих разработчиков. Обычно, для подобных статей пишут искусственные приложения, вроде TODO листа. Мы же попробуем написать что-то полезное, что уже существует и используется.

              Часто, при разработке сервисов, нужно понимать какие данные отправляются в другой сервис, а возможность перехватить траффик есть не всегда. И как раз для того, чтобы отлавливать подобные запросы, существует проект requestb.in, позволяющий собирать запросы по определённому урлу и отображать их в веб-интерфейсе. Написанием подобного же приложения мы и займёмся. Чтобы немного упростить себе задачу, возьмём за основу какой-нибудь фреймворк, например Martini.

              В конечном итоге, у нас должен будет получится вот такой вот сервис:



              Приступим к разработке
            • Бесплатный Wi-Fi, с небольшой изюминкой

              Данная статья повествует о небольшом проекте бесплатной Wi-Fi сети, об основных технических проблемах и решениях. Цель – просто рассказать о достаточно оригинальном проекте.

              Чуть меньше года назад, моё руководство решило на территории организации развернуть сеть бесплатного Wi-Fi для посетителей. Все было бы просто и прозаично, если бы не одно интересное условие: прежде чем пользователь попадет в Интернет, он должен посмотреть информационную страницу, с нашей «рекламой».

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

              После долгих раздумий и фантазий на тему: как же это реализовать (с погружением в глубины протоколов, и десятками эротических фантазий как же подменить пакеты, заголовки и т.д.) было найдено простое и логичное решение.
              Читать дальше →
            • Как мы делали поиск в elasticsearch на vulners.com

              • Tutorial

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

              И в отличии от классических SQL баз данных или noSQL типа MongoDB здесь очень удобно делать неточный поиск по всему документу. Для этого используется синтаксис Query DSL. Для полнотекстового поиска по всему документу есть несколько поисковых запросов. У себя на сайте мы используем тип query_string. Этот запрос поддерживает Lucene синтаксис, который позволяет и нам и пользователю создавать сложные запросы в google-style. Вот примеры таких запросов:

              title:apache AND title:vulnerability
              type:centos cvss.score:[8 TO 10]

              Можно сделать вот такой простой запрос и все:

              {
                "query": {
                  "query_string": {
                    "query": "exploit wordpress"
                  }
                }
              }

              Но начав впервые использовать query_string, вы столкнетесь с тем, что поиск выдает не то, что вы хотите видеть. Как же добиться от elasticsearch внятного результата поиска?
              Читать дальше →
              • +26
              • 20.1k
              • 2
            • Деплой Go-серверов с помощью Docker

              • Translation

              Введение


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

              В этой статье мы шаг за шагом пройдём создание Docker-контейнера для простого веб-приложения на Go а также деплой этого контейнера в Google Compute Engine. Если вы ещё не знакомы с Docker, вам следует прочесть статью Understanding Docker, прежде чем читать дальше.
              Читать дальше →
              • +21
              • 26.4k
              • 3
            • Поиск в Django REST Framework с помощью Elasticsearch

              Пользователи ищут товары в интернет-магазине, ищут стати, поиск это неотъемлемый компонент сайта. Быстрый и гибкий поиск сложно реализовать средствами реляционных баз данных. Для таких задач используют поисковые движки, один из которых Elasticsearch. Elasticsearch хорошо документирован и доступен из коробки на AWS.


              Для работы с elasticsearch используется библиотека elasticsearch-py или elasticsearch-dsl-py. elasticsearch-dsl-py это надстройка над elasticsearch-py, она проста в использовании и поддерживает elasticsearch версии 5.x. На базе этой библиотеки была создана библиотека django-rest-elasticsearch, которая основана на идеологии существующего поиска в Django REST Framework. Ниже я детально распишу как реализовать поиск в Django REST Framework с помощью elasticsearch используя данную библиотеку.


              Читать дальше →
            • Примеры использования asyncio: HTTPServer?!

                Не так давно зарелизилась новая версия Python 3.4 в changelog которой вошло много «вкусностей». Одна из таких — модуль asyncio, содержащий инфраструктуру пригодную для написания асинхронных сетевых приложений. Благодаря концепции сопрограмм (coroutines), код асинхронного приложения прост для понимания и поддержки.

                В статье на примере простого TCP (Echo) сервера я постараюсь показать с чем едят asyncio, и рискну устранить «фатальный недостаток» этого модуля, а именно отсутствие реализации асинхронного HTTP сервера.
                Читать дальше →
                • +29
                • 40.6k
                • 9
              • Тестируем aiohttp с помощью простого чата

                • Tutorial
                Оглавление
                • Введение
                • Структура
                • Routes
                • Handlers, Request and Response
                • Настройки конфигурации
                • Middlewares
                • Базы данных
                • Шаблоны
                • Сессии, авторизация
                • Static
                • WebSocket
                • Выгрузка на Heroku



                Введение


                Прошлой осенью мне удалось побывать на нескольких python meetups в Киеве.
                На одном из них выступал Николай Новик и рассказывал о новом асинхронном фреймворке aiohttp, работающем на библиотеке для асинхронных вызовов asyncio в 3 версии интерпретатора питона. Данный фреймворк заинтересовал меня тем, что он создавался core python разработчиками и позиционировался как концепт python фреймворка для веба.


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

                Читать дальше →
              • typus — локальный типограф на python

                         ,'``.._   ,'``.
                        :,--._:)\,:,._,.:       All Glory to
                        :`--,''   :`...';\      the HYPNO TOAD!
                         `,'       `---'  `.
                         /                 :
                        /                   \
                      ,'                     :\.___,-.
                     `...,---'``````-..._    |:       \
                       (                 )   ;:    )   \  _,-.
                        `.              (   //          `'    \
                         :               `.//  )      )     , ;
                       ,-|`.            _,'/       )    ) ,' ,'
                      (  :`.`-..____..=:.-':     .     _,' ,'
                       `,'\ ``--....-)='    `._,  \  ,') _ '``._
                    _.-/ _ `.       (_)      /     )' ; / \ \`-.'
                   `--(   `-:`.     `' ___..'  _,-'   |/   `.)
                       `-. `.`.``-----``--,  .'
                         |/`.\`'        ,','); SSt
                             `         (/  (/

                  Найдено в интернетах.


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

                  Читать дальше →
                • Полное практическое руководство по Docker: с нуля до кластера на AWS

                  • Translation



                  Содержание



                  Вопросы и ответы


                  Что такое Докер?


                  Определение Докера в Википедии звучит так:


                  программное обеспечение для автоматизации развёртывания и управления приложениями в среде виртуализации на уровне операционной системы; позволяет «упаковать» приложение со всем его окружением и зависимостями в контейнер, а также предоставляет среду по управлению контейнерами.



                  Ого! Как много информации.

                  Читать дальше →
                • 15 вещей, которые вы должны знать об Ansible

                  Предлагаю читателям «Хабрахабра» перевод опубликованной на codeheaven.io статьи «15 Things You Should Know About Ansible» за авторством Marlon Bernardes.

                  В последнее время я много работал с Ansible и решил поделиться некоторыми вещами, которые выучил по пути. Ниже вы найдете список из 15 вещей, которые, как я думаю, вы должны знать об Ansible. Что-то пропустил? Просто оставьте комментарий и поделитесь вашими личными советами.
                  Читать дальше →