«На средний бюджет»: три не совсем обычных USB-микрофона для записи видеороликов и подкастов

Ранее мы обсудили конденсаторные USB-микрофоны начального и среднего уровня. В голосовании по первой и второй категории уверенную победу одержали представители бренда Audio-Technica — ATR2500x-USB и AT2020USB+. Посмотрим, какие модели вы посчитаете нужным выделить по итогам заключительной подборки примечательных USB-микрофонов.

На изображении: Shure MV51. Источник: Audiomania.ru
На изображении: Shure MV51. Источник: Audiomania.ru

[17 767] Shure MV51 — обладает примечательным дизайном с отсылкой к внешнему виду Shure Model 51 Sonodyne из 1960-х. Высота микрофона — 128 мм, у него солидный цельнометаллический корпус, поэтому и вес приличный — 575 г. Микрофон обладает интегрированной подставкой в виде небольшой откидной ножки без возможности регулирования высоты. Она достаточно устойчивая, но для ряда задач может потребоваться крепление к стандартной микрофонной стойке [такая возможность здесь предусмотрена]. Кстати, последний вариант позволит захватывать меньше ненужных звуков при активной работе с клавиатурой и случайных ударах руками по столу. С нежелательными эффектами от чистых смычных звуков поможет справиться и ветрозащита — она идет в комплекте [уточняйте этот момент].

Отличительная особенность модели — огромный [по сравнению с устройствами из прошлых обзоров] 25-мм капсюль и поддержка до 24 бит/48 кГц встроенным аналого-цифровым преобразователем. Микрофон совместим с совместим с Android и iOS, но вышел уже достаточно давно, поэтому на всякий случай проверяйте список поддерживаемых версий ОС и моделей смартфонов. Кстати, для «яблочной» платформы есть приложение ShurePlus MOTIV — обновление вышло всего пару месяцев назад.

Стоит заметить, Shure MV51, как большая часть его аналогов, содержит в комплекте кабели по одному метру, что подойдет для подключения к стационарному компьютеру далеко не всем. Еще он может потребовать адаптеры для различных моделей планшетов. Послушать сравнение со встроенным микрофоном iPad Pro можно тут, со смартфоном на Android — здесь. В обзорах эту модель иногда сопоставляют как с Blue Yeti, так и с классическими продуктами Shure вроде динамического микрофона SM7B. Звучание MV51 без каких-либо сравнений — вот и вот.

На фронтальной части корпуса есть удобные элементы управления — они позволяют переключаться между пятью пресетами [Speech, Singing, Flat, Acoustic Instrument, Loud], которые помогут побороться с клиппингом и эффективнее адаптироваться к выбранному формату записи в зависимости от помещения и задач — кардиоида продолжит действовать вне зависимости от смены режимов. Еще здесь есть кнопка Mute, которой часто не хватает на моделях USB-микрофонов базового ценового сегмента, и выход на наушники для мониторинга записи. Кстати, эту модель можно отнести к средней линейке, как минимум в рамках наших обзоров.

Для любителей более привычного форм-фактора есть MV7 [22 993] — старший товарищ MV51 с дополнительным XLR-разъемом и комплектацией, включающей трехметровые кабели.


[16 900] Marantz Professional AVS — комплексная система с легкой настольной конструкцией [1,04 кг, 485 мм], веб-камерой, освещением и микрофоном. Модель появилась несколько лет назад, поэтому здесь встроена Full HD камера [пишет в  H.264], но с автофокусировкой и неплохим углом обзора. Хорошее «out of the box» решение для видеозвонков и вебинаров.

Для микрофона использована полукардиоида и аналого-цифровой преобразователь, поддерживающий запись в 16-битном формате с частотой дискретизации до 48 кГц. Что интересно, помимо выхода для наушников, присутствует и микрофонный выход на «джеке». Устройство записывает еще и на флешки — в комплекте есть кабель USB-C-to-USB-A.

Из потенциальных неудобств — требует подключения к сети и питается от адаптера.

Старшая модель Marantz Professional Turret чуть интереснее за счет стойки-пантографа [860 мм] и выносного микрофона с поп-фильтром, но здесь вновь встроена лишь Full HD камера, поэтому — для рабочих задач — какого-либо смысла переплачивать практически и не остается.


[23 399] Apogee MiC Plus призван стать успешнее предшественника — MiC 96k, достаточно популярной модели среди западных подкастеров и независимых музыкантов. Конкурентное преимущество этой линейки — компактный размер и минимальных вес. Для MiC Plus это всего 124 мм высоты и 200 г, хотя вместе с аксессуарами и кейсом получится не менее 350 г.

В этой модели вы найдете 24-битный АЦП, позволяющий записывать с частотой дискретизации до 96 кГц и выход для мониторных наушников. Универсальное комбо для широкого спектра задач: от работы с музыкальными инструментами до разговорных передач и стримов. В комплекте — кабели Lighting, USB-B и USB-B, небольшая тренога и адаптер для стойки.

