воскресенье, 27 декабря 2015 г.

Получение визы в США - Визит в посольство


Вход в посольство

Следующий шаг в получении визы это визит в посольство. К вашим услугам посольства США в Москве, Санкт-Петербурге, Владивостоке и Екатеринбурге. Я проходил собеседование в Москве, поэтому весь мой опыт относится именно к этому варианту. Скорее всего в остальных городах все без изменений.

Один из самых важных моментов - не берите с собой в посольство никакой техники. Максимум, что можно без проблем иметь при себе - это телефон / смартфон. Его вы можете сдать на хранение при входе в посольство. Никакую технику на территорию посольства проносить нельзя, и если для телефонов еще есть "камера хранения", то куда деть остальные вещи - это ваша личная проблема. Отдельная "любовь" у посольства к наушникам. Их тоже проносить нельзя, даже затычки. Сам видел несколько экземпляров наушников, висящих на заборе вокруг посольства.

Итак, с собой в посольство вы берете комплект документов, телефон и бумажную книгу/газету по желанию. У вас на Appointment Confirmation будет указано время, на которое вас записали. Похоже оно значения не имеет, я сам опоздал минут на 40 и вроде на мое время никто не обращал внимание. Не рекомендую злоупотреблять этим знанием, но возможно вам это сэкономит немного нервов.

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

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

Теперь вас ждет следующий пункт досмотра - метало детектор для вас и рентген для сумки. Все как в аэропорту. Теперь вы в посольстве.

Прохождение квеста в посольстве

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

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

Сдача отпечатков пальцев. Прикладывайте Appointment Confirmation к стеклу, так чтобы сотрудник мог сканировать ваш штрих-код. После этого вас попросят по очереди приложить пальцы вашей руки к сканеру - правые четыре, левые четыре и два больших. Внимательно слушайте, что вам скажет сотрудник - она вам назовет зал, где будет проходить собеседование. Залов несколько и в каждый своя очередь. Очень многие люди, в том числе и я пропускают номер зала или забывают его. Если вы забыли - идите в главный зал смотреть на общее табло, либо направляйтесь в любой из залов для собеседований и ищите там сотрудницу посольства.

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

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

Итак, консулу нужен ваш Appointment Confirmation. Консул extremely polite и скорее всего будет задавать общие вопросы о вашей поездке:
  • когда вы планируете поехать
  • куда конкретно
  • зачем
Я получал B1 / B2 визу и ехал к заказчику, поэтому меня спросили где я работаю, как долго и зачем еду в США. Есть несколько рекомендаций по общению с консулом:
  • Отвечайте на вопросы консула предельно четко. Не вдавайтесь в детали.
  • Предоставляйте дополнительные документы только по запросу. Не пытайтесь сразу всучить всю пачку документов. В 80% случаев консул запрашивает только Appointment Confirmation и ваш загранпаспорт.
  • Не врите и не нервничайте. Это самый лучший путь к проблемам.

Вам повезло

 В 80% процентах случаев консул после 3-8 минут разговора с вами принимает положительное решение о визе. В этом случае он явно сообщает вам, что принято решение выдать вам визу и она будет готова через 2-3 дня. Ваш паспорт остается в посольстве и вы не получаете никакого документа об этом факте. Свой паспорт с вклеенной визой вы получите курьерской службой Pony Express на адрес, который вы указали при заполнении анкеты. Услуги Pony уже входят в стоимость консульского сбора.

Вам не повезло

В определенном проценте случаев консул принимает решение отказать в выдаче визы. Я свидетелем таких случаев не был, поэтому не представляю как это происходит. Согласно информации в интернете - все что вас волнует в этом случает, это статья по которой вам отказали в визе. В зависимости от статьи определяется ваш шанс на повторную попытку. Отдельные статьи имеют определенный период "карантина", когда вы не можете подавать заявку повторно. А есть и пожизненные запреты. Но они редки и выдаются в исключительных случаях.

Все только начинается

А еще есть третий вариант развития событий, он называется "Administrative Processing". Означает это дополнительную проверку. В моем случае консул сказал: "Все хорошо, но я не могу выдать визу прямо сейчас. Пройдите в окно номер 1". При этом она:
  • возвращает вам ваши документы
  • выдает картонку с цифрой 1
  • выдает дополнительный бланк (я был немного обескуражен и даже не посмотрел что это за бланк)
