Правило

0 коммент. | добавить комментарий
В результате работы над моим Java-проектом я придумал Правило. Применяйте его почаще.

Правило
Всегда, когда вы можете использовать архитектуру Model-View-Controller, используйте ее.

Это окупится. Зуб даю.

Еще раз о собеседовании

2 коммент. | добавить комментарий
Мне довелось на этой неделе неделе на пару с коллегой - тимлидом дружественной команды собеседовать кандидата на должность Java-разработчика. Для меня это был дебют. В Академосе я, правда, проверял тесты - но это совсем другое. Сидеть на собеседовании с Другой Стороны Стола и задавать вопросы - это куда как более сильно.

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

Мы спросили про опыт работы и готовые проекты. Узнав, что человек занимался системой учета персонала, я зацепился за слово "персонал" и стал выяснять, как бы он сохранил список персонала на диске или передавал бы его по сети. Соответственно, обсудили Serializable (знал) и Externalizable (плавал). Поговорили о паттернах - попутно выяснив, что кандидат не знает UML, хоть в резюме и обещал. Потрепались об MVC на примере компонента JTable, который рисует табличку. Говорили также о многопоточности в Java и особенностях ее в Swing (человек хвастал знаниями Swing'а, но о его вопиющей не-потоко-безопасности - опять ни сном ни духом).

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

Потом еще про алгоритмы спрашивали (сам виноват - зачем писал в резюме про "знание алгоритмов сортировки, поиска, и т.д."). Про сложность алгоритмов он никогда не слышал, ни один алгоритм сортировки даже не назвал, про binary search не рассказал...

Еще о многом говорили - зацепили Exception'ы, особенности Java 1.5, Eclipse, SWT... Короче, промурыжили мы его около часа, и не взяли. Хочу теперь проводить много собеседований. Как мне кажется, решение "не взять" - гораздо менее ответственное, чем "взять". Поэтому хочу теперь кого-то "взять". Джависты, ау! У нас правильный настрой!!!

UPD 13.02.07: вчера еще одного собеседовал! Этому давал уже две задачки - одну на простой алгоритм, и другую - на простое проектирование, но уже не про стол, а про автобус. Дела идут...

Vista и распознавание голоса в ей

0 коммент. | добавить комментарий
Вот здесь прочел об обнаруженной уязвимости в Windows Vista. Эти спецы из Microsoft расширили механизм управления компьютером с помощью голоса - теперь, отдавая голосовые команды, можно, например, копировать и удалять файлы, запускать программы, и совершать много других потенциально деструктивных действий.

Теперь злой пользователь Вася может написать песенку со словами, например, такими:

Ай-ай-ай, вот бы здорово
Стереть каталог C:\WINDOWS,
И при свете полной луны
Очистить корзину, да-да!


Если у жертвы злого пользователя Васи в момент прослушивания этой песенки будет включен микрофон, то ей типа будет плохо. Ну, так себе уязвимость на самом деле, хотя может причинить и зло. А вот кому будет классно - так это вирусописателям. Я помню те времена, когда вирусы писались на ассемблере, и было это типа сложно. С новой версией Windows все меняется! Рекламный ход Microsoft заключается в следующем:

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

  • РАЗ: напишите словами, что бы вы хотели от вашего вируса
  • ДВА: передайте полученную строку в Windows Speech API
  • ТРИ: робот Сэм произнесет, а новая Windows Vista автоматически выполнит все ваши команды! Наша система позволит Вам стать более успешными! Откиньтесь на спинку кресла и наслаждайтесь!

Вот такие-то пироги. Теперь им придется учить систему реагировать только на голос ее хозяина. Багов-то будет :) Ну, Forza Vista!