Старший брат MiC Plus — HypeMIC [31 530] — обладает аналоговым компрессором с тремя режимами работы и выводит линейку на уровень настоящих «студийников». Мы подготовили небольшой видеоролик о нем и сравнили его звучание с моделями из предыдущих обзоров.


Обзоры аудиотехники для домашней студии и другие темы:


ссылка на оригинал статьи https://habr.com/ru/company/audiomania/blog/544664/

Как использовать GraphHopper для построения пешеходных маршрутов по собственным правилам

Построение маршрутов…, люди регулярно этим пользуются, особенно для автомобильных маршрутов, в навигаторах.

Решений, для построения маршрута тоже немало, в том числе существует GraphHopper, который умеет строить маршруты, и для автомобилей, и для пешеходов, и даже для пешего туризма, — подойдёт, наверно, в 99% случаев.

Далее речь пойдёт том, что делать в остальных ситуациях, точнее о моём опыте использования GraphHopper, когда существующее решение не подходило. Требовалось учитывать дополнительные ограничения: строить пешеходные маршруты для людей с ограниченными возможностями. Не будет ни каких значимых особенностей реализации именно этой задачи. Обобщённо.

Будет описано, как создать на основе библиотеки GraphHopper свой веб–сервис, который, по координатам начала и окончания пути, вернёт массив координат маршрута.

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

GraphHopper — механизм маршрутизации, написанный на Java. Выпущен под лицензией Apache, и может быть встроен в продукты с закрытым исходным кодом.

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

Также в публикации Новости из мира OpenStreetMap № 512 (05.05.2020-11.05.2020), была новость следующего содержания:

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

Наверно, эта новая функция покроет ещё 0.99% возможных ситуаций, вероятно подойдёт и для Вашей задачи, знания Java не потребуются, и вообще проблем не возникнет. Я расскажу, а своём опыте создания правил построения маршрутов, когда этой функции не было, а до её создания оставалось 2 года.

Понадобятся знания Java.

Считаю, что публикация всё ещё актуальна, ибо:

  • ничто не может сравниться по гибкости и податливости с возможностью изменения исходного кода

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

Решение

В статье используется версия библиотеки GraphHopper 0.10.0, актуальная на момент создания приложения.

Для начала подключаем библиотеку.

Maven:

<dependency> 	<groupId>com.graphhopper</groupId> 	<artifactId>graphhopper-reader-osm</artifactId> 	<version>0.10.0</version> </dependency> 

Исходный код GraphHopper, в том числе этой библиотеки, выложен на github. Так же там есть некоторая документация, например How to create new routing profile aka a new FlagEncoder? которая, как бы намекает, что нам необходимо создавать совой FlagEncoder. Уже существующие FlagEncoder, находятся в пакете com.graphhopper.routing.util, нас особо интересуют FootFlagEncoder, т.к. он занимается построением именно пешеходных маршрутов, и AbstractFlagEncoder, как его родительский класс.

Отправной точкой для постижения GraphHopper (актуальной версии) может стать вот эта страница GraphHopper Documentation и пример RoutingExample.java.

Создаём FlagEncoder

Имеет смысл, либо унаследовать свой FlagEncoder от AbstractFlagEncoder, частично повторив FootFlagEncoder и внеся изменения куда следует, либо сразу от FootFlagEncoder, что избавит от дублирования кода. Мне больше подходит наследование от AbstractFlagEncoder и копирование кода FootFlagEncoder, ибо требуется доступ к полям, которые в FootFlagEncoder приватны.

Магия построения графа путей сосредоточена в методе acceptWay, который принимает поочерёдно объекты дорог — ReaderWay и решает пригодна эта дорога для прохода/проезда или нет. Определение пригодности это уже прерогатива FlagEncoder. Я передаю во FlagEncoder список дорог, по которым ходить нельзя. Необходимо чтобы метод acceptWay, натолкнувшись на эту дорогу сказал своё твёрдое нет – вернув 0.

Список назовём restricted, и хранить он будет id объекта way из OSM.

public class MyFlagEncoder {  	… 	 	private List<Long> restricted; 	 	@Override 	public long acceptWay(ReaderWay way) {         if (restricted.contains(way.getId()))             return 0;         … 	} 	 	… 	 }

У нас запретительный подход, если объект оказался в списке, то выполнение прерываем, вернув 0.

Предварительная подготовка данных

Написав FlagEncoder, и переделав в нём всё что хотели, можно приступать к построению графа маршрутов.

Я черпал вдохновение в документации Routing via Java API.

GraphHopper closableInstance = new GraphHopperOSM().setOSMFile(osmFilePath).forServer(); closableInstance.setStoreOnFlush(true); closableInstance.setGraphHopperLocation(graphFolder); closableInstance.setEncodingManager(new EncodingManager(encoder)); closableInstance.setCHEnabled(false);  GraphHopper hopper = closableInstance.importOrLoad();