Случается это не часто, но за 25 минут ожидания я видел несколько людей с такими "единицами". С этого момента у вас начинается новое приключение под названием "Administrative Processing" и о нем я расскажу в третьей части статьи.

В качестве послесловия

Статус вашей заявки вы всгда можете узнать на странице Consular Electronic Application Center, при этом Location выбирать не обязательно.

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

вторник, 15 декабря 2015 г.

Получение визы в США - Подготовка документов

Это серия материалов о моем опыте получения визы в США. Надеюсь она поможет вам найти ответы на ваши вопросы, о собратьям по "Administrative Processing" сэкономить нервы а может и время. 



В декабре мне по работе потребовалось оформить визу (Non-imigrant) в США. Россиянам обычно дают визу класса B1/B2, который является комбинацией tourist/business в привычном нам Шенгене.

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

Для оформления заявление необходимо пользоваться сайтом Consular Electronic Application Center. На сайте необходимо заполнить достаточно стандартный опросник DS-160 и приложить электронную фотографию. В качестве источника подсказок я использовал статью с одного из сайтов посвященных программе Work And Travel.

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

После заполнения анкеты DS-160 вы должны оплатить консульский сбор 120$. У консульства заключен договор с банком Русский Стандарт, поэтому вам предоставят ссылку на специальный портал для оплаты консульского сбора. Быстро и удобно. В стоимость консульского сбора также входит доставка паспорта с визой курьерской службой Пони Экспресс.

Заполненная анкета, Оплаченный консульский сбор - это все. Следующий шаг - это назначение очного интервью в консульстве.

С собой на интервью обязательно нужно брать следующие документы:
  • Свой загранпаспорт (и аннулированные загранпаспорта, если есть)
  • Свой российский паспорт
  • Appointment confirmation
Это весь список обязательных документов. Часто их достаточно для принятия консулом решения. Да, вы правы - в этом списке нет ни билетов, ни брони гостиницы. Консульство США официально не рекомендует покупать билеты / бронировать гостиницу до получения визы.

Список документов, которые достаточно часто пригодятся вам:
  • Invitation letter (особенно если вы указали что едете по работе)
Дополнительные документы (на всякий случай):
  • Confirmation after completion of DS 160
  • Reference from work 
  • Salary reference (НДФЛ-2)
  • Confirmation of consulate fee payment
  • The documents that would confirm your non-immigrant intentions
    • diploma (copy)
    • documents for any property you have (only if you’re the owner)
    • bank statement
Пока я ждал своей очереди в посольстве я не видел ни одного случая, когда консул попросил-бы что-то более чем Invitation letter. С другой стороны будет очень грустно, если вас попросят предоставить какой-либо документ и у вас его не окажется. Вам скорее всего не откажут, но попросят дослать этот документ курьерской службой. Это удлинит рассмотрение вашего дела минимум на неделю.

Теперь вы готовы к поездке на очное интервью. Но об этом во второй части.

среда, 18 марта 2015 г.

Python: Простое кэширование для вашего метода

При написании небольшой утилиты на Python потребовалось оптимизировать взаимодействие с внешней системой (получение имени организации по её id). Очевидно, что простейшим решением будет кэширование результатов. А простейшим решением будет использование dict / или его аналога.

Прежде чем написать свой кэш на dict (у меня все работает в один поток) заглянул на StackOverflow и совсем не зря: Is there a Python caching library?. Вопрос очень старый, но содержит очень интересный ответ:

from functools import lru_cache

@lru_cache(maxsize=256)
def f(x):
  return x*x

Я надеюсь этот snippet пригодится не только мне.

ps: В HighLoad production режиме я его использовать не рекомендую, но для повседневных утилит подходит.

воскресенье, 23 июня 2013 г.

Log4j, Blitz4j и все-все-все

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

Logstash - нам не подощел из-за особенностей нашей сетевой инфраструктуры, поэтому делаем собственное решение.

