• Осторожный переезд в Нидерланды с женой и ипотекой. Часть 2: подготовка документов и переезд

      Итак, за примерно год (май 2017 — февраль 2018) я, программист C++, нашел-таки работу в Европе. Я десятки раз откликался на вакансии в Англии, Ирландии, Швеции, Нидерландах и даже в Португалии. Я раз двадцать беседовал по телефону, скайпу и прочим системам видео связи с рекрутерами, и несколько меньше — с техническими специалистами. Я ездил в Осло, в Эйндховен и три раза в Лондон на финальные интервью. Все это подробно описано здесь. В итоге я получил один оффер и принял его.



      Оффер этот был из Нидерландов. Работодателям в этой стране относительно просто пригласить работника из-за рубежа (не из Евросоюза), поэтому бюрократической волокиты немного, а сам процесс оформления занимает всего несколько месяцев.

      Но всегда можно самому себе создать сложности. Что я и сделал, чем затянул свой переезд еще на месяц. Если интересно почитать о хлопотах (нет, не сильно приятных) связанных с переездом IT семьи в Западную Европу — добро пожаловать под кат.
      Читать дальше →
    • Микрофреймворк slim

      • Tutorial

      25 апреля 2019 года свет увидела новая мажорная alpha-версия микрофреймворка Slim, а 18 мая она выросла до beta. Предлагаю по этому поводу ознакомиться с новой версией.


      Под катом:


      • О новшествах фреймворка
      • Написание простого приложения на Slim-4
      • О дружбе Slim и PhpStorm
      Читать дальше →
    • Инновации по-русски

        Я — профессиональный участник инновационной индустрии. Вместе с коллегами последние 10 лет мы участвуем в создании новых технологий.

        И я должен сказать о причине, по которой не стоит заниматься инновациями в России. Здесь можно порассуждать о плохом инвестиционном климате, неэффективности государственных программ, размере внутреннего рынка, смещенных мотивациях участников. Но кроме этого есть и плохо контролируемый риск, который заключается в возможности оказаться за решеткой. И об этом не принято говорить вслух, а нужно. Под катом топ-5 инновационных компаний по версии следственного комитета, известных мне, а их злоключения не были ранее упомянуты на хабре.
        Читать дальше →
      • Hack the JWT Token

        • Tutorial

        For Educational Purposes Only! Intended for Hackers Penetration testers.

        Issue


        The algorithm HS256 uses the secret key to sign and verify each message. The algorithm RS256 uses the private key to sign the message and uses the public key for authentication.

        If you change the algorithm from RS256 to HS256, the backend code uses the public key as the secret key and then uses the HS256 algorithm to verify the signature. Asymmetric Cipher Algorithm => Symmetric Cipher Algorithm.

        Because the public key can sometimes be obtained by the attacker, the attacker can modify the algorithm in the header to HS256 and then use the RSA public key to sign the data.
        The backend code uses the RSA public key + HS256 algorithm for signature verification.

        Example


        Vulnerability appear when client side validation looks like this:

        const decoded = jwt.verify(
           token,
           publickRSAKey,
           { algorithms: ['HS256'  , 'RS256'] }          //accepted both algorithms 
        )

        Lets assume we have initial token like presented below and " => " will explain modification that attacker can make:

        //header 
        {
        alg: 'RS256'                         =>  'HS256'
        }
        //payload
        {
        sub: '123',
        name: 'Oleh Khomiak',
        admin: 'false'                       => 'true'
        }

        The backend code uses the public key as the secret key and then uses the HS256 algorithm to verify the signature.
        Read more →
      • Обзор англоязычных сайтов для поиска постоянной удаленной IT работы

          Для удаленной работы есть миллион причин. Торчать по 8-9 часов в офисе вовсе не так здорово, как это показано в сериалах. В один прекрасный день, летом 2018-го, я просто решила, что мне нужно больше личного пространства и собралась увольняться, тем более на моей должности в то время я доросла до максимума и дальнейших перспектив не предвиделось.

          image

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

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

          Я решила сосредоточиться на ресурсах, предлагающих постоянную удаленную работу в компаниях, с которыми можно было связаться напрямую. Идея была заманчива, так как очень импонировало работать на иностранного работодателя без цепочки менеджеров-начальников.
          Наиболее полезными с точки зрения количества и качества вакансий, а также удобства пользования, выглядели следующие сайты:
          Читать дальше →
        • Как Мегафон спалился на мобильных подписках

            Уже давно как не смешные анекдоты ходят истории о платных мобильных подписках на IoT устройствах.


            С Пикабу

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

              И снова здравствуйте. В комментариях к предыдущей статье я обещал написать о защите от радона и его ДПР. Что ж, выполняю это обещание.



              Как я уже говорил в предыдущей статье, радон представляет для людей довольно серьезную опасность. Особенно она велика в некоторых регионах Земли, где радон с больших глубин выносится на поверхности по тектоническим разломам. И в этих местах жизненно необходимы меры по снижению его концентрации в человеческом жилье.
              Читать дальше →
            • Сборка transport-пакета без установки MODX



              Писать свои пакеты для MODX не просто для новичка, да и опытному разработчику иногда не сладко приходится. Но новичок пугается, а опытный разбирается :).

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

              За подробностями прошу под кат.
              Читать дальше →
            • 25 лет спустя: интервью с Линусом Торвальдсом

              • Translation


              В первом номере Linux Journal было опубликовано интервью, взятое Робертом Янгом, первым издателем журнала (и, среди прочего, основателем Red Hat) у Линуса Торвальдса (автора ядра Linux). Мы решили, что будет интересно свести их снова вместе спустя 25 лет. Первое интервью можно найти по ссылке.

              Роберт Янг: Повод связаться с тобой стал для меня большим удовольствием. Как ты, как семья? У тебя дети уже, наверное, колледж закончили. У нас с Нэнси три дочери, у всех всё нормально. У старшей, Зои, которой было 11 лет, когда мы с Марком запустили проект Red Hat, скоро родится второй – то есть, я уже дедушка.

              Линус Торвальдс: Мои дети ещё не закончили колледж, хотя Патрисия (старшая) заканчивает в мае. Селеста (младшая) учится в последнем классе школы, поэтому месяцев через шесть наше гнездо опустеет.

              У всех троих всё в порядке, и я надеюсь и подозреваю, что через несколько лет, когда начнётся вся эта история с дедушкой, всё тоже будет в порядке.
              Читать дальше →
            • Радиация: невидимый убийца и его дочки или немного о радоне



                В предыдущих статьях и их обсуждении я не раз утверждал: никакими современными методами не удается достоверно обнаружить влияния величины естественного радиационного фона в достаточно широком его диапазоне на здоровье людей. Но есть один естественный радиационный фактор, влияние которого относительно хорошо заметно. Это — радиоактивный инертный газ радон, прозванный охочими до красного словца журналистами «невидимым убийцей».
                Читать дальше →
              • Валидация форм во Vue.js

                  Привет, Хабр!

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

                  Vue.js содержит много интересных и необычных подходов к валидации, которые помогут решить ваши проблемы. Обзор под катом!

                  Читать дальше →
                  • +22
                  • 10k
                  • 9
                • Инструменты для создания адаптивного сайта без доступа к сайту

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

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

                  Можно пойти обычным путем – скопировать сайт и доработать его на своей машине, или же писать все прямо на работающий сайт (так лучше не делать).



                  Тут на помощь приходят юзерскрипты, livereload, sass или другие препроцессоры. С этим набором время адаптирования сайта сокращается в несколько раз.

                  Читать дальше →
                • Каждый может с легкостью выучить английский язык


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

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

                    Я составил для вас памятку, которая обязательная поможет в изучении английского. Самая радостная новость: английский можно освоить полностью комфортно и не прилагая адских усилий.
                    Читать дальше →
                  • Подборка: 4 полезных сервиса для потенциальных иммигрантов в США, Европу и другие страны



                      Тема переезда в Европу, США или другие приятные регионы мира довольно часто поднимается на Хабре. Я решил собрать в одном месте список онлайн-сервисов, которые будут полезны тем, кто всерьез задумался об иммиграции. На удивление, «живых» и активных стартапов в этой сфере не так и много. Для статьи я отобрал четыре проекта.
                      Читать дальше →
                    • Разработчик SearchFace о возможностях алгоритма

                        Всем привет, я один из разработчиков сервиса SearchFace и готов поговорить о нём в комментариях.



                        Из-за шумихи с иском ВК на второй план отошло то важное, ради чего мы запустили сервис — чтобы протестировать возможности поиска. А раз уж теперь сервис доступен широкой публике, хочется продемонстрировать всем, на что способны наши алгоритмы распознавания.
                        Читать дальше →
                      • Доменные имена с валидным SSL для локальных Docker-контейнеров

                          preview


                          Использование Docker в процессе разработки стало уже стандартом де-факто. Запускать приложение со всеми его зависимостями, используя всего одну команду — становится всё более и более привычным действием. Если приложение предоставляет доступ используя web-интерфейс или какое-либо HTTP API — скорее всего "фронтовой" контейнер пробрасывает свой, уникальный (среди остальных приложений, разработкой которых вы занимаетесь параллельно) порт в хост, постучавшись на который мы можем взаимодействовать с приложением в контейнере.


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


                          А потом ещё тебе хочется проверить работу по https — и приходится либо использовать свой корневой сертификат, либо всегда использовать curl --insecure ..., а когда над приложениями работают различные команды — количество запар начинает возрастать в геометрической прогрессии.


                          Столкнувшись с такой проблемой в очередной раз — в голове промелькнула мысль "Хватит это терпеть!", и результатом работы на паре выходных стал сервис, который решает эту проблему на корню, о чем будет рассказано ниже. Для нетерпеливых, традиционно — ссылочка.

                          Читать дальше →
                        • Как настроить Continuous Deployment для своего проекта: личный опыт



                            Перевели для вас статью Юлиуса Минмо о настройке непрерывного развертывания (Continuous Deployment) для своего проекта. Автоматизация позволяет сэкономить кучу времени и сил. Статья будет полезна, в первую очередь, начинающим программистам.

                            Непрерывное развертывание — отличная штука. Один раз коммитим проект и далее все происходит в автоматическом режиме, наблюдение за этим процессом просто гипнотизирует. В этой статье я покажу, как можно все настроить для домашнего проекта.
                            Читать дальше →
                            • +21
                            • 14.1k
                            • 8
                          • Деплоим изоморфное веб-приложение на примере Nuxt.js


                            В средних и больших проектах сайт не ограничивается одним сервисом  —  к примеру только сайтом, как правило существует база данных, API, сервер который маршрутизирует запросы ко всем этим сервисам. Выкатывать и обновлять все это без какой-либо стандартизации непросто, а масштабировать на множество серверов еще сложнее.
                            Читать дальше →
                            • +18
                            • 6.9k
                            • 6
                          • Electron: разработка настольных приложений с использованием HTML, CSS и JavaScript

                            • Translation
                            Можно ли, используя HTML, CSS и JavaScript, создавать настольные приложения? Автор статьи, перевод которой мы сегодня публикуем, даёт утвердительный ответ на этот вопрос. Здесь он расскажет о том, как, применяя веб-технологии и пользуясь возможностями фреймворка Electron, создавать кроссплатформенные приложения для настольных операционных систем.


                            Читать дальше →
                          • 3 выигрышные стратегии монетизации приложения в 2019

                              image

                              Главная боль разработчика — понять, почему еще вчера его стратегия монетизации работала и приносила доход, и вдруг перестала. Январь — идеальное время, чтобы проснуться от спячки и переосмыслить свою стратегию монетизации. Ниже мы подготовили обзор трех выигрышных стратегий, которые помогут мобильным приложениям зарабатывать больше в 2019.
                              Читать дальше →
                              • +20
                              • 12.1k
                              • 6