Об адресах электронной почты

Заметка из архива, впервые была опубликована в декабре 2009 года.

Чтобы отправить бумажное письмо в какое-то предприятие, достаточно написать на конверте в поле «Куда» его адрес, а в поле «Кому» — название организации. Никому в голову не придёт разбираться в тонкостях организационной структуры предприятия, выясняя, кому же адресовать такое письмо.
В электронной почте всё отчего-то сложней. Согласно спецификации, адрес состоит из локальной части и имени домена, разделённых символом «@». Все три составляющие адреса являются обязательными, причём имеют дополнительные ограничения по формату. При этом очевидно, что локальная часть есть ничто иное как аналог «Кому», а домен — «Куда». По аналогии с приведённым выше примером очевидна простая возможность: поскольку двух предприятий с одним адресом домена быть не может, можно не указывать локальную часть и за ненадобностью символ «@». В таком случае письмо должно приходить кому-то, как бумажное письмо обязательно попадёт к секретарю фирмы, а дальше его направят куда надо, ответит реальный человек, имя которого можно потом указывать в графе «Кому».
Дурацкое ограничение обязательности локальной части даёт обширное поле для творчества и экспериментов, и тут уж кто во что горазд: inbox, mailbox, mail, info, admin, webmaster и прочие бессмысленные адреса. Нужно всего лишь дать возможность писать прямо на адрес сайта, без всяких почтовых ящиков, и забыть об указании глупых адресов.

См. также: замечание Ильи Бирмана о слове «электропочта».

Найти заказчика

Заметка из архива, впервые была опубликована в январе 2010 года.

Артемий Лебедев советует молодым дизайнерам, столкнувшимся с необходимостью иметь портфолио для получения заказов, придумать себе заказчика. Это отличная идея для тех, кого отсутствие заказов и пустое портфолио ставят в тупик. Однако, если дизайнер умеет делать что-то лучше, чем есть сейчас, почему бы не решать реальные проблемы окружающего мира? Сделать удобное расписание электричек, хорошую визитку знакомому фотографу или афишу для университетского КВН. Этот способ работает в 3 раза эффективней: во-первых, он учит смотреть на вещи критически и заставляет думать, как улучшить окружающий мир; во-вторых, он улучшает этот мир, если дизайнер сделал свою работу хорошо; в-третьих, он по-прежнему позволяет наполнить портфолио работами. Вы же не получите оплаты с вымышленного заказчика? Значит, и сделанные этим способом работы можно дарить людям безвозмездно. Так у них больше шансов быть принятыми заказчиком, который вас, собственно, ни о чём не просил. А попутно это ещё и способ проверить свои труды на жизнеспособность: если заказчику результаты вашей работы не нужны и даром, стоит задуматься над качеством.

Подкаст «Как работать на дому и остаться человеком»

Два года назад я записал подкаст о том, как организовать работу на дому. В ближайшее время я собираюсь записать вторую часть про тайм-менеджмент, когда и почему он работает. В этот раз надо будет сделать покороче)

Из подкаста вы узнаете:

  • Что такое удалённая работа, коворкинг и фриланс.
  • Как организовать рабочее место дома.
  • Тонкости взаимоотношений с близкими.
  • Как организовать рабочее время и добиться собственной продуктивности. Как научиться не отвлекаться от работы.
  • Как взаимодействовать с заказчиками и коллегами в коллективе.
  • Как научиться отвлекаться от работы и остаться человеком.

Лекция будет полезна фрилансерам и тем, кто хочет попробовать им стать. А также всем, кто занимается творческой работой на дому и использует компьютер как рабочий инструмент.

Интервью сайту Ситиселебрити

Два года назад Ольга Киндинова взяла у меня короткое интервью по следам нашего семинара. Решил сохранить его здесь для истории.

Артель «д-восемь-проджект» и мастерская «Пластика» даже на пару не имеют «10 лет опыта работы на рязанском рынке дизайна». Что не помешало им 9 апреля провести семинар о том, «Как решать дизайнерские задачи и забыть о творческом кризисе».

Представьтесь, пожалуйста.

Меня зовут Виктор Глушенков.

Какое мероприятие вы провели в Творческой Мастерской?

Мы с Александром Сарычевым проводили семинар о том, как решать дизайнерские задачи и забыть о творческом кризисе.

Почему выбрали именно эту тему?

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

Как вы готовились к мероприятию?

Ну, я открыл методичку примерно за полчаса до начала… Шутка. План выступления пришёл сам собой после того, как мы определились, о чём интересно было бы рассказать. У Александра было много интересных примеров про банк идей, поэтому он рассказывал про прокачку мозгов. Так получилось, что у меня с коллегами постепенно выработался свой собственный метод решения задач. В своём выступлении я попытался показать взаимосвязь всех основных методов. Так что разделили тему на две части, написали тезисы, подобрали какие-то примеры. Я в голове
пару раз прокручивал семинар целиком, чтобы всё было более-менее логично и последовательно.

Как давно вы занимаетесь тем, чему посвятили это мероприятие?

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

А как вы начали этим заниматься?

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

Удалось ли вам сделать хобби основным источником заработка и хотите ли вы этого? Или это уже так?

