• Сколько зарабатывают ИТ-шники в Германии

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


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

    Читать дальше →
  • Прага как место, достойное переезда из Питера — 3 года спустя

      "… Не может чуждой славянину
      Быть чехов доблестных земля.
      "
      П.А. Вяземский


      Небольшое предисловие


      Нашего коллегу Андрея Дмитриева, как-то рассказавшего Хабру свою историю развития от бездомного до Senior Developer'a, недавно позвал поучаствовать в подкасте linkmeup наш другой коллега Loxmatiymamont. В рамках проекта "По'уехавшие" он общается с IT специалистами, которых объединяет одна деталь: когда-то они уехали работать из России в другую страну. Но, дабы не повторять миллион и тысячу подобных проектов, в этом подкасте нет разговоров про мотивацию, рассуждений "зачем и почему", а также поиска высших смыслов. Нет, здесь упор делается на бытовую часть вопроса жизни обычного человека в совершенно новом для него месте, без скучных сравнений а-ля "где огурцы дороже".


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



      — Всем привет!
      Нас
      [linkmeup] раньше любили обвинять в какой-то предвзятости и то, что наш проект периодически продается [выпуски с представителями вендоров — ред]. И вот сегодня у вас будет новый повод это сделать, потому что в гости я позвал своего коллегу – это Андрей Дмитриев, он сейчас работает в Праге. Привет, Андрей!


      — Привет!

      Читать дальше →
    • Открытый урок «Как не надо: антипримеры в анализе бизнес-процессов»

        Доброго вечера.

        Представляем вам первый открытый вебинар курса «Аналитик бизнес-процессов». На занятии преподаватель курса Радий Веснин рассказывает про нотации BPMN и типичные ошибки при использовании в описании бизнес-процессов.


        Нам очень интересны ваши комментарии и вопросы, которые можно оставить тут или зайти к нам на второй открытый урок курса.
      • Подводные камни при использовании Linked Server

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

          Если вкратце, то проект из себя представляет несколько БД и приложений, расположенных на разных серверах. «Задача» в данном проекте – это хранимая процедура или .Net приложение. Соответственно «задача» должна быть выполнена на определённой БД и на определенном сервере.

          image
          Читать дальше →
        • Удачная модель ветвления для Git

          • Перевод
          Перевод статьи Vincent Driessen: A successful Git branching model

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



          В качестве инструмента управления версиями всего исходного кода она использует Git.

          Читать дальше →
        • Что нового в первой CTP редакции SQL Server 2019

          • Перевод
          24 сентября была представлена первая редакция CTP выпуска SQL Server 2019, и, позвольте сказать, что он переполнен всевозможными улучшениями и новыми возможностями (многие из которых можно найти в форме предварительного просмотра в базе данных SQL Azure). У меня была исключительная возможность познакомиться с этим чуть раньше, позволившая мне расширить представление об изменениях, пусть даже поверхностно. Вы можете также ознакомиться с последними публикациями от команды разработчиков SQL Server и обновленной документацией.

          Не вдаваясь в подробности, я собираюсь обсудить следующие новые функций ядра: производительность, поиск и устранение неполадок в работе, безопасность, доступность и разработка. На данный момент у меня есть немного больше подробностей, чем у других, и часть из них уже подготовлена к публикациям. Я вернусь к этому разделу, как и к множеству других статей и документации и опубликую их. Спешу сообщить, что это не всеобъемлющий обзор, а только часть функционала, которую я успел «пощупать», вплоть до CTP 2.0. Еще есть много всего, о чем стоит рассказать.
          Читать дальше →
        • Трюки с интерфейсами в Delphi

            Приветствую.
            Буквально сегодня обсуждал с коллегой интерфейсы. Он мне рассказал о своем интересном приеме, я ему о своем, но только по дороге домой я осознал всю мощь этих приемов, в особенности если объединить их вместе.
            Любители удобной автоматики и MVC паттернов — прошу под кат.
            За трюками
          • Анализ работы MS SQL Server, для тех кто видит его впервые (часть 2)

              Часть 1

              Продолжаем анализировать что происходит на нашем MS SQL сервере. В этой части посмотрим как получить информацию о работе пользователей: кто и что делает, сколько ресурсов на это расходуется.

              Думаю, вторая часть будет интересна не только админам БД, но и разработчикам (возможно даже разработчикам больше), которым необходимо разбираться, что не так с запросами на рабочем сервере, которые до этого отлично работали в тестовом.

              Задачи анализа действий пользователей условно поделим на группы и рассмотрим каждую отдельно:
              Читать дальше →
              • +16
              • 29,7k
              • 3
            • Как мы уместили таблицы в экран смартфона и унифицировали в рамках дизайн-системы

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

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

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

                Для дизайн-проектирования это ставит нам 2 задачи:

                1. Превратить большое в маленькое – перевести объемные списки в мобильное представление.



                2. Разработать подход к унификации – унифицировать мобильное представление для разных списков в рамках нашей экосистемы. Чтобы пользовательский опыт был единообразным, вне зависимости от модуля, с которым работает пользователь.

                В этой заметке поделимся тем, как мы подходили к решению задач перевода таблиц в списки и унификации представления разных списков.
                Читать дальше →
                • +20
                • 7,2k
                • 5
              • Это пост с докладами и видео по MS SQL Server

                  В июне мы провели митап по Microsoft SQL Server — докладчики из Яндекс.Денег, «Лаборатории Касперского», AwaraIT и SpbDev поделились с коллегами опытом. А теперь выкладываем видео в общий доступ.



                  Под каждым видео — таймкоды ключевых мест, но советуем смотреть, слушать и внимать целиком.


                  Data-driven подписки в SSRS


                  Под катом еще три доклада
                  • +26
                  • 5,9k
                  • 8
                • Использование FPC-библиотеки «InternetTools» в Delphi

                    На самом деле, статья несколько шире – она описывает способ, позволяющий прозрачно задействовать и многие другие библиотеки (причём не только из мира Free Pascal), а InternetTools выбрана из-за своего замечательного свойства – это тот случай, когда (как ни удивительно) отсутствует Delphi-вариант с такими же широкими возможностями и удобством использования.

                    Эта библиотека предназначена для извлечения информации (парсинга) из веб-документов (XML и HTML), позволяя использовать для указания нужных данных как языки запросов высокого уровня, такие как XPath и XQuery, так и, в качестве одного из вариантов, предоставляя прямой доступ к элементам дерева, построенного по документу.
                    Читать дальше →
                    • +17
                    • 2,6k
                    • 6
                  • Создание сайта на Delphi, или Как использовать uniGUI по-минимуму

                      uniGUI – это библиотека, позволяющая создавать веб-приложения в классической Delphi-манере, посредством визуальных компонентов, причём, что является немаловажным, в большинстве случаев она полностью скрывает от разработчика всю клиентскую (браузерную) «кухню»: не требуется знать ни HTML, ни CSS, ни JavaScript, а вся разработка ведётся лишь на одном языке – Delphi.

                      Если смотреть на картину издалека, то вырисовываются 3 сценария использования библиотеки:

                      1. Наиболее благоприятный, для которого она в целом и создавалась, когда описанная сильная, радужная сторона uniGUI проявляет себя в полной мере – перенос (полный или частичный – неважно) настольных приложений в веб, что возможно проделать быстро, привычным способом и с высоким качеством только в случаях, когда поставляемые с библиотекой компоненты сразу обеспечивают требуемый функционал – к примеру, фильтрацию и сортировку по столбцам таблицы.
                      2. Очень похож на первый и в какой-то мере вытекает из него, с тем лишь отличием, что штатный набор компонентов не покрывает все необходимые по ТЗ возможности; если снова взять для примера таблицу, то таким требованием может стать многоуровневая группировка строк по произвольным столбцам. Если удастся найти сторонние решения с нужными возможностями, то сценарий сводится к первому, а если нет, то потребуется самостоятельная доработка, что уже весьма нетривиально, т. к. здесь не обойтись не просто без знаний JavaScript, а ещё и глубокого владения фреймворком Ext JS, на основе которого работает браузерная сторона uniGUI.
                      3. Последний сценарий может показаться странным и даже чужеродным для тех, кто применял на практике в основном первый, – речь об отказе от всей богатой палитры визуальных компонентов и разработке клиентской части веб-приложения исключительно с использованием родной для неё триады – HTML, CSS и JavaScript. Данная статья покажет, в каких случаях подобное допустимо, а также продемонстрирует способ реализовать задуманное.
                      Читать дальше →
                    • Книга «Чистая архитектура. Искусство разработки программного обеспечения»

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

                        Роберт Мартин дает прямые и лаконичные ответы на ключевые вопросы архитектуры и дизайна. «Чистую архитектуру» обязаны прочитать разработчики всех уровней, системные аналитики, архитекторы и каждый программист, который желает подняться по карьерной лестнице или хотя бы повлиять на людей, которые занимаются данной работой. Все архитектуры подчиняются одним и тем же правилам! Роберт Мартин (дядюшка Боб)
                        Читать дальше →
                      • Встречаем Windows Machine Learning — WinML

                          Искусственный интеллект и машинное обучение — две хайповые тенденции последних лет. Необходимые для AI&ML объемы вычислений обычно выполняются в ЦОДах на специальном высокопроизводительном и энергоэффективном оборудовании (например, серверах с TPU). Эволюция циклична, и маятник качнулся обратно, в сторону вычислений на периферийных устройствах, таких как ПК, планшеты и IoT. В частности, это приведет к повышению скорости реакции устройств на голосовые команды и повысит комфортность общения с персональными ассистентами.



                          WinML — это новый набор API-интерфейсов, который позволит разработчикам использовать все возможности любого устройства Windows 10 для вычислений предварительно обученных моделей машинного обучения и загруженных в приложение в формате Open Neural Network Exchange (ONNX).
                          Читать дальше →
                        • Наташа — библиотека для извлечения структурированной информации из текстов на русском языке

                            Есть стандартная задача извлечения именованных сущностей из текста (NER). На входе текст, на выходе структурированные, нормализованные объекты, например, с именами, адресами, датами:



                            Задача старая и хорошо изученная, для английского языка существует масса коммерческих и открытых решений: Spacy, Stanford NER, OpenNLP, NLTK, MITIE, Google Natural Language API, ParallelDots, Aylien, Rosette, TextRazor. Для русского тоже есть хорошие решения, но они в основном закрытые: DaData, Pullenti, Abbyy Infoextractor, Dictum, Eureka, Promt, RCO, AOT, Ahunter. Из открытого мне известен только Томита-парсер и свежий Deepmipt NER.

                            Я занимаюсь анализом данных, задача обработки текстов одна из самых частых. На практике оказывается, что, например, извлечь имена из русского текста совсем непросто. Есть готовое решение в Томита-парсере, но там неудобная интеграция с Питоном. Недавно появилось решение от ребят из iPavlov, но там имена не приводятся к нормальной форме. Для извлечения, например, адресов («ул. 8 Марта, д.4», «Ленинский проезд, 15») открытых решений мне не известно, есть pypostal, но он чтобы парсить адреса, а не искать их в тексте. C нестандартными задачами типа извлечения ссылок на нормативные акты («ст. 11 ГК РФ», «п. 1 ст. 6 Закона № 122-ФЗ») вообще непонятно, что делать.

                            Год назад Дима Веселов начал проект Наташа. С тех пор код был значительно доработан. Наташа была использована в нескольких крупных проектах. Сейчас мы готовы рассказать о ней пользователям Хабра.
                            Наташа — это аналог Томита-парсера для Питона (Yargy-парсер) плюс набор готовых правил для извлечения имён, адресов, дат, сумм денег и других сущностей.
                            В статье показано, как использовать готовые правила Наташи и, самое главное, как добавлять свои с помощью Yargy-парсера.
                            Читать дальше →
                          • 6 строк глубокого обучения

                            • Перевод
                            Привет, Хабр! Такое понятие, как «Глубокое обучение», существует с 1986 года, когда его впервые употребила Рина Дехтер. Развитие технология получила в 2006 после выхода публикации Джеффри Хинтона об эффективном предобучении многослойной нейронной сети. Сегодня deep learning часто живет в связке с распознаванием речи, пониманием языка и компьютерным зрением. Под катом вы узнаете про использование алгоритмов глубокого обучения в SQL. Заглядывайте!

                            Читать дальше →
                          • Все нормально, падаем

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



                              Под катом — полный драматизма рассказ о попытке внедрения гибкой методологии управления в крупной enterprise-компании.
                              Читать дальше →
                              • +19
                              • 9,4k
                              • 3
                            • Domain Driven Design на практике

                              • Tutorial
                              Эванс написал хорошую книжку с хорошими идеями. Но этим идеям не хватает методологической основы. Опытным разработчикам и архитекторам на интуитивном уровне понятно, что надо быть как можно ближе к предметной области заказчика, что с заказчиком надо разговаривать. Но не понятно как оценить проект на соответствие Ubiquitous Language и реального языка заказчика? Как понять, что домен разделен на Bounded Context правильно? Как вообще опредилить используется DDD в проекте или нет?

                              Последний пункт особенно актуален. На одном из своих выступлений Грег Янг попросил поднять руки тех, кто практиукует DDD. А потом попросил опустить тех, кто создает классы с набором публичных геттеров и сеттеров, располагает логику в «сервисах» и «хелперах» и называет это DDD. По залу прошел смешок:)

                              Как же правильно структурировать бизнес-логику в DDD-стиле? Где хранить «поведение»: в сервисах, сущностях, extension-методах или везде по чуть-чуть? В статье я расскажу о том, как проектирую предметную область и какими правилами пользуюсь.
                              Читать дальше →
                            • Как мы настроили поиск с помощью Elasticsearch и Logstash по данным MSSQL

                                Делимся подробностями, как мы сделали хороший поиск по закрытой корпоративной соцсети в условиях, когда:


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


                                Критерий хорошего поиска для нас звучит так: даже если пользователь ввел запрос с опечаткой или неточно указал название группы, то всё равно нашёл её.


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


                                Читать дальше →
                                • +19
                                • 6,5k
                                • 5
                              • Типичные взаимные блокировки в MS SQL и способы борьбы с ними

                                  Чаще всего deadlock описывают примерно следующим образом:
                                  Процесс 1 блокирует ресурс А.
                                  Процесс 2 блокирует ресурс Б.
                                  Процесс 1 пытается получить доступ к ресурсу Б.
                                  Процесс 2 пытается получить доступ к ресурсу А.
                                  В итоге один из процессов должен быть прерван, чтобы другой мог продолжить выполнение.
                                  Но это простейший вариант взаимной блокировки, в реальности приходится сталкиваться с более сложными случаями. В этой статье мы расскажем с какими взаимными блокировками в MS SQL нам приходилось встречаться и как мы с ними боремся.


                                  Читать дальше →