• Как открыть ИП в Германии, если ты программист, и не набить шишек

      В последние недели Берлин — популярная тема на Хабре. Не случайно — в Германии много возможностей для работы в ИТ с комфортным переездом. Но бюрократия она и в Африке бюрократия, а если встают вопросы об индивидуальном предпринимательстве за рубежом — головной боли не избежать.



      Алина Ануфриева (allinne) работала фронтендером в Яндексе, но ее муж получил оффер из Германии, и они вместе с ребенком переехали в Берлин. Работа позволила мужу получить Blue Card — рабочую визу, действующую по всей Европе — и вид на жительство для семьи. Но если но был обязан работать именно в той компании, которая его позвала, то Алина получила более широкие возможности: работать где угодно и даже открывать свое дело.

      Но первое время она занималась бытовыми делами, например устраивала ребенка в сад. «Надо заполнить 100500 формуляров, принести их в Jugendamt (управление по делам молодежи). Российское гражданство никаких трудностей не вызовет, если есть виза», — говорит она.

      Алина смотрела вакансии на неполный рабочий день в Берлине, чтобы заниматься ребенком, но ей не удавалось найти работу даже на 30 часов в неделю. Наконец она нашла удаленный оффер из Финляндии, но столкнулась с бюрократическими трудностями — финские и немецкие законы устроены так, что организовать работу можно было только через ИП.

      Открыть его сложнее чем в России, есть много подводных камней. Мы созвонились, и Алина подробно описала весь процесс, а я записал ее рассказ.
      Читать дальше →
    • Заряди мозги напрямую! Рантаймы, компиляторы и перформанс на Joker 2018

        Многие из нас ходят на конференции по Java только из-за хардкора. Это статья о том, что в этом плане изменилось за год.


        Хардкор бывает нескольких видов. Можно выделить как минимум:


        • перформансные оптимизации в любых проявлениях;
        • внутренности достаточно сложных технологий (OpenJDK, GraalVM);
        • компиляторы и рантаймы в целом;
        • дизайн языков программирования;
        • проблемы computer science и прикладной математики;
        • и многое другое.



        В чем разница между обычным докладом и хардкорным? Это как разница между статьей по квантовой гравитации и руководством по вкусной и здоровой пище. Правильно приготовить Spring — это, безусловно, очень сложная и интересная задача, которая для многих из нас является большой частью повседневных задач, и, соответственно, доклады Жени Борисова имеют большое практическое значение. Грубо говоря, это способ стать более хорошим специалистом и поднять больше денег. Но блеск далёких звезд находится не там.


        Поэтому — только хардкор по заветам старой школы. Под катом небольшая заметка о том, как все это выглядит с точки зрения человека, который помешан на чтении статей, посещении докладов и отсмотру роликов на Ютубе, посвященных Java в широком смысле слова.

        Читать дальше →
      • Telltale всё. А жаль

          В пятницу стало известно, что студия Telltale — всё. Закрывается, банкротится, ужас и кошмар.
          Что случилось? Давайте разбираться. (Под катом — опрос!)



          Читать дальше →
        • Каково делать Kotlin: интервью с Андреем Бреславом



            Дефицита технических материалов о Kotlin нет, узнать о корутинах или nullability можно много где. Но остаётся куда менее освещённой другая сторона: а как вообще выглядит процесс разработки языка? Как принимаются решения? Каковы задачи у «самого главного человека»? Остаётся ли у него в жизни время на что-либо ещё?

            И сейчас, когда вот-вот выйдет Kotlin 1.3, мы расспросили «самого главного» Андрея Бреслава не про корутины, а про совсем другое: от того, чем он занимался до Kotlin, до того, чем полезна психотерапия.
            Читать дальше →
          • Основные тезисы из интервью Илона Маска у Джо Рогана

              Илон Маск пришел к комику Джо Рогану на его подкаст Joe Rogan Experience.
              2,5 часа они общались об ИИ, бессмертии, Neuralink, инновациях, социальных сетях, колонизации космоса, бурении тоннелей, огнемете, летающих автомобилях, возобновляемой энергетике, безопасности автомобилей. Обсудили Porsche и Rolex, коррупцию и суды Tesla, доброту людей, роль Маска в истории человечества. Как уже все знают, покурили траву и выпили виски.

              image
              Читать дальше →
            • Мне не страшен ваш NDA

                Это громкая и страшная аббревиатура из трёх неприличных букв. Хотите поучаствовать в тендере, устраиваетесь на работу, нужно получить данные — вам подсовывают эту бумажку, мол, подпиши сначала, а то нашли дураков без NDA тебе что-нибудь рассказывать. При этом в большинстве случаев вы ничего сверхсекретного или коммерчески важного не узнаете, но процедура подписания NDA стала неким таинством посвящения, которое стороны выполняют не особо задумываясь над смыслом.

                Это так же как вы неизбежно получите требование вместе с учредительными документами предоставить выписку из ЕГРЮЛ не старше 30 дней. Хотя всё доступно в онлайне, все распечатывают эту выписку из интернета, заверяют её и передают контрагенту, который даже не смотрит её, потому что всё есть в интернете. Ну, вы поняли, короче, отечественную любовь к таинствам.

                image
                Читать дальше →
              • UniSharping: конвертирование кода C# в Java и Python

                  Введение


                  С 70-х годов развивается Simplified English, цель которого — определение подмножества языка, понятного широкому кругу неносителей языка. Рекомендуется, например, для технической документации. Автоматические переводчики на таком подмножестве будут работать заведомо корректнее, в идеале генерируя текст, не требующий ручной корректуры.
                  Если применить этот подход к C# для задачи автоматической конвертации кода в другие языки программирования, то можно выделить подмножество конструкций языка, системных библиотек и технологий, которые потенциально могут транслироваться в широкий круг других языков. Причём конвертации не однократной (миграция), а постоянной для расширения интеграционных возможностей проекта на C# — чтобы в любой момент можно было получить рабочий код на другом языке без необходимости какой-либо его правки.


                  Позвольте представить: UniSharping


                  Ограничение C#.NET для решения этой задачи мы назвали U# (Universal Sharp), а процесс конвертации и его инструмент — UniSharping. Исполняемые модули, настройки и документация выложены на GitHub, система бесплатна для некоммерческого использования (Non-Commercial Freeware).

                  Читать дальше →
                • Раздача халявы: нетормозящие треды в Java. Project Loom

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


                    Объясняем работу Project Loom на коробках с пиццей! Налетай!


                    Состав поставки:


                    • Видеокаст (основная часть). Для тех, кто любит потреблять видео.
                    • Полная текстовая расшифровка статьи. Там есть ссылки!

                    Всё это снимается и пишется специально для Хабра.





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


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


                    Все лайчонки пойдут на создание нового контента. Спасибо.

                    Читать дальше →
                  • Модель памяти в примерах и не только

                    • Tutorial
                    В продолжение серии топиков под названием «фундаментальные вещи о Java, которые стоит знать, но которые многие не знают». Предыдущий топик: Бинарная совместимость в примерах и не только

                    Модель памяти Java — нечто, что оказывает влияние на то, как работает код любого java-разработчика. Тем не менее, довольно многие пренебрегают знанием этой важной темы, и порой наталкиваются на совершенно неожиданное поведение их приложений, которое объясняется именно особенностями устройства JMM. Возьмём для примера весьма распространённую и некорректную реализацию паттерна Double-checked locking:

                    public class Keeper {
                        private Data data = null;
                        
                        public Data getData() {
                            if(data == null) {
                                synchronized(this) {
                                    if(data == null) {
                                        data = new Data();
                                    }
                                }
                            }
                            
                            return data;
                        }
                    }
                    

                    Люди, пишущие подобный код, пытаются добиться улучшения производительности, избегая блокировки, если значение уже было присвоено. К сожалению, эти люди не учитывают многих факторов, в результате проявления которых может случиться зомби-апокалипсис. Под катом я расскажу теорию и приведу примеры того, как что-то может пойти не так. Кроме того, как говорили в одном индийском фильме, «Мало знать, что не так. Нужно знать, как сделать так, чтобы было так». Потому и рецепты успеха вы также сможете найти дальше.
                    Читать дальше →
                  • О сборке JDK 8 на Ubuntu, качестве кода Hotspot и почему всё валят на C++

                      Хотел сегодня поспать, но опять не удалось. В Телеграме появилось сообщение, что у кого-то не собирается Java… и мы очнулись только через пару часов, уставшие и довольные.




                      Кому этот пост может быть полезен? Да, наверное, никому, кроме тех, кто тоже собирает JDK8 или просто любит почитать кошмарные ужасы. В общем, я вас предупредил, закрывайте статью срочно.

                      Проблемы три:


                      • Не собирается (уровень первый)
                        Очень скучная часть, которую можно пропустить. Нужна только для тех, кто хочет полностью восстановить историю событий;
                      • Не собирается (уровень второй)
                        Интересней, потому что там есть пара типичных ошибок, некромантия, некрофилия, в чём BSD лучше GNU/Linux и почему стоит переходить на новые версии JDK.
                      • Даже если собирается, падает в корку
                        Более интересно. Йахууу, JVM упала в корку, давайте пинать её ногами!

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


                      Будет много C++, кода на Java не будет вообще. Любой джавист в конце концов начинает писать только на C++…

                      Читать дальше →
                    • Хватит кормить логгеры! Даешь больше модификаторов! Lazy Static Final Fields. Черновой набросок фичи

                      • Перевод

                      Достало, что в Java логгеры инициализируются в момент инициализации класса, отчего замусоривают весь запуск? Джон Роуз спешит на помощь!


                      Вот как это может выглядеть:


                      lazy private final static Logger LOGGER = Logger.getLogger("com.foo.Bar");

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


                      Читать дальше →
                    • «Высокий уровень самодисциплины». Джеффри Рихтер о том, как кодить, писать книги и создавать свои компании


                        Сегодня в нашей виртуальной студии один из самых известных дотнетчиков — Джеффри Рихтер.

                        В данный момент он — Partner Software Architect в Microsoft, работающий по направлению Distributed Cloud Apps & Storage. Иначе говоря, человек, который знает об Azure Storage всё.

                        F.A.Q.

                        Слишком много текста. О чём это всё?
                        Чтобы вам было веселей читать, для этой статьи мы придумали более интересную вёрстку. Слева будут говорящие головы, а справа — текст. Если вам уныло листать до интересующей части, то в оглавлении есть анкерные ссылки. В ролях:


                        Евгений phillennium Трифонов (нетехнические вопросы)
                        • Советы разработчикам по созданию компании
                        • Комбинирование разных видов деятельности
                        • Что читать, что изучать, как писать


                        Олег olegchir Чирухин (технические вопросы)
                        • Зачем Рихтер изучает JS, Golang и Python
                        • Стоит ли продолжать писать на C++
                        • Эволюция и будущее разработки на платформе Windows, .NET и вообще
                        • Захватит ли JavaScript мир, нужна ли типобезопасность
                        • Немного о пользе облачных провайдеров
                        • Что лучше иметь — личный самолет или личный вертолёт
                        • Как всё успевать



                        Почему эта статья попала в хаб JavaScript?
                        Только для тех, кому интересно мнение архитектора Azure относительно JS и его позиция в холиваре о типобезопасности. Этот холивар перетекает у нас из интервью в интервью, и конца ему не видно.


                        Почему эта статья попала в хаб С++?
                        Изначально Рихтер писал книги про C++. Только для тех, кому интересно мнение архитектора Azure относительно будущего и применимости C++


                        Джефф стал известен еще в начале 90-х, когда написал книгу о том, как программировать Windows 3.1. Его книга «Programming Applications for Microsoft Windows» стала классикой, позже выпускалась как «Windows via C/C++» и выдержала несколько изданий.

                        С появлением .NET он написал «CLR via C#» — тоже получилась классика, тоже несколько изданий. В то время он был одним из основателей компании Wintellect и, формально не будучи частью Microsoft, оказался более свободен в оценках. Чем и заработал репутацию крупного независимого эксперта по Windows. Это человек-легенда уровня Чарльза Петцольда и Дона Бокса.



                        Читать дальше →
                      • От сисадмина к человеку



                          На DevOps есть по крайней мере два устоявшихся взгляда — со стороны системных администраторов и со стороны разработчиков. Первые обычно хвастаются тем, что используют Chef/Puppet/Ansible/Docker c 200X года, вторые считают, что DevOps либо изжил себя и ведет к NoOps, либо что «я завернул всё в контейнер, а дальше как пойдёт».

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

                          Эта статья — про DevOps как систему. Как он помогает бизнесу, какие компетенции со стороны инженеров должны появиться для DevOps, какие бизнес-задачи можно решать DevOps-методом производства программного обеспечения, а также какие ошибки возможны на пути к DevOps-производству и как их избежать или купировать. Как, в конце концов, инженеру стать Человеком и быть в этом мире творцом, как для этого построить карьерный путь и как начать смотреть на технологии по-человечески.

                          В основе материала — расшифровка доклада Александра osminog Титова с нашей октябрьской конференции DevOops 2017.

                          Читать дальше →
                        • «Мы даже не пытаемся запустить старый код, такой задачи у нас не стоит в принципе» — Роман Елизаров о разработке Kotlin

                            Если хочешь в чем-то разобраться — учись сразу у лучших. Сегодня на мои вопросы отвечает бог корутин и concurrency, Рома elizarov Елизаров. Мы поговорили не только о Kotlin, как вы могли бы подумать, но ещё и о куче смежных тем:

                            • Golang и горутины;
                            • JavaScript и его применимость для серьезных проектов;
                            • Java и Project Loom;
                            • олимпиадное программирование на Kotlin;
                            • как правильно обучаться программированию;
                            • и другие волнующие вещи.


                            Читать дальше →
                          • [Javawatch Live] История одного pull request. `os.version` в SubstrateVM

                              Прошел год с тех пор, как удалась предыдущая выходка: опубликовать вместо поста ролик на YouTube. «Стыдный разговор о синглтонах» набрал 7к просмотров на YouTube и вдвое больше на самом Хабре в текстовой версии. Для статьи, написанной в совершенно упоротом состоянии и рассказывающей о древнейшем баяне — это что-то вроде успеха.

                              Сегодня я всю ночь монтировал новый выпуск. На этот раз тема куда более свежая: история коммита в экспериментальную технологию — SubstrateVM. А вот градус упоротости поднялся на новый уровень.



                              Очень жду ваших комментариев! Напоминаю, что если вы хотите действительно что-то улучшить в этом посте, то лучше всего зафайлить ишшую на Github. Хотел бы сказать «ставьте лайки и подписывайтесь на новый канал, но ведь все его выпуски и так будут у вас в хабе Java?

                              Технически: в видео есть одна склейка ближе к концу. Просто я писал несжатое видео, и мой m2 ssd размером всего в пятьсот гигабайт быстро переполнился. А ни один другой жесткий диск не смог выдержать такого напора данных. Поэтому пришлось отключиться на полчаса и изголившись найти дополнительные пятьдесят гигов на запись последних нескольких минут. Это было достигнуто удалением файлов собранного GoogleChrome. Мнение о записывающем софте отписал в ФБ прямо в момент записи, там очень много боли.

                              Ещё из технически интересного: YouTube почему-то заблокировало мне live streaming. При этом на аккаунте нет ни единого страйка и клейма. Будем надеяться, что это просто косяк, и через 90 дней всё вернут назад.
                              Текстовая расшифровка хаброкаста
                              • +42
                              • 4,5k
                              • 5
                            • There's an app for that: анонс Mobius 2018 Moscow

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

                                А если вы не просто пользуетесь мобильными приложениями, но и сами их разрабатываете (хоть Android, хоть iOS), то в декабре будем рады видеть вас на Mobius, а здесь написали, чего ждать:


                                Читать дальше →
                              • Three Futamura Projections и не только

                                  Привет, хабрачеловек. Сегодня я расскажу тебе про некоторые фундаментальные вещи в computer science: частичные вычисления, три проекции Футамуры и суперкомпиляцию.
                                   
                                   

                                  1. Сразу к коду


                                  -- функция, которая возводит x в степень y (неотрицательную)
                                  power x y =
                                      case y of
                                          0 → 1
                                          1 → x
                                          _ → x * (power x (y - 1))


                                  Читать дальше →
                                • Что мы читали в июле: как найти время на чтение, пять книг для тимлида и немного свежих статей



                                    В сегодняшнем выпуске нашей рубрики Алексей Катаев рассказывает о том, как он научился читать по 17 книг в месяц, не тратя на это кучу времени, и рекомендует пять полезных произведений из разряда «нетленки», показавшихся ему наиболее полезными. А в конце — традиционная, но маленькая подборка ссылок из нашего рабочего Слака.
                                    Читать дальше →
                                  • Незамеченное IT

                                      Замечали неравномерность человеческого внимания к разным достижениям? Мемы о том, что Стив Джобс и Деннис Ритчи ушли почти одновременно, но обществом была замечена только смерть первого, хотя вклад второго в IT гигантский:


                                      Реальность неумолима: как бы ни был талантлив сценарист фильма, актёрам всегда достанется больше внимания, потому что их видно. Как бы ни был профессионален создатель серверной технологии, Марк Цукерберг привлечёт больше внимания, потому что рядовой пользователь взаимодействует с его проектом напрямую. Это нормально: мы все не замечаем чего-то, с чем не сталкиваемся напрямую.

                                      В этом посте будет небольшой заплыв в специфику организации мероприятий, а также Kotlin, Machine Learning и создателя ОС Фантом. Коротко о посте в одной картинке (да, вы скоро поймете, о чем речь):


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

                                      Предлагаемая схема: обращать внимание людей на «незамеченные» вещи и объяснять их значимость. Например, сейчас мы запускаем фестиваль TechTrain, и видим несколько историй, о которых пойдет речь.
                                      Читать дальше →
                                    • Deep Learning: Распознавание сцен и достопримечательностей на изображениях

                                        Время пополнять копилку хороших русскоязычных докладов по Machine Learning! Копилка сама не пополнится!

                                        В этот раз мы познакомимся с увлекательным рассказом Андрея Боярова про распознавание сцен. Андрей — программист-исследователь, занимающийся машинным зрением в компании Mail.Ru Group.

                                        Распознавание сцен — одна из активно применяемых областей машинного зрения. Задача эта посложнее, чем изученное распознавание объектов: сцена — более комплексное и менее формализованное понятие, выделить признаки труднее. Из распознавания сцен вытекает задача распознавания достопримечательностей: нужно выделить известные места на фото, обеспечив низкий уровень ложных срабатываний.

                                        Это 30 минут видео с конференции Smart Data 2017. Видео удобно смотреть дома и в дороге. Для тех же, кто не готов столько сидеть у экрана, или кому удобней воспринимать информацию в текстовом виде, мы прикладываем полную текстовую расшифровку, оформленную в виде хабростатьи.


                                        Перейти к текстовой версии