Здесь

  • osmFilePath — путь к pbf-файлу региона, pbf можно взять например на geofabrik, или других порталов, это срез данных из OSM;

  • encoder – объект интересующего нас FlagEncoder, например того, который мы сами и создали на предыдущем шаге;

  • graphFolder – директория куда будут сохранены результаты построения.

Метод importOrLoad проведёт построение графа, в соответствии с правилами из FlagEncoder, и сохранит результат в указанную папку.

Строим маршрут

Нужно обратиться к следующей части документации GraphHopper: Low level API.

Предварительно созданные графы можно загрузить всё тем же методом importOrLoad.

GraphHopper closableInstance = new GraphHopperOSM(). 	setOSMFile(pbfFile). 	forServer(). 	setStoreOnFlush(true). 	setGraphHopperLocation(graphFolder). 	setEncodingManager(new EncodingManager(encoder)). 	setCHEnabled(false); GraphHopper hopper = closableInstance.importOrLoad();

Затем создать объект класса LocationIndex:

GraphHopperStorage graph = hopper.getGraphHopperStorage(); LocationIndex index = new LocationIndexTree(graph, new RAMDirectory()); index.prepareIndex();

Для построения маршрута нам потребуются объекты трёх классов: GraphHopperStorage, FlagEncoder, LocationIndex.

Используем их следующим образом, результатом будет List<Double[]>:

QueryResult fromQR = index.findClosest(fromLon, fromLat, EdgeFilter.ALL_EDGES); QueryResult toQR = index.findClosest(toLon, toLat, EdgeFilter.ALL_EDGES);  QueryGraph queryGraph = new QueryGraph(graph);  // Получить координаты пути queryGraph.lookup(fromQR, toQR); Dijkstra dij = new Dijkstra(queryGraph, new FastestWeighting(encoder), TraversalMode.NODE_BASED); Path path = dij.calcPath(fromQR.getClosestNode(), toQR.getClosestNode());  PointList pl = path.calcPoints(); return pl.toGeoJson();

Заключение

Реализация получилась примитивной т.к. основана на проверке (в методе acceptWay) попадания объекта в заранее составленный (или полученный всеми правдами и неправдами) список:

if (restricted.contains(way.getId())) 	return 0;

Гораздо правильнее было сделать что-то подобное коду, основанному на проверке значений тегов из OSM, как здесь:

if (way.hasTag("foot", intendedValues)) { 	return acceptBit; }

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

Удачи!

ссылка на оригинал статьи https://habr.com/ru/post/545782/

Смотрим любое кино мгновенно

Disclaimer: я не призываю незаконно скачивать контент, пиратство — наказуемо и является преступлением

После ареста серверов Moonwalk жить стало в разы труднее. Лично я уже совсем отвык от торрентов. Нужно что-то качать, ждать, чем-то открывать, куда-то кликать, иногда еще и место на диске кончается. Как можно ждать час пока скачается фильм? За час можно жизнь прожить. Пришлось искать решение, которое позволит смотреть кино также просто, как и раньше. Норматив: от идеи посмотреть что-нибудь и до начала непосредственного просмотра — не более минуты. Так что делюсь с вами одним из множества возможных решений, в формате пятничной заметки.

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

И вот так он работает:

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

Знакомьтесь, Jackett

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

Jackett можно скачать и запускать на компьютере, но это все усложняет. Лучше захостить его на бесплатном облаке от Oracle, и заходить по адресу. Вам понадобится машина в облаке, linux на ней и docker-compose.yml c приблизительно такими характеристиками:

version: '3.5'  services:     jackett:         image: linuxserver/jackett         container_name: jackett         environment:             - PUID=1000             - PGID=1000             - TZ=Europe/Moscow         volumes:             - ./Jackett/config:/config             - ./Jackett/Downloads:/downloads         ports:             - 9117:9117         networks:             - proxy         restart: unless-stopped networks:     network:         driver: bridge     proxy:         external:             name: proxy

docker-compose up -d и заходим. Далее нам понадобится добавить все наши трекеры, вбив логины и пароли.

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

Здесь нам приходят на помощь Stremio и Soda player.

Сами по себе это просто потоковые смотрелки торрент файлов. Хорошо, но недостаточно. В комбиации с Jackett они превращаются во что-то совсем невероятное. Soda отлично подойдет для мака, а Stremio, кажется, умеет передавать видео на телевизоры и прочие кофемолки. Про Soda есть статья на reddit, дескать он ворует печеньки. Лично мне плевать, но вас я обязан предупредить.

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

ссылка на оригинал статьи https://habr.com/ru/post/545784/

Как далеко улетел «небесный кран» от марсохода «Настойчивость»? Считаем все сами