Одной из частей этой системы является сервис записи логов в файловое хранилище на локальный диск. Данное требование появилось в связи с необходимостью быстро писать большие объемы логов (INFO, DEBUG) для последующего разбора. По сети DEBUG логи передавать очень тяжело - объемы слишком большие.

Вот о сервисе локальной записи и варианте его реализации с помощью Blitz4j я и расскажу. Возможно вы уже слышали / читали о Blitz4j. Это "Logging framework for fast asynchronous logging" от команды Netflix, подробнее можно узнать в их статье Announcing Blitz4j - a scalable logging framework. К сожалению на этом информация о библиотеке заканчивается.

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

Если внимательно читать статью в инженерном блоге Netflix, то становится понятно что Blitz4j это не самостоятельный framework для логирования. Это расширение Log4j, которое заменяет и дополняет часть его внутренней реализации собственными версиями классов. В основном внимание было уделено многопоточной работе и устранению блокировок внутри Log4j. Для этого в том числе активно использовали новые наработки из java.util.concurrent и guava.

Т.е. мы
  • пишем обычный логгер с использованием Log4j
  • добавляет в classpath blitz4j и еще немного зависимостей (например servo)
  • изменяем конфигурацию Log4j
и надеемся на профит.

Blitz4j предоставляет возможность обернуть существующие Log4j appenders в специальный асинхронный wrapper. Важные возможности, которые он дает:
  • внутренний промежуточный буфер сообщений, в который сохраняются поступающие сообщения
  • встроенная возможность группировки сообщений при наступлении проблемных ситуаций, когда не успеваем писать поступающие сообщения на диск
    • к сожалению результат группировки сообщение отражает только сам факт группировки. Восстановить потерянные данные невозможно.
  • набор ручек и кнопочек для тюнинга
На своем тестовом стенде переход на Blitz4j позволило мне получить прирост в 30% сообщений, записываемых в секунду (при 20-100 потоках генерации сообщений). При этом при постепенном росте количества потоков с 20 до 100 Blitz4j обеспечивает более ровный response time.

Итог

Вам стоит посмотреть на Blitz4j, если вы:
  • пишете логи локально
  • с помощью Log4j
  • из 10 и более потоков одновременно
  • используя стандартные FileAppender / RollingFileAppender
Нам пришлось от данного решения отказаться - blitz4j работает со статической конфигурацией. А мы в свою очередь активно создаем и конфигурируем новые logger и appender в runtime (для каждого компонента системы). Скрестить это с blitz4j пока не получилось. Но если мы упремся в скорость записи логов - мы вернемся к этому решению.

среда, 26 сентября 2012 г.

Как подружить Eclipse + GlassFish 3.1.x?



  Oracle в наследство от Sun получило неплохой сервер приложений GlassFish. С версии 3.1.x GlassFish полностью реализует Java EE 6, что позволяет при разработке использовать EJB 3.1 и прочие прелести современного enterprise.

  Гугл нам подсказывает что для интеграции Eclipse и GlassFish 3.1 есть специальный плагин Oracle GlassFish Server Tools. К сожалению сайт этот не обновляется, а предложенный плагин из коробки не видит инсталяции GlassFish версии 3.1.x. Причиной проблем является переименование библиотек jsf, проблема описана на stackoverflow: Glassfish 3.1.2 and Eclipse

  На самом деле оказывает Oracle GlassFish Server Tools потихоньку развивается и есть версия 2.0.1. За это нам надо сказать спасибо Vince Kraemer и Peter Benedikovic, свежая версия доступна в update site по ссылке: http://download.java.net/glassfish/eclipse/juno

  А узнать про результаты работы над этим плагином в блоге: Internal 3.1.2 runtime plugin for Eclipse available

 

понедельник, 9 января 2012 г.

Пишем расширение для Mylyn. Основа расширения

   Итак, мы настроили окружение для разработки на базе Mylyn framework и теперь можно приступать непосредственно к созданию скелета нового плагина. Я рассчитываю что у вас уже есть базовое понимание внутренней архитектуры Eclipse и использования OSGI. Для ознакомления с основами рекомендую почитать заметки Павла Смолысова о Equinox.

   В рамках этого цикла статей мы напишем коннектор к выдуманной Bug Management System (BMS): TTrac. Это позволит нам сконцентрироваться на реализации плагина, а не реализации конкретных особенностей протокола BMS. За основу мы возьмем коннектор org.eclipse.mylyn.trac, который входит в состав Mylyn и обеспечивает интеграцию с популярной системой управления проектами Trac

