• Каково это — быть разработчиком, когда тебе сорок

    • Translation
    Примечание от переводчика:

    Этот пост был написан и опубликован на Medium разработчиком приложений Адрианом Космачевским из Швейцарии. Кроме подготовки перевода его публикации, я также пригласил и самого автора, Адриана ( akosma ), на Хабр, для того, чтобы он смог лично ответить на любые вопросы участников сообщества, если таковые возникнут. Думаю, для общего удобства при общении в комментариях с ним стоит использовать английский (и, при желании, дублировать на русском).



    Привет всем, я — сорокадвухлетний программист-самоучка, а это моя история.

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

    image

    Эти размышления привели меня туда, откуда все начиналось.

    Я дебютировал в роли разработчика программного обеспечения в 10 часов утра 6 октября 1997 года, в городе Оливос, к северу от Буэнос-Айреса, в Аргентине. Был понедельник. Не так давно я праздновал свой 24-й день рождения.

    Мир в 1997 году


    Тогда он был немного другим. На веб-сайтах не было предупреждений об использовании cookie. Новаторскими в сети были сайты вида Excite.com, а моим любимым поисковиком был AltaVista.

    Мой электронный ящик имел вид kosmacze@sc2a.unige.ch и был расположен на личном веб-сайте, который размещался по адресу http://sc2a.unige.ch/~kosmacze. Тогда мы еще оплакивали принцессу Диану, а Стив Джобс только-только вернулся на роль CEO и убедил Microsoft «вбросить» в Apple Computer 150 миллионов долларов. Digital Equipment Corporation подала в суд на Dell, останки Че Гевары вернули на Кубу, только начался четвертый (!) сезон «Друзей». Был убит Джанни Версаче, скончались Мать Тереза, Рой Лихтенштейн и Жанна Кальман. Люди зависали за Final Fantasy 7 на PlayStation, будто бы были наркоманами, Би-Би-2 начал вещание телепузиков, а Кэмерон только собирался показать миру свой «Титаник».
    Читать дальше →
  • Роботизированное щупальце с множеством степеней свободы

      Зачастую, при создании манипуляторов для роботов учитывается не только количество степеней свободы и крепость захвата, но и способность работать с мягкими предметами не повреждая их. Новый пневматический пластиковый манипулятор-щупальце, созданный учеными из Гарвардской школы инжиниринга и прикладных наук (США), не только удовлетворяет этим требованиям, но оказался значительно дешевле и универсальнее существующих аналогов. Кроме того, он настолько деликатный, что способен оперировать таким нежным объектом как цветок без нанесения ему малейших повреждений.
      image
      Читать дальше →
    • Устройство интернетов



        — Значит нам нужно какое-то автоматизированное средство для создания скриншотов, — голос генерального директора был, как всегда, спокоен и твёрд. По всему было видно, что за такое автоматизированное средство он был готов бороться до конца, — когда найдёшь — наделай картинок и встать в макет каталога. Времени тебе даю до 4 часов, потом лично проверю.

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

        Открыв любимый поисковик, я хотел было уже ввести «автоматизированное создание скриншотов», как вдруг моё внимание привлёк новый элемент управления на этой странице. Вообще, главная страница этой поисковой системы настолько минималистична, что каждое её изменение, даже на пару пикселей, сразу бросается в глаза. А сейчас там под строкой поиска появилось самое настоящее окно чата. Внизу вертелась анимированная иконка с изображением карандаша, символизирующая, должно быть, то, что собеседник пишет мне сообщение. Через пару секунд анимация исчезла, и в окне чата появилась надпись: «привет как дела».
        Читать дальше →
      • Энергонезависимое решение



          Понедельник. Постановка задачи


          Девять часов тридцать одна минута утра — я на работе. Вообще-то мы работаем с десяти до семи, но по понедельникам я предпочитаю приходить пораньше — мне нравится наш офис, пока в нём нет людей. Я медленно иду мимо столов — одни завалены распечатками спецификаций и каких-то диаграмм, другие совсем пустые. На одних столах стоят компьютеры, другие пустые. Под некоторыми столами стоит сменная обувь, перед другими нет даже кресла. Да, у нас больше половины столов пустые — это на случай приёма новых сотрудников, или командировки кого-то из других городов и стран. Ведь у нас крупная международная компания с офисами разработки в Омске и Калачинске и головным офисом на Кипре. Мы занимаем четыре этажа в современном офисном центре. Правда, сразу за нашим зданием начинаются руины какого-то авиационного завода, и в день зарплаты мы стараемся там не ходить.
          Читать дальше →
        • Дети не умеют пользоваться компьютерами… И вот почему это должно вас беспокоить

            Оригинал: http://www.coding2learn.org/blog/2013/07/29/kids-cant-use-computers/

            Многобукв? Что ж, почему бы вам не посмотреть пятисекундное видео с котенком, засунувшим голову в рулон туалетной бумаги, или не прочитать 140-символьное описание блюда, которым ваш друг набил себе рот. «Ням-ням». Этот пост не для вас.

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

            Я улыбнулся и представился, присаживаясь рядом с ней. Она молча вручила мне MacBook, и выражение ее лица сказало всё: «Почини мой компьютер, гик, и побыстрее». Меня путали с техником достаточное количество раз для уверенного распознавания этой гримасы.

            — Придется поторопиться. Через 5 минут у меня урок, — сказал я.
            — Вы преподаете?
            — Это моя работа, просто так получилось, что также приходится управлять командой специалистов по сетям.

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

            Я посмотрел на MacBook. На тот момент у меня не было опыта с OS X. Но Джобс не был идиотом, и то, что отображалось в верхнем правом углу экрана, было общеизвестным символом WiFi. Чтобы подключить устройство к сети, мне понадобилось несколько секунд.

            Вручил MacBook обратно, и женщина открыла Safari. «Интернет не работает», заявила она с презрением.

            Я столько раз слышал эту фразу от учеников и персонала, что у меня уже заготовлена стандартная реакция. Обычно я достаю сотовый телефон, делаю вид, что набираю номер. И подняв трубку к уху, говорю: «Да, соедините меня с офисом Президента Соединенных Штатов… НЕТ, Я НЕ МОГУ ПОДОЖДАТЬ, это чрезвычайное происшествие… Алло, Мистер Президент, боюсь у меня плохие новости. Меня только что проинформировали, что Интернет не работает».

            Но я решил, что молодая женщина, наверное, не оценит сарказм, и забрал MacBook обратно, чтобы добавить настройки прокси-сервера. Без каких-либо идей, как это сделать в OS X. Прокси у нас используется, чтобы убедиться, что персонал и ученики не могут получить из школьной сети доступ к порно. Также он фильтрует насилие, экстремизм, ругательства, социальные сети, алкоголь, курение, хакерство, игры и потоковое видео. Забавно, что когда вы ищете в Google «proxy settings OSX», результаты выдачи будут заблокированы, поскольку содержат слово «proxy», а оно фильтруется.

            «Вы не знаете, где здесь настройки прокси?» — спросил я с надеждой.

            Ответа я не получил. С тем же успехом можно было спросить у нее «Не подскажете, как мне ретикулировать сплайны с использованием гексагональной системы декодирования, чтобы я мог создать GUI на VisualBasic и отследить IP-адрес?»

            корни шутки

            спасибо acherneha — прим. переводчика.


            Настройки прокси я нашел и заполнил за десять секунд. Вернул ей MacBook, и она, буквально, закрыла Safari и открыла его заново, вместо того, чтобы обновить страницу. «Пасиб…». Благодарность была ошеломляющей.

            Я уже уходил, когда она меня остановила. «PowerPoint не работает».

            Не устали? Под катом реально много букв
          • Брюс Шнайер: Иллюзия безопасности

              image
              Брюс Шнайер не нуждается в представлениях. На Хабрахабре можно найти много статей, касающихся деятельности этого «гуру криптографии». Под катом — текстовая расшифровка видеолекции Брюса Шнайера «The security mirage» («Иллюзия безопасности»).
              Эта лекция доступна на YouTube, на Amara её можно посмотреть с субтитрами на 28-ми языках (включая русский). Что же заставило меня отнимать твоё время, хабрачитатель?
              Ну и что же там?
            • Доклад о вреде копирайта был удалён с сайта одного из комитетов конгресса США через день после публикации

                В пятницу, 16 ноября на сайте Republican Study Committee — организации, объединяющей более 170 членов палаты представителей США от республиканской партии, появился интереснейший документ. Под этим 9-страничным докладом не постеснялись бы подписаться многие активисты пиратских партий по всему миру. Не прошло и суток, как этот доклад убрали с сайта под предлогом того, что он не прошёл всех согласований и вообще не соответствует стандартам RSC. Что же было в этом, столь поспешно спрятанном документе?
                Читать дальше →
              • Учим старый-добрый CRTP новым трюкам

                Иногда мы делаем вещи, ценность которых является весьма сомнительной. Это как раз тот самый случай.

                Код лучше тысячи слов


                Не буду тянуть кота за хвост, а перейду сразу к делу. Обычно мы используем CRTP примерно так:
                template<typename type, typename tag>
                struct Base
                {};
                 
                template<typename type, typename tag>
                void f(const Base<type, tag>&)
                {}
                 
                struct Foo : Base<Foo, void>
                {};
                 
                int main()
                {
                  Foo foo;
                  f(foo); 
                }
                

                Функции f() на самом деле всё равно, какой тэг у её аргумента, и она принимает объект любого типа, унаследованого от Base. Но не будет ли более удобным, если мы просто опустим не интересующий нас тэг? Зацените:
                template<typename t>
                struct base_tag { typedef decltype(get_tag((t*)42)) type; };
                 
                template<typename type,
                         typename tag = typename base_tag<type>::type>
                struct Base
                {
                  friend tag get_tag(type*);  //never defined
                };
                 
                template<typename type>
                void f(const Base<type>&)
                {}
                 
                struct Foo : Base<Foo, void>
                {};
                 
                int main()
                {
                  Foo foo;
                  f(foo);
                }
                

                Читать дальше →
              • Плакаты на IT тематику

                Почитывая «Банду четырех», всё чаще думаю как хорошо было бы иметь отдельный плакат на стену в офисе, резюмирующий и объясняющий шаблоны проектирования. Как здорово было бы не держать все их в голове, а имея проблему, взглянуть и найти подходящее решение. Но найти подходящий постер оказалось не так то просто, да и тот оказался не идеальным.
                Читать дальше →
              • Вива Франция! «Закон о недоступных книгах ХХ века»

                  Согласно принятому в марте 2012 г. Национальным собранием и одобренному Сенатом закону «Закон о недоступных книгах ХХ века» («La loi sur les livres indisponibles du XXème siècle») французское государство решило приступить к оцифровке сотен тысяч книг французских писателей, не спрашивая на то их разрешения. В первую очередь будут оцифровываться книги изданные до начала XX века.

                  Читать дальше →
                • Механические клавиатуры

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

                  А раз уж сталкиваешься с вещью регулярно, постепенно возникает вопрос — можно ли найти для работы какие-то более удобные варианты обычных клавиатур?

                  Итак, некоторое время назад я озаботился сбором информации о клавиатурах, и даже начал готовить информацию для статьи, но к сожалению (к счастью?) нашлась исчерпывающая статья о всех нюансах сразу, которую я решил перевести.

                  Механические клавиатуры. Путеводитель.

                  Читать дальше →
                • Почему я не стану вас нанимать

                  • Translation
                  image

                  Один мой товарищ недавно активно искал работу, и спрашивал меня, как себя подавать перед работодателем. Погуглив, мы пролистали с десяток статей о том, как надо и как не надо делать во время поиска, и одну из них я решил перевести для хабрасообщества, возможно кому-то это поможет избежать ошибок, которые в ней описаны. Манера статьи довольно провокационная, язык местами нецензурен, поэтому я постарался сгладить углы. Итак, поехали..
                  Читать дальше →
                • Ричард Фейнман: удовольствие делать открытия



                    Первая часть программы Horizon (BBC, 1981) с Ричардом Фейнманом. О красоте, об отце, о названиях и именах, об алгебре, о наблюдениях и униформе. Это интервью во многом пересекается с книгой "Вы, конечно, шутите, мистер Фейнман", поэтому по большей части монолог касается жизни ученого, его взгляде на жизнь и тому, как такой взгляд развился и кто на него повлиял.
                    Читать дальше →
                  • Канцерогенные излучения. Скандалы, интриги, расследования!

                      На днях пришлось мне разослать по всей компании письмо. Думаю, что у каждого админа были, есть и будут на обслуживании идиоты, расставляющие кактусы вокруг монитора и одевающие «антикомпьютерные очки».
                      Для таких индивидуумов и было написано письмо. Остальные просто посмеялись.

                      Текст письма под катом.
                      Читать дальше →
                    • Кадры решают всё или о биче современных компаний

                        image
                        Хотелось бы немного рассказать о тех ошибках, которые очень опасно совершать особенно сейчас, особенно в странах или городах золотого миллиарда. Думаю каждый работающий или сталкивающийся с деятельностью большой или не очень компании (или гос структуры) как и я удивляется на сколько же всё не эффективно и поражается как при таком раздолбайстве и пофигизме шестерёнок машина всё еще работает.
                        Читать дальше →
                      • Крутейший конкурс со смешной премией

                          Министерство обороны проводит “Всероссийский конкурс научно-исследовательских работ среди граждан Российской Федерации в интересах Вооруженных Сил Российской Федерации”.

                          Для Хабра интерес представляют “Темы научно-исследовательских работ”, где представлено много действительно интереснейших направлений по IT-тематике.

                          Условия проведения конкурса для физических лиц и юридических.

                          Конкурс проводится на основе приказа уважаемого Министра обороны Сердюкова.

                          Самое интересное как всегда в приложении к приказу — документе Word.
                          Призовой фонд конкурса составляют три денежных премии:
                          – первая премия в размере 40 000 рублей;
                          – вторая премия в размере 25 000 рублей;
                          – третья премия в размере 15 000 рублей.
                          Для поощрения работ, не занявших призовые места, но отмеченных конкурсной комиссией как наиболее перспективные, дополнительно вводятся две специальные премии по 10 000 рублей каждая.

                          Читать дальше →
                        • Создание API: в рамку и на стену

                          • Translation
                          • Tutorial
                          Каждый программист — проектировщик API. Хорошие программы состоят из модулей, а протокол взаимодействия модулей — это тоже API. Хорошие модули используются повторно.

                          API — это большая сила и большая ответственность. У хорошего API будут благодарные пользователи; поддержка плохого превратится в кошмар.

                          Публичный API — не воробей, опубликуешь — не уберешь. Есть только одна попытка сделать все правильно, поэтому постарайся.

                          API должно быть легко использовать, но сложно использовать неправильно. Сделать что-то простое с помощью такого API должно быть просто; сложное — возможно; сделать что-то неправильно должно быть невозможно, или, по крайней мере, трудно.

                          API должен описывать сам себя. Изучение кода на таком API не вызывает желания читать комментарии. Вообще, комментарии редко нужны.

                          Перед разработкой API собери требования с долей здорового скептицизма. Осознай общие задачи и реши их.

                          Оформляй требования как шаблоны использования API. Сверяйся с ними в процессе проектирования.
                          Читать дальше →
                        • Что же там такого тяжелого в обработке исключений C++?

                            image
                            Исключения и связанная с ними раскрутка стека – одна из самых приятных методик в C++. Обработка исключений интуитивно понятно согласуется с блочной структурой программы. Внешне, обработка исключений представляется очень логичной и естественной.

                            Аккуратное использование стековых объектов позволяет создавать очень эффективный и безопасный код, где, в отличие от систем со сборкой мусора, сохраняется локальность ссылок, что дает возможность уменьшить число обращений к системе за памятью, снизить её фрагментацию, более эффективно использовать кэш памяти.

                            Тем не менее, в C++, исключения традиционно рассматриваются буквально как исключительные ситуации, связанные с восстановлением после ошибок. Трудно сказать, является ли это причиной или следствием того, что реализация обработки исключений компиляторами чрезвычайно дорога. Попробуем разобраться почему.
                            Читать дальше →