Сегодня в твиттере NASA появилось сообщение о начале движения марсохода «Настойчивость» по Красной Планете. Ровер проехал несколько метров для проверки ходовой части. Все закончилось хорошо, системы работают как им и положено. Кроме того, марсоход сфотографировал собственные следы. Общее время заезда — 33 минуты, за это время марсоход преодолел 6,5 метра.

Насколько можно понять, с ровером все хорошо. Но, если помните, марсоход опустился на поверхность при помощи «Небесного крана». Система, которая обеспечила мягкую посадку при помощи тросов, в определенный момент отделилась от ровера, и улетела, использовав оставшиеся запасы топлива. Но куда именно она отправилась и насколько далеко смогла удалиться? Давайте подсчитаем сами.

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

Для расчетов будем использовать угловой размер посадочной платформы.

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

Вычисление углового размера производится очень просто, вот формула.

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

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

Согласно НАСА, длина троса составляет 6,4 метра — так что мы знаем показатель ® на этой фотографии. Кроме того, мы можем определить и длину посадочной ступени. Если взять ее ширину, это 2,69 метра, то реальный угловой размер, видимый с ровера, составляет 0,42 радиана. Давайте воспользуемся этой цифрой чтобы установить ширину всего кадра видео с угловым полем зрения (FOV) 0,627 радиана (это будет 35,9 градуса).

Все это крайне важно для дальнейших расчетов. С этими данными можно измерить угловой размер посадочной платформы и рассчитать расстояние до марсохода. Для того, чтобы сделать это, можно воспользоваться специальным инструментов, Tracker Video Analysis. Он дает возможность анализировать размеры объектов на видео. Строим вот такой график.

Можно было бы подумать, что график будет параболическим, что показывало бы постоянное ускорение платформы. Но, похоже, ничего такого не было — если платформа и ускорялась, то минимально. Вычисляем скорость — и получаем около 8,2 м/с.

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

Используя известно расстояние до двигателей, а также видимое расстояние, получаем угол наклона в 52 градуса от вертикали. Будем надеяться, что все верно, поскольку этот показатель нужен для дальнейших расчетов.

Движение платформы


Теперь мы готовы к решению важной физической задачи. Звучит она следующим образом.

Посадочный модуль на Марсе выполняет маневр отлета, чтобы уйти на безопасное расстояние от марсохода Perseverance. Модуль запускает движки для достижения скорости в 8,2 м / с при угле пуска 52 градуса от вертикали. Если у Марса гравитационное поле 3,7 Н / кг, как далеко от марсохода он упадет? Вы можете предположить, что сопротивление воздуха незначительно.

Формулировка задачи есть. Теперь нужен ответ. Ключевой момент здесь в том, что движение в горизонтальном направлении (назовем его х-направление) выполняется с постоянной скоростью. Что касается скорости спуска (у-направление), то здесь у нас есть ускорение — g (где g = 3.7 Н/кг), вызванное силой тяжести. Поскольку она постоянна и действует лишь по вертикали, мы можем разделить задачу на две — собственно, движение в горизонтальной плоскости и движение в вертикальной. Эти два элемента одной задачи независимы, их связывает лишь время.

Давайте начнем с движения по вертикали.

Для выполнения нужных вычислений используем косинус. Нам поможет вот такое уравнение для движения с постоянным ускорением.

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

Если мы используем y0 с расстоянием в 6,4 м (что реалистично), придется использовать квадратное уравнение. Это не так уж и сложно. Но мы можем использовать время и при горизонтальном движении спускаемого аппарата. Вот уравнение движения по горизонтали.

Скорость зависит от синуса угла. Теперь можно просто оставить х0 равным нулю и заменить время приведенным выше выражением. В итоге мы получаем вот что.

Подставляя наши значения, получаем, что расстояние, на которое удалилась платформа — 17,6 метров. Но нет, это вовсе не так. Мы знаем это благодаря фотографиям, опубликованным НАСА. Согласно снимкам, платформа опустилась где-то на расстоянии около километра от ровера. Меняем условие задачи.

Для того, чтобы не представлять опасность для ровера, платформа должна улететь на расстояние около 1 км. Скорость спуска — 8,2 м/с с углом наклона около 52 градусов. На какую высоту поднимется платформа, прежде, чем отключатся двигатели? Используем вот эту формулу.

Теперь используем время для решения очередного уравнения.

Если провести расчеты, получается, что показатель для старта по вертикали — 43 км. Почему так? Дело в том, что платформа ускорилась при запуске движков.

Давайте попробуем провести вычисления на Python. Расчет состоит из двух частей. Во-первых, в течение определенного времени ракета будет лететь с постоянным ускорением в 52 градуса. Нужно подорать лишь время и ускорение, после чего вычислить падение тела на поверхность Марса. Вот код программы, которая производит все вычисления.