понедельник, 2 января 2012 г.

Осваиваем Eclipse. Пишем расширение для Mylyn. Окружение

Mylyn - это подпроект Eclipse, который предоставляет framework для реализации task and application lifecycle management (ALM). Что за хитрый термин этот ALM?


ALM это сокращение для термина - управление жизненным циклом приложения: от сбора требований до поставки. Простейшим случаем (и наиболее распространенным) является управление багами или задачами (issue/bug management system).

Mylyn предоставляет framework, который позволяет вам прямо из Eclipse:
  • управлять багами в вашей bug management system (например trac или bugzila)
  • сохранять и открывать историю изменений кода связанную с конкретным багом
  • видеть результаты сборки билда
  • и много другое
Более подробно о возможностях Mylyn я расскажу позже, а сейчас я хочу рассказать как настроить окружение разработки для работы и исходным кодом Mylyn.
Основой для этой статьи послужил Mylyn/Contributor Reference, но я взял на себя смелость пересказать это по русски и с пояснениями.

Осваиваем Eclipse. Пишем расширение для Mylyn. Введение


Все Java разработчики знают о существовании 3х самых популярных Java IDE:

Каждая эта среда имеет свою историю, достоинства и недостатки, и конечно армии поклонников. Важно другое уже минимум 2 года эти продукты стали не просто программами, а платформами для построения приложений.

Это позволило использовать базовые возможности этих IDE для разработки приложений:
  • своих IDE (IBM RAD, PyCharm, ...)
  • standalone приложений
  • распределенных приложений
  • и многого другого
Для меня наибольший интерес как платформа представляет именно Eclipse и причин для этого сразу несколько:
  • я использую Eclipse в повседневной работе
  • полная открытость исходного кода модели разработки
  • очень богатая инфраструктура платформы (GUI, ECF, OSGI, ...)
  • большой объем существующих разработок
И надо сказать что Eclipse как платформа меня интересует уже не первый год, но Eclipse проект очень большой и очень сложный поэтому освоение идет медленно и осторожно. За последние 2 года я немного познакомился с OSGI как платформой для построения распределенных приложений, в прошлом году принял участие в исправлении некоторых багов (так и не приняты в upstream), с интересом читал заметки Павла Самолысова aka Бывшего сурового челябинского программиста.

И в этом году решил сделать суровый рывок и написать для компонента Mylyn собственный коннектор для доступа к багам из внутренней Issue Tracking System моей компании. Именно этому будут посвящены следующие несколько заметок в блоге.

среда, 16 февраля 2011 г.

WebSphere: Реальное использование планировщика WebSphere 7.0

В одной из прошлых статей я уже рассказывал как использовать встроенные планировщик WebSphere.Сейчас я хочу вернуться к этому вопросу и показать практический пример из реальной жизни.
А в реальной жизни нам потребовались следующие возможности планирования:
  • - Планировать произвольные задачи (EJB 3.0 бины)
  • - Передавать задачам параметры выполнения

пятница, 26 ноября 2010 г.

WebSphere: Используем сервис планирования WebSphere 7.0 из EJB 2.1


В последнее время по своей работе мне приходится много общаться с WebSphere 7.0. Т.к. зверь это тяжелый и малоизученный - я буду временами публиковать интересные заметки из нашей с ним совместной жизни.

Сегодня я хочу рассказать о сервисе планирования, который есть в WebSphere с 6ой версии. Основой данной статьи является Using a WebSphere Scheduler.

Я адаптировал данную статью для WebSphere 7.0 под управлением ОС Windows, исправил ряд недочетов автора, описал несколько присыпанных листьями граблей и главное выложу исходный код классов, которые оригинальный автор выложил в виде картинок.

Данная статья промежуточная для стадии получения первого рабочего прототипа, в следующей статье я планирую написать продолжение с переходом на EJB 3.0 и примером из реальной жизни.

Нашей целью будет научиться использовать встроенный в WebSphere сервис планирования для планирования наших собственных задач.