Category: работа

Category was added automatically. Read all entries about "работа".

я в рубашке

Тестовые задания. Эпизод 2.

Раньше я уже писал про то, как корейца на работу принимал
Тогда я придумал для него тестовые задания, а он не пришел.

В этот раз меня попросили придумать задания для людей, приславших свое резюме в нашу компанию.

И вот результат:

Задание 1:

Здравствуйте,

Цель тестового задания - проверить ваше знание основ ООП, языка C++ и технологии DirectShow, а также умение искать информацию.

Необходимо написать DirectShow фильтр.

Общие требования к фильтру:
1. Это должен быть source filter и он должен регистрироваться в категории Video capture source
2. У него два выходных пина: аудио и видео.

Свойства аудио пина:
1. На странице свойств аудио пина можно выбрать число аудио каналов (стрео/моно), частоту самплов, количество бит на самп, можно поменять форму аудио сигнала (синусоида, пила и тд. разновидности сигналов можно посмотреть здесь http://en.wikipedia.org/wiki/Sawtooth конкретнее http://en.wikipedia.org/wiki/File:Waveforms.svg)

Свойства видео пина:
1. Видео пин должен выводить телевизионную испытательную таблицу (http://en.wikipedia.org/wiki/Test_card) следующего вида ( http://en.wikipedia.org/wiki/File:SMPTE_Color_Bars.svg (рекомендуется) ) или ( http://en.wikipedia.org/wiki/File:EBU_Colorbars.svg )
на испытательную таблицу должен накладываться прыгающий мячик (bouncing ball), в углу должны выводиться текущее время и количество показанных кадров.
2. На странице свойств можно задать видео стандарт в котором будет выводиться изображение (PAL, NTSC, HD (720p, 1080i), custom)
и большим плюсом будет добавить возможность выбора из различных цветовых пространств (RGB32 (ARGB), YUY2, UYVY ( http://en.wikipedia.org/wiki/YUV ) )

Дополнительные задания (их реализация существенно повышает ваши шансы на трудоустройство в нашей компании):
1. Сделать страницу свойств фильтра "About", в которой выводить текущую версию фильтра, картинку (например, ваше фото), ссылку на сайт.
2. Фильтр должен удовлетворять условиям live source (http://msdn.microsoft.com/en-us/library/dd390645(VS.85).aspx) и работать в таких программах как Skype, OOVOO
3. Страницы свойств поместить в двух местах: как страницу свойств фильтра и как страницу свойств отдельного пина.
4. Реализовать поддержку как VIDEOINFOHEADER, так и VIDEOINFOHEADER2
5. Сделать невозможным делать изменения на странице свойств, если один из пинов уже соединен, либо граф не стопнут.
6. Сделать страницу свойств на которой выводить статистику: фреймрейт, количество кадров и т.д.

Задание необходимо выполнять в IDE Visual Studio 2005 или Visual Studio 2008 (рекомендуем Express Edition - она бесплатна).

Прием задания проходит в два этапа:
1. В программе GraphEdit проверяется релизная версия фильтра - скомпилированная DLL.
2. Если результат устраивает и фильтр выполняет свои функции без серьезных нареканий, то смотрится листинг программы, проверяется качество кода (наличие комментариев, структурированность, читаемость), компилируется solution.


Задание 2:

Здравсвтвуйте,
 
Одно из направлений компании ВР-КОМ (группа компании Darim Vision) - это разработка программного обеспечения для автоматизации телевизионного вещания в режиме 24/7.
 
Цель тестового задания - проверить ваше знание основ ООП, современных языков высокого уровня (С++, С#) и технологии DirectShow.
 
Мы предлагаем вам тестовое задание "Режиссерский пульт" или "Прямой эфир"
 
Представьте себе ситуацию: ваш заказчик -  режисер программы, идущей в прямом эфире. Видео с нескольких камер попадает к нему в компьютер (по сети, через capture boards, USB - это не так важно). Емунеобходимо видеть видео со всех камер одновременно, выбирать наилучший кадр и отправлять его дальше конечному потребителю - телезрителю.
 
Вам необходимо написать программу с графическим пользовательским интерфейсом, которая бы делала следующее:
 
1. Собирает внутри себя задаваемое число (пусть число варьируется от 1 до 4) независимых графов (то есть теоретически можно остановить любой из них, при этом остальные будут работать как ни в чем не бывало), каждый из которых состоит из фильтров Bouncing Ball и Audio Syntesizer (DirectShow примеры фильтров - Ball и Synth соответсвенно).
2. Выводит видео с каждого из графов в небольшое окошко - превью.
3. Пользователь может выбрать понравившееся видео и показать его в большом окне (все это сделать в границах одного диалога - окошки превью пусть расположены вверху, а внизу располагается окно с видео).
4. Аудио должно быть слышно только с выбранного канала, если ни одного канала не выбрано (программа только запустилась, превью уже пошло, но ни одна камера не выбрана) - звука нет
5. Пользователь должен видеть с какой камеры идет звук и видео
Время переключения с камеры на камеру, с превью на основной экран должно быть минимальным!
 
Дополнительные задания (их реализация существенно повышает ваши шансы на трудоустройство в нашей компании):
1. Сделать страницу свойств фильтра "About", в которой выводить текущую версию программы, картинку (например, ваше фото), ссылку на сайт.
2. Вывести статистику для каждой из камер: количество показанных кадров, фреймрейт, количество пропущенных фильтров.
3. (Крайне рекомендуется) Выводить audio peak meter (http://www.codeproject.com/KB/audio-video/PeakMeterCS/micsourcediag.jpg или http://img.brothersoft.com/s_screenshot/softimage/b/blue_cat.s_digital_peak_meter_direct_x-101373.jpeg) для выбранной камеры.
 
 
Для маньяков:
1. Когда выбирается одна из камер и видео показывается на большом экране - не прекращать показ видео в превью.
2. Показывать audio peak meter для каждой камеры
3. Накладывать значения audio peak meter на видео (придется, наверное, написать transform фильтр)
 
 
 
Задание необходимо выполнять в IDE Visual Studio 2005 или Visual Studio 2008 (рекомендуем Express Edition - она бесплатна) на языках C++ или C#.

Прием задания проходит в два этапа:
1. Запускается и проверяется программа,  если требуется выполнить какие-либо дополнительные действия (регистрация фильтров, записи в реестре)  необходимо приложить интструкцию.
2. Если результат устраивает и программа выполняет свои функции без серьезных нареканий, то смотрится листинг программы, проверяется качество кода (наличие комментариев, структурированность, читаемость), компилируется solution.


Задание 3:

Здравствуйте,
 
Одно из направлений компании ВР-КОМ (группа компании Darim Vision) - это разработка программного обеспечения для автоматизации телевизионного вещания в режиме 24/7.
 
Цель тестового задания - проверить ваше знание основ ООП, современных языков высокого уровня (С++, С#)  и умения создавать надежные многопоточные программы.
 
 
Представьте себе, что вам необходимо написать программу, которая бы проигрывала видеофайлы. Они разбросаны по всей файловой системе, необходимо найти путь до них.
 
Вам требуется написать программу, которая бы делала следующее:
1. Начинала обход всех файлов и папок начиная с указанного пути.
2. Обо всех найденных видео файлах (avi, mpeg) делала бы запись в системном логе -  Event Viewer ( Start > Control Panel > Administrative Tools > Event Viewer )
3. В текстовый файл выводить список всех найденных файлов, если размер файла получается большим ( > 1 мб ) - начинать новый.
 
Для организации лога рекомендуется использовать такие библиотеки как log4net, log4cpp, Enterprise library

Необходимо сделать приложение многопоточным, допустим в качестве начального пункта был выбран диск C:, в котором 4 папки, необходимо создать 4 потока, каждый из которых обрабатывал бы свою папку независимо, список файлов выводить в разные файлы.
 
Дополнительные задания (их реализация существенно повышает ваши шансы на трудоустройство в нашей компании):
1. Сделать страницу свойств программы "About", в которой выводить текущую версию программы, картинку (например, ваше фото), ссылку на сайт.

Задание необходимо выполнять в IDE Visual Studio 2005 или Visual Studio 2008 (рекомендуем Express Edition ( http://www.microsoft.com/express/ ) - она бесплатна) на языках C++ или C#.

Прием задания проходит в два этапа:
1. Запускается и проверяется программа, если требуется выполнить какие-либо дополнительные действия, необходимо приложить интструкцию.
2. Если результат устраивает и программа выполняет свои функции без серьезных нареканий, то смотрится листинг программы, проверяется качество кода (наличие комментариев, структурированность, читаемость), компилируется solution.


Задание 4:

Здравствуйте,
 
Одно из направлений компании ВР-КОМ (группа компании Darim Vision) - это разработка программного обеспечения для автоматизации телевизионного вещания в режиме 24/7.
 
Цель тестового задания - проверить ваше знание основ ООП, современных языков высокого уровня (С++, С#)  и умения создавать надежные и быстрые многопоточные программы.
 
При работе с видео одни из основных операций - это сжатие и распаковка кадров.
 
Вам требуется написать программы, которые бы делали следующее:
 
Руками, либо еще каким-нибудь способом создается папка Input, содержащая большое число (100-1000) небольших по размеру (40-80 килобайт) текстовых (можно других) файлов.

Программа А
1. берет файлы из папки  Input и сжимает их в папку Archive. Алгоритм сжатия можно реализовать самому ( http://algolist.manual.ru/compress/standard/ ) , либо использовать общедоступную библиотеку сжатия.
Программа должна работать в многопоточном режиме, то есть одновремено должны сжиматься несколько файлов (допустим 4 потока).
 
Программа Б
1. Осуществляет мониторинг файлов в папке Archive, как только в ней появляются файлы она берет и разжимает их в папку Output.
Она тоже работает в многопоточном режиме, если в Archive находится несколько файлов, то она должна расжимать несколько файлов одновремено.

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

После того как обе программы отработают - содержимое папок Input и Output должно совпасть.
 
Дополнительные задания (их реализация существенно повышает ваши шансы на трудоустройство в нашей компании):
1. Сделать страницу свойств программы "About", в которой выводить текущую версию программы, картинку (например, ваше фото), ссылку на сайт.

Задание необходимо выполнять в IDE Visual Studio 2005 или Visual Studio 2008 (рекомендуем Express Edition ( http://www.microsoft.com/express/ ) - она бесплатна) на языках C++ или C#.

Прием задания проходит в два этапа:
1. Запускается и проверяется программа, если требуется выполнить какие-либо дополнительные действия, необходимо приложить интструкцию.
2. Если результат устраивает и программа выполняет свои функции без серьезных нареканий, то смотрится листинг программы, проверяется качество кода (наличие комментариев, структурированность, читаемость), компилируется solution.

Обсуждение вышенаписанного

Задание очень круты. Я придумывал специально с той целью, что не упорный кандидат берет такое задание (особенно первые два), офигевает и никогда не возвращается :) Конкуренция хоть чуть-чуть поменьше.

Многие мои коллеги сразу заверещали: ну как же так, такие сложные задания, мы же не Microsoft какой. А я скажу так: не нужно занижать планку! Ну что толку если человек придет, ничего не умеет, его нужно будет несколько месяцев учить за счет компании, или он не выдержит нагрузки и свалит (текучка кадров в нашей компании очень большая), пускай уж лучше он там, у себя дома этому учится, и как технологиями овладеет, пусть приходит, тем более, что я в тестовых заданиях даже сроков выполнения не написал (проглядел этот момент, хотя если бы я написал приемлемый срок - неделя: уверен не сдал бы ни кто).

Когда мне говорят о высоких требованиях - я сразу вспоминаю, как я, до Дарима, пытался устроиться в томскую же компанию Elecard.
Они меня мурыжили полгода, когда у меня уже появились кой-какие наработки (конкретного тестового задания у меня не было) и я пришел говорю: устройте меня уже на работу, хоть хоть чуток бабла получать, мне менеджер сказал: у тебя еще уровень не тот, не соответствуешь высокому уровню компании. Я тогда очень расстроился, чуть не заплакал, и ушел. Стал пытаться устроиться в другие компании: Mainconcept (они для студентов сперва организовывали курс лекций, давали небольшие тестовые задания - некоторые мои знакомые прошли через это и устроились работать там), а потом по счастливой случайности нашел Дарим, где почему-то никакого тестового задания не дали и просто приняли на работу :)

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

И кстати, в Microsoft, какую вакансию не возьмешь - всё требуется по пять лет работы в сфере разработки программного обеспечения + звание Ph.D

  • Current Music
    Песня первоклассника
  • Tags
я толстовка темный фон

Пасха

Пасху отметил ударным трудом. Делали срочный проект. Все равно не успели.

Но куличей все равно поел.
я в рубашке

Программист-спец

У  Сергея Лукьяненко есть такая замечательная книга "Геном" (прочитать её можно с Фензина, краткое описание посмотреть на Википедии)
Основная суть: "Человечество продолжает начатую уже довольно давно евгеническую практику. Ещё в 21 веке были разработаны методы, позволяющие изменить генотип человека таким образом, чтобы приспособить его к определённой деятельности." В этой вселенной существовали летчики-спец, войны-спец и т.д. Они были просто влюблены в свою работу, занимались ею всю жизнь и были счастливы.

У программистов-спец в той вселенной наверняка был бы свинцовый зад, 104 пальца на руках, супер устойчивые глаза, возможность подолгу обходиться без пищи и душа, скорее всего лишены способности любить (им этого бы просто некогда было делать), ну или это выражалось бы в чем нибудь странном ("... Я её полюбил за ее код, ты бы видел какие она классы делает, как память выделяет."). В качестве особых перков увеличенный мозг (чтобы прогать на чистом ассемблере) и способность смотреть на людей как на дерьмо. Правда, в таком случае их бы всех депортировали на планету, где в сутках часов 40 не  меньше, чтобы не чувствовать себя неловко в их присутствии и чтобы они побольше там пахали.

Я вчера так замечтался по этому поводу, что не сразу вспомнил, что в "Калеках" - заключительной части трилогии  был один компьютерщик:
"Дверь хлюпнула последний раз, и появился Трейси – щуплый, нескладный, с черными линзами в глазницах – как принято в секте киберморфов. Ему нельзя было дать больше двадцати лет, но Алекс знал совершенно точно, что компьютерщику не меньше сорока. Слегка инфантильную внешность Трейси предпочитал по религиозным соображениям – как и черные линзы-импланты, как и старомодный электронный нейрошунт."

Трейси был поклонником Нео и полагал, что живет в Матрице, но это даже в половину не так круто как я себе представлял программистов-спец.
  • Current Music
    Amatory - Вы все лишены своей жизни
  • Tags
я толстовка темный фон

Двойственная природа света

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

Осваиваиваю новую программу “Live Writer”

Тут новый мессенгер вышел, а с ним можно установить эту программку.

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

В общем, если все выйдет и я буду доволен результатом, то буду юзать.

Для проверки необходимо запостить картинку. Пусть это будет фотка моего нового офиса:

Центр инноваций и технологий ОЭЗ “Томск” 

building

По совместительству, новый офис томского филиала компании Darim Vision.

Находится, здесь

Изображение карты

Так, карты Майкрософта – отстой.

Теперь, сюжет в конце которого говорится как Путин зону открывал:

 

Результатом в целом доволен. Самое главное для моих задач вполне хватает. Будем использовать.