GlowScript 3.0 VPython  v0=8.2 g=3.7 theta=52*pi/180 x=1000 y0=.5*g*(x/(v0*sin(theta)))**2-x*cos(theta)/sin(theta)   tgraph=graph(width=550, height=350, xtitle="x-position [m]", ytitle="yx-Position [m]", title="Trajectory of Descent Stage Fly Away") f1=gcurve(color=color.blue)  #starting position x=0 y=6.4  #rocket firing time tf=7  #rocket acceleration a=6  #initial velocity vy=v0*cos(theta) vx=v0*sin(theta)  #time t=0 dt=0.01  #rockets firing while t<tf:   vy=vy+a*cos(theta)*dt   vx=vx+a*sin(theta)*dt   y=y+vy*dt   x=x+vx*dt   t=t+dt   f1.plot(x,y)  #to record max height ymax=0 #projectile motion while y>=0:   vy=vy-g*dt   y=y+vy*dt   x=x+vx*dt   if vy<0.1:     ymax=y   t=t+dt   f1.plot(x,y)  print("Descent Range = ",x," m") print("Maximum Altitude = ",ymax," m") print("Fly Away Time = ",t, " seconds")

Для вычислений берем ускорение платформы в 6 м/с2 и время работы движков в 7 секунд. И получаем уже нормальное значение в 964 метра, что уже очень похоже на правду. Наконец-то.

ссылка на оригинал статьи https://habr.com/ru/company/selectel/blog/545658/

[Личная история] Разработчик в Сингапуре: найти своё счастье в Юго-Восточной Азии

После небольшой заметки о Сингапуре возвращаемся к этой теме более детально. Александр Ставонин — Senior Engineer в компании Motional, последние 6 лет провёл в Юго-Восточной Азии, в Сингапуре. Как устроена жизнь в этом городе-государстве? Спойлер: по словам нашего героя — прекрасно, но есть и неоднозначные моменты. У Александра богатый опыт переездов: жил и работал в Киргизии, Казахстане, России, Таиланде, Южной Корее.

Чем крошка-страна лучше городов Европы? Правы ли рейтинги, помещая Сингапур в пятёрку самых дорогих мест для проживания? И как проходят интервью в технологическом хабе Юго-Восточной Азии? Рассказывает Александр.


Почему Сингапур?

Всем привет! Я работаю разработчиком уже лет 17. Люблю крупные компании — за плечами Лаборатория Касперского, Samsung, Autodesk. Переехал в Сингапур после туристической поездки — очень им проникся. Вообще люблю большие города, саму Азию и тёплый климат — по-моему, это однозначно плюсы страны.

Мы с женой оказались здесь не потому, что задались целью во что бы то ни стало переехать. Скорее было желание посмотреть мир: оба любим путешествовать. А если работодатель перевозит за свой счёт — почему бы не переехать?

Первый раз уехали на полгода в Таиланд в 2008 году, просто потому что устали от Москвы — уволились и рванули в Азию. Всё оказалось очень легко, и дальше пошло по накатанной: вернулись домой, уехали в Южную Корею, опять в Москву — и дальше в Сингапур. Прошлой весной мы попытались вернуться в Россию, был и билет на самолёт, и предложение работы от крупной компании. Но рейсы отменили по понятным причинам, пришлось адаптироваться и искать новую работу.

Азиатские страны выбираем осознанно: как направления для переезда Европа и Америка не очень нравятся. Хотя бы потому, что в Европе — посредственный сервис, грязно, банально не найти туалет на улице: некомфортно.

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

У нас в России не понимают, что такое настоящая Азия. Для большинства это курорты Тая, типа Пхукета. Но Пхукет и Бангкок — два разных мира по внешнему виду, образу жизни, быту и рабочим процессам. А если вспомнить Куала-Лумпур, Сингапур, Сеул, Тайбей — на их фоне города Европы и Америки просто выглядят отсталыми. Темпы развития Азии сумасшедшие, всё стремительно меняется: если посмотреть, что происходит сейчас и что было 10 лет назад — просто небо и земля.

Ездили в ЮАР дважды — всё благодаря жизни в Сингапуре. Это мыс Доброй Надежды — мечта детства на него залезть

Одна из знакомых русских иммигрантов, которая успела пожить ещё и в Германии и Канаде, поделилась мыслями про переезд: в Европе мы гастарбайтеры, а в Азии — экспаты. Согласен, разница очень заметна, быть «понаеханным» в Азии достаточно комфортно. Когда спрашивают, чувствую ли себя здесь чужим, не очень понимаю, что значит «чужой»? А в Европе чувствуешь себя «своим»? Сложности с интеграцией возникают в любой стране, а дальше всё зависит от того, насколько тебе лично нужно и хочется интегрироваться.

В Сингапуре с адаптацией не так плохо, это в Корее встроиться в общество не получится от слова совсем. Да и возникает вопрос: оно тебе надо? Скорее всего, и самому не захочется: пока жил полтора года в Сувоне, что в 30 минутах езды от Сеула, в конце контракта уже считал дни до его окончания. В качестве опыта проживания в другой стране — это было любопытно и крайне полезно. Но любая коммуникация в Корее идёт по другим принципам, страна как другая планета.

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

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