Да, в данный момент это моя основная работа.

По образованию я инженер, проектированием (design) занимался всю сознательную жизнь. Сначала я занимался «внутренностями» информационных систем, теперь и их
«внешностью» (interface) занимаюсь. Это один из смыслов, который закладывался в название моей мастерской «Пластика»: пластическая операция для вашей системы, сайта, прибора.

Где можно увидеть ваши работы?

Я обожаю этот вопрос. :) Наши работы можно будет увидеть на сайте: www.artplastika.ru

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

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

Как все прошло?

У нас была сверхзадача, и она решена, это главное. Были некоторые недочёты в подготовке, из которых я уже сделал выводы на будущее.

Как вам люди, пришедшие на мероприятие?

Нам было очень приятно, что собрались совершенно разные люди. Были и студенты, и уже опытные дизайнеры. Мне понравилось, как кто-то сказал, что это был «семинар для дизайнеров и им сочувствующих». Сочувствующих набралось много! :) Кстати, суммарный опыт в дизайне всех участников семинара (а их было более 60!) составил около 155 лет, что в среднем составляет ≈2,5 года на каждого. Думаю, цифры показывают, что аудитория была достаточно качественная. Ещё раз благодарю всех, кто пришёл и поддержал наше начинание. Это было очень важно!

На ваш взгляд, почему важно обмениваться опытом?

Мы на семинаре об этом рассказывали. Когда только потребляешь, всё это застаивается у тебя в голове и не пойми как работает. Когда начинаешь отдавать что-то во внешний мир, и у самого порядок в голове наводится,
да ещё и в процессе кучу всего нового узнаёшь. Так что всем советую попробовать, это работает. Инфа 100%! :)

Хотели бы вы провести повторное мероприятие или продолжение первого?

Обязательно. Причём хочется не столько самому ещё раз выступить, сколько чтобы нас другие поддержали. Пока вроде получается. Следите за анонсами!

Хотели бы вы провести видео-мастер-класс для других городов?

Да, опыт у меня есть. :)

Что бы вы могли посоветовать вашим коллегам и людям, которые только начинают заниматься творчеством»?

Друзья, не бойтесь быть собой и будьте открытыми.

Польза с первого дня

— Как на тропу войны так не мал, а как на фильму…
— Стыдись, Белое Перо. Ты ещё не отпраздновал свою 16-ю весну.
Из к/ф «Человек с бульвара Капуцинов»

В свою первую компанию я пришёл 10 лет назад в качестве стажёра ещё будучи студентом. На тот момент компания разрабатывала систему, которой уже пользовалось несколько десятков организаций в разных регионах страны. При этом исходный код просто складывался разработчиками в папку на компьютере менеджера проекта, где потом руками в IDE собирался релиз. Мы вдвоём с таким же стажёром внедряли в компании сначала CVS, потом багтрекер, систему управления проектом, автоматическую сборку проекта и т.д. Это не было нашей основной работой (мы кодировали), а скорее нашей инициативой, которая не всегда встречала однозначное одобрение со стороны руководства. Так уж сложилось, что технологиям, используемым в разработке, тоже приходилось учиться самостоятельно.

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

Любая теория людьми с техническим образованием (пусть даже незаконченным) осваивается быстрее, чем нарабатывается опыт и набиваются «шишки». Сложности возникают и при увязывании теории и практики. Поэтому гораздо эффективней, если наставник просто введёт в курс дела: объяснит логику организации исходного кода на проекте; покажет, как запускать проект; объяснит маленький кусочек архитектуры, с которым на первых порах придётся работать стажёру. И сразу после этого поставит перед ним реальные задачи. В процессе работы возникнет множество проблем и вопросов, пока всё заработает и получится сделать хотя бы первую задачу. Но это будут уже правильные вопросы, нужные именно сейчас навыки, и что самое главное, это будут первые практические результаты. Тропа войны — это отличный способ научить  человека брать на себя ответственность.

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

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

P.S. Написано полгода назад, но пределы песочницы хабра так и не покинуло)

Глава 21. Ежедневное достижение, «The Passionate Programmer: Creating a Remarkable Career in Software Development»

Java port of MSDN X509 certificate’s usage example

Documentation of X509Certificate2 class in MSDN has example that demostrates how to use it to encrypt and decrypt stream data.

Bytes in a stream are encrypted using AES symmetric algorythm. Secret key is stored in the same output stream and encrypted using X509 certificate’s public key. In order to read original contents of such stream first we need to read and decrypt secret key with certificate’s private key, then decrypt the rest of the stream with that secret key.

I have made a Java port of this example to demonstrate interoperability between two platforms. Files encrypted by C# program from the MSDN example are successfully decrypted by Java code listed below and vice versa.

Also it contains snippets for Java analogue of  BitConverter.GetBytes and BitConverter.ToInt32 methods. So it won’t be a surprise for you that byte type in Java is signed while in C# it is unsigned.

Certificates generated by makecert.exe from Visual Studio use 256-bit key, and you may get InvalidKeyException: Illegal key size. To avoid this you will need to install Unlimited Strength Java(TM) Cryptography Extension (JCE) Policy Files.

Full code with project for Netbeans is available in my github repository.