Уже чуть больше полугода я работаю в поиске Яндекса релиз-инженером. И чуть ли не с первого рабочего дня хочу написать о том, как отзывалась на вакансию, как проходила собеседования, что мне в этом процессе понравилось, а что — не очень. Но сначала я входила в курс дела, а потом каждый день в моей работе появлялись такие интересные задачи, что я даже не была готов отвлечься от них на этот рассказ.
А еще год назад у меня в жизни была вроде бы похожая, но в то же время совсем другая ситуация — времени на хобби не хватало, задач было много, но они не приносили мне никакого удовольствия. В итоге я решилась на перемены. На самом деле, эта позиция в Яндексе не была первой, которую я рассматривала. За то время, которое прошло до моего первого рабочего дня, я освежила в голове очень много тем. И перед финальным собеседованием мне пришлось взяться ещё за несколько. Сейчас я понимаю, какие ошибки совершила в этом процессе, поэтому хочу поделиться своим опытом с вами. Буду рада, если кому-то это будет полезно. Хочу сказать, что это не официальные рецепты от рекрутеров Яндекса, а только мои собственные выводы. В конце поста я поделюсь списком литературы, которая мне помогла в подготовке, и еще добавлю те источники, которые считаю полезными, оглядываясь назад.
В статье описываются возможные проблемы, которые могут возникнуть при модификации повторно используемых компонентов. Также приводятся рекомендации, как эти проблемы избежать. Перевод является вторым в серии (один антипаттерн — одна статья), ссылка на первый перевод находится в конце статьи.
Наименование: Dead End (тупик) Другое наименование: Kevorkian Component (мертвый компонент)
Суть проблемы
Антипаттерн «тупик» получается в результате модификации повторно используемых компонентов, если компонент больше не поддерживается и не сопровождается его поставщиком. После внесения изменений в компонент, бремя его сопровождения перекладывается на разработчиков прикладной системы. Улучшения в повторно используемом компоненте не могут быть легко интегрированы а сделанные изменения могут стать причиной проблем при его поддержке.
Предмет интереса этой публикации — считывание и декодирование данных со второй дорожки банкоматовской карточки в условиях дефицита оборудования и средств.
Для начала приведу сухие теоретические знания. Если теория не интересует — можно пропустить.
Так получилось, что в команде проекта Embox у меня больше всех опыта в области АСУ: на предыдущем месте работы я разрабатывал промышленные контроллеры. Поэтому не удивительно, что когда возникла задача сделать систему автоматического управления светодиодами в датацентре, именно меня попросили проработать архитектуру проекта. Изначально планировалось закупить готовые контроллеры удаленного управления портами ввода-вывода, но после более тщательной проработки требований стало ясно, что для заказчика более предпочтителен вариант разработки заказного контроллера. Собственно его вы и видите на фотографии.
Тем, кому интересно узнать о том, на какие грабли мы наступили, как выглядят взорвавшиеся микросхемы, как правильно подключать землю на DC/DC конвертере, ну и, конечно, почему мы применили наш проект, прошу под кат. Осторожно, много картинок!
Наверное не ошибусь, если предположу, что какая-то часть хабра-сообщества помнит это мероприятие, которое проходило в Москве, Киеве, Ростове-на-Дону, Тбилиси, Ташкенте, Иркутске, Магнитогорске, Ленинграде и Минске.
Лично для меня с него началось мое знакомство с высокими технологиями, хотя придя туда, увидел достаточное количество сверстников, оккупировавших компьютеры своими болгарскими 5-дюймовыми дискетами, а как пишет New York Times за 6 июня 1987 года, некоторые уже пытались уломать гидов скопировать им Lotus 1,2,3. Итак,
В своей прошлой статье я описывал возможность управления ПЛК джойстиком и обещал добавить небольшое изменение, связав ПЛК и LabVIEW не через последовательный порт, а через Ethernet (благо, коммуникационные возможности ПЛК100 это позволяют) и при помощи OPC-сервера — в данном случае это Codesys OPC Server. (Кстати, аналогичным образом с LabVIEW можно связать любой другой контроллер — через OPC-сервер, который работает с конкретным контроллером). В этой статье я, собственно, и собираюсь описать, как всё это делается.
Данная статья представляет собой в основном вольный пересказ фрагмента книги Эрика Эванса «Предметно-ориентированное проектирование», в котором он рассуждает о Separate Ways и Bounded Context.
Допустим, есть следующая ситуация: несколько групп разработчиков работают над одним проектом, но решают разные задачи. Например, проект представляет собой конструктор микросхем, и первая команда реализует функциональность прозванивания микросхемы, а вторая – расчётом себестоимости микросхемы. Вопрос: как лучше поступить – 1)позволить обеим командам «вариться в собственном соку», получив на выходе два модуля, код которых практически нигде не пересекается, или же 2)наладить коммуникацию между двумя командами, заставить их работать сообща и получить на выходе единую монолитную систему? На этот вопрос не существует универсального ответа («да» или «нет») и найти ответ в этой ситуации нам поможет аналогия со слоном и мудрецами.
Однажды на моём рабочем столе оказались usb-джойстик и ПЛК (программируемый логический контроллер) фирмы ОВЕН — ПЛК100, при этом на компьютере была запущена среда LabVIEW. Я подумал, что всё это — хотя бы забавы ради — можно объединить, организовав управление ПЛК (его выходами) с помощью кнопок джойстика (позже я решил использовать не просто кнопки, а их комбинации — ВНИЗ, ВПЕРЁД, Y, например).
Как правило, предлагаемые на рынке системы учета рабочего времени и контроля доступа обладают рядом недостатков, которые проблематично решить: передача карт другим сотрудникам, путаница между выбором режимов приход/уход, скопление большого количества персонала на проходных и точках учета. Терминалы с биометрическими технологиями автоматизации решают проблемы лишь частично. При этом компании не имеют юридической силы, обязывающей сотрудника зарегистрировать в терминале свои биометрические данные. В данной статье мы попытаемся обойти эти проблемы созданием системы учета рабочего времени и контроля доступа с использованием UHF RFID технологий и устройств, созданных на основе аппаратной платформы Tibbo Project System. В первую очередь, информация будет полезна автоматизаторам и интеграторам.
С момента старта проекта Masters of Simulation прошло уже три месяца, и у нас есть уже результаты, которыми хотели бы с вами поделиться.
Мы получили достаточно много заявок и были очень рады тому, что эта наша инициатива нашла живой отклик в умах и сердцах инженеров и конструкторов, молодых аспирантов и уже матёрых специалистов. Задачи, которые участники проекта прислали нам в своих анкетах, оказались интересными и, порой, очень неординарными. Был тут и расчет процессов при разрушении конструкций, и расчет композиционных материалов, и высоконелинейные процессы, и многое другое.
Наибольшее продвижение в решении достигнуто по трем следующим анкетам: 1. Задача: смоделировать преднапряжения «куска» бетонной оболочки с потерями на трение и скольжение. Автор: Маркевич Максим Александрович
2. Задача: Моделирование жесткости линейных направляющих и подшипников качения. Для анализа жесткости отдельных узлов (мехатронных модулей) станков Автор: Юсупов Наиль Хамитович
3. Задача: Необходимо получить температурные поля и напряжения в многослойной конструкции при воздействии температурного источника и под действием силовой нагрузки. Автор: Долгополова Наталья Владимировна
Ниже в этой публикации мы приводим детальное описание решения задачи Максима Александровича Маркевича, упомянутой выше.
Жилищно-коммунальное хозяйство одна из самых социально значимых сфер для применения технологий автоматизации. В области назрел целый ряд проблем, которые привели к подписанию федерального закона о создании государственной информационной системы жилищно-коммунального хозяйства. В данной статье речь пойдет о возможности применения технологий Tibbo в подобных проектах.
В данной публикации речь пойдет о разработке комнатной метеостанции на основе аппаратной платформы Tibbo Project System. Гибкость, широкие возможности масштабирования, свободное программирование позволяют использовать приведенное решение как в «домашней автоматике», так и для создания профессиональных систем автоматизации на рынке HVAC (системы приточной вентиляции, кондиционирования, управление климатом и т.п.). В статье показана работа с климатическими датчиками, реле, подключение к программной платформе AggreGate, визуализация параметров на дисплее. Вы увидите, как легко создаются собственные устройства автоматизации используя технологии Tibbo Technology.
Здравствуйте, уважаемые читатели. Стоит сразу оговориться, что данная статья не о том, что хорошо, а что плохо в SDN или каких-то других сетевых технологиях. Мы не яростные адепты программно-конфигурируемых сетей. Мы просто хотим рассказать вам о решениях, к которым мы пришли, разрабатывая промышленные mesh-сети в рамках создания промышленных беспроводных систем связи. Рассказать о возможностях, которые находятся на стыке технологий, позволяя опираться на хорошо проверенные решения и в то же время идти в ногу со временем.
Речь в статье пойдет о той самой OpenSCADA, которая под Linux и с oscada.org.
Зачем:
• потому что SCADA на самом деле достойна внимания и популяризации;
• в некоторых малобюджетных или маленьких проектах просто безальтернативная;
• судя по статьям про АСУТП на хабре, многим читателям АСУТП представляется черной магией, недо-IT или чем-то похожим (ломают несчастный modbus, мучают WinCC, которая и так еле тарахтит… Люди читают и охают: «Как так можно…. дырявое ПО в промышленности», но никого не удивляет ломание Win95 и 6го ослика. Поломали бы LON шифрованный, OPC, OPC_UA…… А WinCC сама расшаривает папку с проектом с именем вида WinCC_Project_xxxxxx при первом открытии + это вы еще не видели как ее плагин к Excel может намертво винду подвесить при неаккуратной вставке ячеек чуть больше, чем он может за раз осилить!) – добавим ликбеза;
Данная статья является продолжением темы быстрых термических процессов, которой я занимаюсь в рамках диссертационной работы. Логично, что после задачи идентификации, которая рассматривалась в предыдущем топике, стоит постараться решить задачу управления процессами такого рода.
Установка представляет собой высокотемпературную водоохлаждаемую камеру, в которой происходит осаждение элементов из металлоорганических соединений на сапфировые подложки. Рост производится при температурах от 550 до 1000 градусов Цельсия и атмосферном давлении. Полученные таким образом полупроводники обладают надежностью и высоким КПД, что позволяет использовать их в космических технологиях.
Вся установка управляется компьютером, на котором стоит Windows с TwinCAT. Все основные электротехнические узлы производства фирмы Beckhoff, посему установка находится под управлением вышеуказанного программного обеспечения. Кстати, в разгар летней жары оказалось, что их электроника весьма чувствительна к комнатной температуре, и сигнал начинает сильно шуметь.
Словосочетание «бизнес-процессы» давно и прочно будоражат мозг всем бизнес-людям и тем, кто с оными сталкивается. В среде заинтересованных считается, что работа по бизнес-процессам — это «стильно, модно, молодежно». Правда, нет никакой гарантии увидеть четкое понимание того, что же это за зверь в глазах собеседника, даже если он и есть настоящий бизнес-человек. А теперь предлагаю представить, какое болото на эту тему квакало в голове среднестатистического разработчика (на примере автора), когда выяснилось, что следующий продукт будет работать по этим самым бизнес-процессам…
Внутри может быть интересно таким же разработчикам, которые еще не представляют, как бизнес-процессы поменяют их жизнь.
В компании, где я работаю, пользователи работают с данными с помощью MS Excel. Основным хранилищем информации является БД Oracle. Отсюда требуется:
Представление отчетов из базы данных в формате Excel
Забирать информацию в виде Excel файлов и заливать её в Oracle
Проблематика:
Работа с Excel, довольно сильно отличается от работы с обычным текстовым файлом. В его ячейках помимо значений могут храниться сложные формулы и данные, загруженные по ссылкам. Так же в колонке с одним типом данных могут встречаться значения других типов. В случае какой-либо ошибки в ячейке информация на листе продолжает оставаться доступной и только у этой ячейки будет статус Error. Есть и другие вещи, которые делают Excel очень гибким и уникальным продуктом для пользователя и не простым для разработчика.
У Яндекса есть офисы в разных городах и даже странах, и это даёт нам много разных преимуществ. Помимо того что каждый может работать из того места, которое ему больше нравится, так складывается, что у разработчиков в некоторых городах есть уникальный опыт, иногда довольно необычный.
Например, в силу исторических особенностей почти все разработчики нашего нижегородского офиса хотя бы какое-то время поработали в компаниях, которые занимались аутсорсинговой разработкой. Я решила воспользоваться этим и спросить у них, чем разработка для внешнего заказчика отличается от работы над своими продуктами в компаниях вроде Яндекса.
Сразу скажу, что в Нижнем сейчас мы в основном работаем над нашими геоинформационными сервисами. Большую часть кода ребята пишут на Java и C++.Кстати, 20 августа в офисе Яндекса в Нижнем Новгороде пройдет C++ Party, на которую можно прийти, если успеть зарегистрироваться.
Уверена, что и многим на Хабре есть, что сказать на тему нашего опроса. Так что пишите, что сами думаете, в комментариях, даже если вы считаете, что сам вопрос надуман. Как всегда под катом полная текстовая версия ответов.
Как уже писал в предыдущем хабрапосте, я получил работу программиста в области управления воздушным движением и хотел бы немного разбавить засилие мобильных и десктопных приложений и познакомить хабровчан с основами УВД (не путать «управление воздушным движением» с «управлением внутренних дел»), некоторыми особенностями и решаемыми задачами, надеюсь это будет интересно.
Этот пост будет содержать, в основном, теорию, которая может быть прочитана в Википедии, нагуглена или вычитана в какой-нибудь книге. Однако я постараюсь обобщить и наглядно показать, какие задачи приходится решать на земле людям и компьютерам, пока вы едите содержимое своего ланчбокса на высоте 10000 метров. Если вы все еще хотите узнать, для чего это вообще нужно — добро пожаловать под кат.