О чём стоит знать до переезда в Сингапур

Все цены ниже приводятся в сингапурских долларах: SGD. Для перевода в USD надо умножить на ~ 0.75, курс относительно USD стабильный.

Нам с женой в Сингапуре скорее нравится, но, разумеется, это очень индивидуально, и страна для переезда подойдёт не всем. Я бы выделил такие сложности:

  • Образование детей — мероприятие недешёвое. Это касается тех, кто планирует задержаться в стране надолго. В Сингапуре два типа школ: государственные и частные. В государственные в первую очередь попадают дети граждан и Permanent Residents (PR), экспатам достанутся оставшиеся места. Если ребёнок не вундеркинд, чтобы попасть в государственную школу, где придётся столкнуться с огромным конкурсом на место, то остаются только частные школы. А на частные школы будет уходить много денег: они дорогие, в среднем 30,000 SGD в год. Подробнее про плюсы и минусы PR говорим ниже.
  • Не всем климат покажется комфортным. Тут довольно жарко, днем 30–33° C, ночью — 26–30° C при влажности 80–90 %.
  • Машины очень дорогие из-за заградительных пошлин, и их содержание не менее дорогое. Машина уровня Короллы обойдется в 120К, её парковка в городе — ещё 3–20 долларов в час, а месячный абонемент на парковку будет около 150–200. Компенсируется тем, что ехать на машине банально некуда, общественный транспорт очень хороший, а такси дешёвое — 10–20 SGD.
  • Медицина дорогая. Поэтому если у вас плохое здоровье, этот фактор нужно учитывать. Про медицину ниже.

Как искать работу

Всё просто: вакансии искать на LinkedIn. Ищут много фронт- и бэкенда. Крайне популярны Java, Go, JavaScript, бывает интересное на C++, потому что есть много вакансий в области робототехники и HFT.

Тут есть R&D у довольно большого количества разных проектов: много банков и HFT, есть Grab и GoJek — сильно более развитые аналоги Убера, имеют собственные платежные системы и кучу другого функционала, Lazada — местный Амазон, Ubisoft — которые пилят Assassin’s Creed, Acronis, Autodesk, ByteDance, Tencent, Motional, Bosch и куча компаний поменьше, ну и конечно, гора стартапов. Присутствует FAANG, но активно разработкой не занимается, хотя позиции иногда проскакивают.

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

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

Все российские интервью обычно сводились к теории, разговорам, иногда тестам на листочке. В Сингапуре обязательно будет либо тестовое задание (встречается нечасто), либо решение задач в онлайн-среде для программирования типа LeetCode, либо и то, и другое по очереди. Некоторые дают тестовые задания домой — например, в моей компании предпочитают такой вариант.

Тестовое задание до первичного собеседования с рекрутером — типичная практика в Сингапуре. Присылаешь резюме, а в ответ — отбивка: сначала завершите тест, потом будем говорить.

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

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

Многие компании перевозят и сейчас, в ковидные времена. В Motional точно нанимают и перевозят людей из разных стран даже сейчас.

Сколько будет получать разработчик и сколько — отдавать налогами

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

Комфортный уровень жизни начинается от 10,000 долларов в месяц. Тут это типичная зарплата свежепонахавшего разработчика уровня сеньор. Для уровней ниже — не знаю 🙂

Обязательные расходы на двоих:

  • аренда 2.5–3.5 тысяч долларов,
  • 1,000 долларов на питание, одежду, транспорт и всякие мелочи.

Всё остальное зависит от индивидуальных фантазий и потребностей.

Минимальный порог зарплаты для получения рабочей визы — 4,500 SGD для одиночек и 6,000 SGD для тех, кто с семьёй. Но за такие деньги едва ли кто-то решится переезжать. При этом сам по себе Сингапур — не дорогой для проживания, хотя и постоянно попадает в рейтинги городов с самой высокой стоимостью жизни. Это справедливо, только если учитывать расходы на личный автомобиль. Но, как я говорил, он и не понадобится: общественный транспорт отличный, за 10–20 долларов на такси можно доехать в почти любую точку города.

Налоги в Сингапуре — это на самом деле просто. Налоговая система прогрессивная, ставка начинает быстро расти после дохода 200,000 SGD в год. Но растёт только для того, что превышает сумму.

Источник и налоговый калькулятор на сайте правительства

В принципе типичный годовой доход программиста колеблется между 120–220 тыс. в год, с него эффективная ставка будет 8–12 %, можно округлить до 10%. Именно эффективная — с какой-то суммы заплатишь по максимальной ставке — 18 %. Все компании — с исключениями не сталкивался — платят раз в год премию 10–15 % годового дохода, бывают RSU, но совсем не такие впечатляющие, как в Долине. Поэтому зарплату, о которой договариваетесь, можно рассматривать как чистый доход, налог будет покрыт за счёт премии.

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

