Отъявленный программист: лайфхакинг из первых рук - [7]
Поэтому на данный момент мы основные усилия направляем на разработку проекта Linux Libre. Это модифицированная нами версия ядра Linux, главная цель ее создания — удаление любого программного кода, который поставляется в закрытом виде, имеет явно обфусцированный исходный код либо выпущен под проприетарной лицензией. [1 Чаще всего это касается бинарных прошивок некоторого сетевого оборудования и отдельных прошивок аудио- и видеокарт] К сожалению, наша версия ядра запускается с меньшим количеством устройств, чем оригинальное ядро, но мы активно работаем над решением этой проблемы.
Пользуясь возможностью, я бы хотел обратиться ко всем разработчикам, разделяющим наши идеалы и читающим этот текст: мы нуждаемся в опытных реверс-инженерах, которые смогли бы помочь нам в решении подобных нетривиальных задач.
В заключение первой части интервью расскажите немного про ваш Фонд FSF. Кто эти люди, которые стоят за всеми текущими проектами, каковы общие тенденции развития движения за свободные программы?
GNU Project работает в значительной степени за счет привлекаемых нашей философией волонтеров. На данный момент в рамках проекта всего около 400 значимых пакетов — самых различных программ и компонент, поддерживаемых и развиваемых GNU Project. Каждый пакет имеет как минимум одного собственного «мэйнтейнера» — человека, который сопровождает его, решает все возникающие проблемы и вопросы. В первой половине существования нашего Фонда (с 1987 по 1996 год) «мэйнтейнерам», сопровождающим наиболее критические пакеты, платились деньги за выполненную работу из собственных средств Free Software Foundation.
Но на сегодняшний день все наши «мэйнтейнеры» — это стопроцентные волонтеры, которые не получают ни цента за свою работу. И хотя очень небольшому числу из них (тем, кто занят по-настоящему сложными и важными вещами) все-таки платят деньги некие сторонние организации, повторю еще раз, главное — FSF окружен бескорыстными и убежденными сторонниками, и мы стремимся к тому, чтобы эта общественно значимая работа выполнялась по велению сердца, а не из-за желания подзаработать.
Что касается тенденций нашего развития и общей проблематики, которой мы занимаемся, то они в последние годы начинают меняться. В первом десятилетии существования FSF нам нужны были программисты, которые были бы способны создавать полезные свободные программы, внося свой практический вклад в популяризацию наших идей и ценностей. В то время постоянный поиск достаточного количества таких людей был единственным препятствием на пути нашего развития.
Но в последние годы ситуация начинает кардинально меняться. Сегодня существует класс программ (и их становится все больше с каждым днем), которые мы даже не можем написать, имея для этого все необходимые человеческие ресурсы. Некоторые программы-прототипы защищаются с помощью DRM (Digital Restrictions Management), некоторые производители железа и программ делают секретными свои спецификации и протоколы, и, наконец, к делу подключаются юристы, патентующие принципиально важные алгоритмы и звенья систем, которые мы бы хотели воспроизвести в качестве свободных для общества. Более того, в последние годы некоторые производители железа создают полностью искусственные системы защиты от инсталляции систем, отличных от их собственных, что фактически означает агрессивное противостояние попыткам использовать легально купленную вещь по собственному усмотрению.
Поэтому в последнее время мы все больше смещаемся от чисто технических проектов в сторону проведения публичных кампаний, рассказывающих о подобных фактах и опасностях, продвигаем методы противодействия им. Мы делаем все, чтобы привлечь внимание широкой публики к подобным неблагоприятным трендам, а также поддержать всеми силами тех, кто сопротивляется им. Теперь это куда важнее, чем программировать правильные вещи. Ведь если мы не переломим тренд, тираны проглотят компьютерный рынок, а вслед за ним и наше общество.
В апреле 2012 года случился скандал, по итогом которого Столлмана обвинили в отсутствии нормальной человеческой эмпатии и сочувствия. Суть состоявшегося тогда в списке рассылки неприятного разговора была такова: Люк (Luc Teirlinck, профессор Обернского университета, США) внес в ветвь разработки Emacs не совсем удачный патч, который вызвал неожиданные последствия для проекта. Поскольку в этом большом кумулятивном патче было собрано воедино сразу несколько важных исправлений, было нежелательно откатывать его целиком, поэтому Столлман попросил Стефана (Stefan Monnier, Монреальский университет, Канада) провести анализ патча и выкинуть оттуда проблемные вещи. Но именно в этот момент Стефан, один из самых квалифицированных и активных участников проекта, был чрезвычайно занят — у него родилась долгожданная дочка. Он извинился, что не сможет сделать это, сославшись на радостную причину. В публичном списке рассылки посыпались поздравления, но Столлман ответил одной резкой репликой:
>Мне жаль слышать это.
Далее Ник (Nick Roberts, NASA) также поздравил Стефана:
>Поздравляю тебя, Стефан! Я рекомендую тебе проводить все свободное время со своей дочкой!
Что общего между самыми востребованными профессиями и стремительным увеличением количества информации в мире? Ответ: язык структурированных запросов (SQL). SQL — рабочая лошадка среди языков программирования, основа основ для современного анализа и управления данными. Книга «SQL: быстрое погружение» идеальна для всех, кто ищет новые перспективы карьерного роста; для разработчиков, которые хотят расширить свои навыки и знания в программировании; для любого человека, даже без опыта, кто хочет воспользоваться возможностями будущего, в котором будут править данные.
Даже плохой программный код может работать. Однако если код не является «чистым», это всегда будет мешать развитию проекта и компании-разработчика, отнимая значительные ресурсы на его поддержку и «укрощение». Эта книга посвящена хорошему программированию. Она полна реальных примеров кода. Мы будем рассматривать код с различных направлений: сверху вниз, снизу вверх и даже изнутри. Прочитав книгу, вы узнаете много нового о коде. Более того, вы научитесь отличать хороший код от плохого. Вы узнаете, как писать хороший код и как преобразовать плохой код в хороший. Книга состоит из трех частей.
Книга "Изучаем Python" - это ускоренный курс, который позволит вам сэкономить время и сразу начать писать работоспособные программы (игры, визуализации данных, веб-приложения и многое другое). Хотите стать программистом? В первой части книги вам предстоит узнать о базовых принципах программирования, познакомиться со списками, словарями, классами и циклами, вы научитесь создавать программы и тестировать код. Во второй части книги вы начнете использовать знания на практике, работая над тремя крупными проектами: создадите собственную "стрелялку" с нарастающей сложностью уровней, займетесь работой с большими наборами данных и освоите их визуализацию, и, наконец, создадите полноценное веб-приложение на базе Django, гарантирующее конфиденциальность пользовательской информации. Если вы решились разобраться в том что такое программирование, не нужно ждать.
Алгоритмы - это всего лишь пошаговые алгоритмы решения задач, и большинство таких задач уже были кем-то решены, протестированы и проверены. Можно, конечно, погрузится в глубокую философию гениального Кнута, изучить многостраничные фолианты с доказательствами и обоснованиями, но хотите ли вы тратить на это свое время? Откройте великолепно иллюстрированную книгу и вы сразу поймете, что алгоритмы - это просто. А грокать алгоритмы - это веселое и увлекательное занятие.