Что требуется для переезда

Что нужно сделать — найти работодателя. Рабочая виза делается за 2–4 недели. Из документов понадобятся только загранпаспорт и перевод диплома, плюс заполнить анкету на 4–5 страниц. Подавать документы на визу компания будет самостоятельно.

Для работы супруга/супруги придётся получить рабочую визу по аналогичному процессу. Наличие рабочей визы у одного из супругов не даёт второму права работать.

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

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

Где искать жильё

Все квартиры ищутся тут: https://www.propertyguru.com.sg/

Есть два типа аренды.

HDB (Housing and Development Board) — государственное жильё, в таком обитает около 80 % населения Сингапура. HDB можно сравнить с российской застройкой эконом-, иногда бизнес-класса, но с 3–5 спальнями. Идея в том, что в такой квартире живут несколько поколений вместе — практика довольно распространенная в китайской культуре.

Проходя мимо HDB эконом-класса 🙂

Есть кондо — в них живут оставшиеся 20 %. Сравнить не с чем, в РФ такого банально не строят. Кондо — изолированная территория с бассейнами, сауной, спортзалом, барбекюшницами, теннисными кортами, баскетбольной площадкой, парковкой, детской площадкой, многофункциональной комнатой для собраний и другими радостями жизни.

Вид из окна на придомовую территорию

Экспаты обычно живут в кондо, в среднем это 2.5–3.5 тыс. долларов за квартиру с 2–3 спальнями, совсем в центре будет 3.5–6.5 тысяч, но само собой есть опции и за 15 тысяч. Цена зависит от того, как далеко оно располагается от центра и насколько новое: в старом жить не понтово, и кондо сильно теряет в цене за первые 5–10 лет после постройки. В аренду входит 1–2 парковочных места вне зависимости от того, есть ли машина или мотоцикл.

Как обстоят дела с медициной — три уровня

  1. GP (General Practitioner) — это терапевт, его задача — выдать таблеток и не пустить вас дальше. Если идти к GP, которого часто посещают иностранцы (рядом с офисными зданиями, к примеру), то он выпишет направление к специалисту по первой просьбе. Если врач занимается в основном местными, то направления сразу не даст, даже если попросить — сначала попробует сам лечить. Направление даст на второй визит, как поймёт, что не справляется. Часто GP достаточно, он с ходу готов отсыпать антибиотиков для наиболее распространённых проблем.
  2. Специалист. Никак препятствий попасть к специалисту сразу нет. Но страховая не оплатит его посещение, если нет направления от GP или если это не повторный визит. Сам приём обойдется в ~150 SGD.
  3. Следующий уровень — госпитали. Сюда уже строго по направлению специалиста или в случае острой необходимости — в emergency. Цены относительно России высокие, средней сложности операция плюс 3–4 дня реабилитации в госпитале обойдутся в 25–30 тысяч.

Страховка оплачивается работодателем. Обычно работает по принципу оплаты до определенной суммы — кроме GP и базовых анализов по назначению GP: это на 100 % покрывается.

Типичные суммы годового покрытия: 100% покрытие GP в любом количестве, до 3 тысяч долларов на специалистов + исследования типа МРТ, и до 25–35 тысяч на госпитализацию. Таким образом, можно один раз в год что-то более-менее серьёзное вылечить за счет страховки, дальше платишь сам.

Медицина хорошая, экстренная медицина — очень хорошая. Попасть на прием к GP гарантированно можно сегодня, к специалисту — обычно сегодня-завтра, в худшем случае — послезавтра. На планирование операции надо закладывать неделю и больше. А emergency — как и следует из названия — «вот прямо сейчас».

Долгосрочные перспективы проживания в стране

Оставаться на ПМЖ можно, но есть последствия.

Появятся дополнительные страховые отчисления на сумму 1,200 долларов — это возможный максимум. Сумма отчислений колеблется в зависимости от дохода, но максимум выплат начинается с зарплаты в ~7,000 долларов в месяц, которые вернут, если отказаться от PR (Permanent Resident).

Для получения гражданства надо сначала стать PR, пожить с ним какое-то время, отказаться от всех остальных своих гражданств и податься на сингапурское. Я не подавался пока на PR, потому что не видел в этом смысла. Может, подамся, мир времен ковида стал довольно безумен, а Сингапур тянет на островок спокойствия.

Плюсы и минусы Permanent Resident (PR)

  • В общем случае, PR платят отчисления в медицинский и пенсионные фонды (1,200 SGD), работодатели добавляют столько же, и этой суммой можно пользоваться для оплаты медуслуг при соблюдении ряда правил.
    Но некоторые работодатели, если ты не PR и не гражданин, предлагают открыть инвестиционный аккаунт, с которого нельзя снять деньги, пока работаешь в компании. Сотрудник кладёт туда 1,200 SGD, и они сверху столько же. Но это относительно редкая схема.
  • Если увольняют человека без PR, у него есть только месяц, чтобы найти работу или уехать из страны. Резиденты могут искать новое место столько времени, сколько потребуется.
  • Все дети мужского пола PR обязаны служить в армии. Моё личное отношение к ней двоякое. Судя по рассказам, современная служба в Сингапуре больше похожа на пионерлагерь: раз в неделю проводятся опросы, насколько новобранцы довольны жизнью и всё ли им хватает, а кто-то из местных недавно возмущался в духе «почему нашим детям в армии не дают салями». Про дедовщину не слышал ни разу. Забавно, но это хороший вариант для нетворкинга — тут, как в Швейцарии, все равны, откосить невозможно: рядом с тобой может служить сын мэра. Из минусов — тратится на службу два года, а потом ещё на сборы ездить.

В общем, поэтому большинство экспатов не парится и PR не оформляет, выгоды оно не приносит почти никакой. С оформлением интересно: набор документов простой, как для визы. Заполняешь анкету, прикладываешь выписку со счёта в банке, просишь дать PR. Его могут выдать через 4 месяца после подачи заявления, а могут и через 2 года отказать — и причину не объяснить. Знаю людей, которые подавались по 4–5 раз, и всё безрезультатно.

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

Впечатления от переезда в Сингапур

Жизнь тут — спокойная, стабильная. Развлечения в околокитайском мире — всегда про торговые центры и потребление. Забежал что-то купить в ТЦ, натыкаешься на праздно слоняющиеся толпы. Есть хорошие парки, можно пойти на море.

Историческая и современные части города переплетаются довольно тесно

Локдауна как такового нет, в отличие от большинства стран, но нужно обязательно носить маски во всех общественных местах. И главное — маски реально носят все, не выполнять требования правительства — слишком дорого. Первый раз поймают — 300 SGD штрафа, второй раз — 10,000 SGD и/или полгода тюрьмы. Пару раз в начале карантина такие случаи были — теперь все ходят в масках. При этом въезд и выезд из страны ограничены, туристов нет, отдохнуть в отпуск никто и никуда не едет.

Из-за больших денежных штрафов тут все строго соблюдают законы — и паркуются аккуратно, и аккуратно по дорогам ездят. Например, за год-два можно набрать ограниченное количество штрафов из-за серьёзных нарушений. На минуточку, очень серьёзным нарушением считается превышение скорости на 20 км/ч: взыщут 150–200 долларов. Если критическое количество штрафных баллов набрано — отзывают права.


Любое граффити согласовано, иногда доходит до довольно абсурдных ситуаций когда «граффити» сначала распечатывают, а потом приклеивают. Это рисунок на стене ресторана в исторической части города.

До ковида мы весело разъезжали по миру, а сейчас всё довольно рутинно. Путешествовать было удобно, потому что Сингапур крупный хаб, и, как следствие, билеты стоят копейки. У нас было около 10 туристических поездок в год, объехали полмира. Типичный отпуск — 20 дней, плюс рождественская неделя за счёт работодателя, куча государственных выходных — так что отпуска хватало.

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

Бонус: что попробовать, если окажетесь в Сингапуре

В Сингапуре 85 % — это китайцы, поэтому много китайской кухни. Моё любимое — чили краб, это именно что местное сингапурское блюдо. Несмотря на то что в названии есть «чили», она не очень острая, но очень вкусная. И максимально традиционная: тут, когда только прилетаешь, в зоне выдачи багажа тебя гигантские красные крабины встречают.


Двухметровый чили краб, встречающий в аэропорту Чанги. Источник

На последнем, 33 этаже одного из самых «понтовых» бизнес-зданий Сингапура находится прекрасная пивоварня с демократичными ценами. Да, они именно варят пиво на месте, можно записаться на экскурсию!

Итого

  • Основной вывод: тепло, снега нет, а ощущение стабильности есть.
  • Сингапур — не большой город, а маленькая страна. Это очень важный момент, потому что деревня и «деревенский менталитет» зачастую присутствуют. Внешним видом делового центра обманываться не стоит.
  • По сравнению с Москвой или Питером — культурная жизнь крайне скудная. Ничего похожего на Большой, Третьяковку, Винзавод, Галерею братьев Люмьер нет и ожидать не надо.
  • Поначалу удивляет, что уровень сервиса в госучреждениях Сингапура невероятно высокий: несравненно выше того, к которому мы привыкли в Москве. А вот в частных компаниях он ниже привычного московского.

<рекламная пауза>
По статистике g-mate, минимум 30–50% работодателей готовы рассматривать удаленку, а релокейт среди локаций на второй месте по популярности. И надоевший всем коронавирус — не препятствие: за время пандемии и в России, и за рубежом наём ускорился в 3 раза.
Регистрируйтесь в @g_jobbot, подходящие вам вакансии с релокейтом будут приходить в Телеграм.
</рекламная пауза>

ссылка на оригинал статьи https://habr.com/ru/company/gms/blog/545754/