Линус торвальдс текст для редактирования word икт
Обращаем Ваше внимание, что в соответствии с Федеральным законом N 273-ФЗ «Об образовании в Российской Федерации» в организациях, осуществляющих образовательную деятельность, организовывается обучение и воспитание обучающихся с ОВЗ как совместно с другими обучающимися, так и в отдельных классах или группах.
Рабочие листы и материалы для учителей и воспитателей
Более 2 500 дидактических материалов для школьного и домашнего обучения
Столичный центр образовательных технологий г. Москва
Получите квалификацию учитель математики за 2 месяца
от 3 170 руб. 1900 руб.
Количество часов 300 ч. / 600 ч.
Успеть записаться со скидкой
Форма обучения дистанционная
- Онлайн
формат - Диплом
гособразца - Помощь в трудоустройстве
Видеолекции для
профессионалов
- Свидетельства для портфолио
- Вечный доступ за 120 рублей
- 311 видеолекции для каждого
Я делаю (бесплатную) операционную систему (это всего лишь хобби , и она
не будет большой и профессиональной как gnu) для клонов 386(486) AT.
Приступая к разработке своей операционной системы (ОС), Линус Торвальдс не помышлял о какой-либо конкуренции с фирмами типа Microsoft — это было просто хобби студента Хельсинского университета. Затем это хобби незаметно превратилось в самую многообещающую ОС ,причем на это превращение потребовалось восемь лет.
С детства Линус привык делать все собственными руками. Однажды мальчик не стал дожидаться отца , купившего ему сложную модель корабля, чтобы вместе с сыном склеить ее. Линус сделал все сам в первую же ночь. А позже это проявилось, как говорили университетские преподаватели ,в "сумашествии" — 20-летний студент решил самостоятельно создать самую сложную из компьютерных программ — операционную систему.
История ОС Linux , в принципе, началась еще до поступления Линуса в Хельсинский университет. Профессор Амстердамского университета Эндрю Танненбаум написал ОС Minix ,усеченную версию операционной системы UNIX , которая могла работать на персональном компьютере минимальной конфигурации.
Торвальдс решил заняться переработкой Minix ,устав от бесплодных попыток получить машинное время на принадлежащей университету машине Micro VAX корпорации Digital Equipment .Однако с Minix, незаменимой как средство обучения ,было все-таки невозможно работать как с полнофункциональной ОС.
Так или иначе, в итоге возникло ядро, содержащее все основные компоненты UNIX — переключение задач ,файловую систему и драйверы устройств.Другими словами, на свет появилась операционная система Linux Version 0.02.Это произошло весной 1991 года. Система, разработанная Линусом, получила название ,образованное от имени создателя и операционной системы UNIX.
Многие крупные производители программного обеспечения, такие как Oracle и Netscape, объявили о поддержке данной ОС ;растет и число коммерческих предложений для этой платформы. Целый ряд компаний, например Red Hat Software и Caldera Systems ,продают собственные дистрибутивы Linux с обязательствами технической поддержки.
Обращаем Ваше внимание, что в соответствии с Федеральным законом N 273-ФЗ «Об образовании в Российской Федерации» в организациях, осуществляющих образовательную деятельность, организовывается обучение и воспитание обучающихся с ОВЗ как совместно с другими обучающимися, так и в отдельных классах или группах.
Рабочие листы и материалы для учителей и воспитателей
Более 2 500 дидактических материалов для школьного и домашнего обучения
Столичный центр образовательных технологий г. Москва
Получите квалификацию учитель математики за 2 месяца
от 3 170 руб. 1900 руб.
Количество часов 300 ч. / 600 ч.
Успеть записаться со скидкой
Форма обучения дистанционная
- Онлайн
формат - Диплом
гособразца - Помощь в трудоустройстве
311 лекций для учителей,
воспитателей и психологов
Получите свидетельство
о просмотре прямо сейчас!
1 Практическая работа № 1 «Редактирование и форматирование текстового документа»
Цель работы: научиться устанавливать параметры страницы, редактировать и форматировать текстовый документ.
Форматирование текста
Команда Разметка страницы – Параметры страницы
Кнопка на панели инструментов «Шрифт»
Изменение размера шрифта
Кнопка на панели инструментов «Шрифт»
Изменение начертания шрифта
Кнопки на панели инструментов «Шрифт»: полужирный, курсив,
подч е рк н у ты й
Кнопки на панели инструментов «Шрифт»: по левому краю, по
центру, по правому
Изменение цвета текста
Кнопки на панели инструментов «Шрифт»:
1. Команда Главная - Абзац (указать количество см отступа)
2. Использовать клавишуTab клавиатуры
3. Линейка форматирования
Отступ первой строки
Отступ всех строк кроме первой строки
Отступ всего выделенного фрагмента
1 З а д а ни е 1.
· Установить параметры станицы: верхнее, нижнее поле – 2 см, левое – 3 см, правое – 1,5 см.
· Набрать текст с учетом форматирования (размер шрифта - 14 пунктов, шрифт Times New Roman).
Сколько битов может быть в байте?
Название «байт» (слово byte представляет собой сокращение словосочетания BinarYTErm — «двоичный терм») было впервые использовано в 1956 году В. Бухгольцем при проектировании первого суперкомпьютера IBM 7030 Stretch .
В 1950-х и 1960-х годах не было единого стандарта относительно количества битов в байте. В разных компьютерных системах байт содержал от 6 до 9 битов.
Лишь с начала 1970-х годов в большинстве архитектур стали использовать байт размером 8 битов, и постепенно такое соотношение стало стандартным.
Для устранения двусмысленности в компьютерной литературе иногда для точного обозначения последовательности 8 битов вместо термина «байт» используют термин
1 З а д а ни е 2 .
· Наберите текст. Используйте 16 размер шрифта. Заголовок - шрифт Arial.
· Вставьте строку выше заголовка «Информация к размышлению» (шрифт Курсив, выравнивание по правому краю). Скопируйте текст 4 раза. Выровняйте: первый текст - по ширине, второй - по левому краю, третий - по правому краю, четвертый – по центру.
Компьютер в нашем мире
Сейчас, наверно трудно найти человека, который хотя бы раз в жизни не встретился бы с компьютером. Компьютеры приходят к нам в дом, помогают облегчить работу человека. Различные программы могут обучать и развлекать.
С помощью глобальной сети Internet люди могут общаться, находить нужную информацию, даже если она находится «на другом конце света».
1 З а д а ни е 3 .
Набрать текст по образцу.
Вчитайтесь в стихотворение М.Ю. Лермонтова «Лирик»:
Хотел бы в единое слово
Я слить свою грусть и печаль, И бросить то слово на ветер,
Чтоб ветер унес его в даль
(М.Ю.Лермонтов)
Как велик поэт ! Всего в нескольких словах, объединенных рифмой, он сумел выразить силу чувств, стремительность мысли, благородство русского языка. Легкость слога мы встречаем во многих, если не сказать во всех стихотворениях Михаила Юрьевича.
Ночевала тучка золотая На груди утеса-великана.
1 З а д а ни е 4 .
Тучки небесные – Вечные странники!
Этот текст содержит 325 знаков с пробелами. Засеките время и наберите текст. Определите скорость печати (знаков в минуту). Вставьте Дату с помощью команды Вставка - Дата и время.
Директору колледжа Веселову С.В. студента 100группы Глебова Алексея
Я, Глебов Алексей, опоздал сегодня на урок информатики, потому, что всю ночь сидел в интернете и активно чатился. Подхватил там несколько троянов и червей, вызвал доктора Касперского, с трудом вылечился. Больше не буду.
19 сентября 2015 г.
s Контрольные вопросы:
1. Основное назначение текстового редактора?
2. Что такое редактирование текстового документа?
3. Что такое форматирование текстового документа?
2 Практическая работа № 2 «Списки»
Цель работы: научиться создавать и редактировать списки в программе MS Word.
Выбрать значок на ленте Главная
Выбрать значок на ленте Главная
Выбрать значок на ленте Главная.
Для перехода на нужный уровень списка выбрать команду
Главная -Уменьшить отступ или Увеличить
Порядок работы:
1 З а д а ни е 1 .
Набрать предложенный текст и оформить списки.
Пифагор Самосский (VI в. до н. э.)
1. древнегреческий философ,
2. религиозный и политический деятель,
3. основатель пифагореизма,
Пифагору приписывается, например, изучение:
· свойств целых чисел и пропорций,
· доказательство теоремы Пифагора.
1 З а д а ни е 2 .
Набрать предложенный текст и оформить списки.
1. Системное программное обеспечение.
2. Прикладное программное обеспечение.
o Растровые графические редакторы.
o Векторные графические редакторы.
o Простые текстовые редакторы.
o Текстовые процессоры.
1 З а д а ни е 3 .
Набрать предложенный текст и оформить списки.
1. Структура графической системы.
1.3. Другие графические устройства.
2. Методы представления графических изображений.
2.1. Растровая графика.
2.2. Векторная графика.
3. Первые шаги в CorelDraw.
3.1. Рабочий экран.
3.2. Работа с объектами (начало).
4.1. Системы цветов.
4.2. Цвет в CorelDraw.
4.2.1. Заливка объектов.
4.2.2. Закраска контуров.
5. Работа с объектами в CorelDraw (продолжение).
5.1. Контурные линии.
5.2. Вспомогательный режим работы.
6. Работа с файлами.
6.1. Форматирование графических файлов.
6.2. Сохранение и загрузка изображений в CorelDraw.
6.3. Импорт изображений в CorelDraw.
1 З а д а ни е 4 .
· Наберите текст. Вторая строка – шрифт с тенью.
· Скопируйте текст 4 раза.
· Список из фамилий сделайте нумерованным, а следующие три строчки – маркированным.
o в первом тексте формат номера 1., маркер u ;
o во втором тексте а) и Ú ;
o в третьем I и è ;
o в четвёртом начать нумерацию с 10), маркер – рисунок.
Список студентов, участвующих в соревнованиях.
(победители и призеры различных видов спорта.)
1. Выродов Павел
¨ В ходе соревнований техника безопасности не нарушалась.
¨ Призеры награждены грамотами и призами.
¨ Все временные рамки соблюдены.
Тренер школы Смелых И.И.
s Контрольные вопросы:
1. Какие виды списков существуют?
2. Какой вид списков использовался в задание 1?
3. Какой вид списков использовался в задание 3?
3 Практическая работа № 3 «Вставка и редактирование таблиц»
Цель работы: научиться создавать и редактировать таблицы в программе MS Word.
1. Команда Вставка – Таблица вставить таблицу (указать в открывшемся окне необходимое число столбцов и строк таблицы)/нарисовать таблицу (нарисовать таблицу карандашом)
2. Значок на панели инструментов: позволяет добавить таблицу путем выбора необходимого количества строк и столбцов.
Изменить границы можно используя значок на панели инструментов
Выделить необходимые ячейки, нажать правую кнопку мыши и выбрать
команду Объединить ячейки или Разбить ячейки.
1 З а д а ни е 1 .
1 З а д а ни е 2 .
Фамилия и инициалы студента
Дата занятия
1 З а д а ни е 3 .
Оформите таблицу по образцу.
Таблица 3 – Приставки для кратных единиц
Обозначение приставки
гига мега кило гекто дека деци санти милли микро
к г да д с м мк н
Гпа (гигапаскаль) Мом (мегаом) кГц (килогерц) гл (гектолитр)
даН (деканьютон) дБ (децибел)
см (сантиметр) мВ (милливольт) мкА(микроампер) нс (наносекунда)
1 З а д а ни е 4 .
OUTLOOK EXPRESS
ЛЕВАЯ ЧАСТЬ ОКНА
ПРАВАЯ ЧАСТЬ ОКНА
ПАПКИ:
Содержит получаемые адресатом
Содержит отправляемые адресатом письмас момента их создания и до момента их доставки с локального
компьютера пользователя на почтовый сервер провайдера
Содержит все письма, доставленные на
Содержит удаленные письма
Содержит заготовки писем
КОНТАКТЫ:
Предоставляют доступ к информации, хранящейся в Адресной книге
(адреса электронной почты, телефоны, …)
s Контрольные вопросы:
1. Назовите элементы таблицы?
2. Как можно разбить ячейки таблицы?
3. Каким образом устанавливаются границы таблицы?
4 Практическая работа № 4 «Вставка и редактирование графических объектов»
Цель работы: научиться создавать и редактировать графические объекты в программе MS Word.
Теоретический материал
1. Команда Вставка - Рисунок
2. Скопировать изображение в буфер обмена, а затем добавить его в Word: сочетание клавиш ctrl + С и ctrl + V.
Щелкнуть по рисунку мышью, появится панель «Работас изображением»
Вставка объекта WordArt
Команда Вставка - WordArt
Вставка основных автофигур
Команда Вставка - Фигуры
Порядок работы:
1 З а д а ни е 1 .
Оформите следующий текст и рисунок по образцу.
У природы нет плохой погоды,
Всякая погода – благодать.
1 З а д а ни е 2 .
Дождь и снег, любое время года Надо благодарно принимать.
Применяя панель рисования текстового процессора MS Word, изобразите предложенный
1 З а д а ни е 3 .
1 З а д а ни е 4 .
Оформите алгоритм решения квадратного уравнения с помощью блок-схем.
Решение квадратного уравнения
x = - b
s Контрольные вопросы:
1. Какие графические возможности представляет текстовый редактор MSWord?
2. Перечислите основные графические фигуры в MSWord?
3. Как добавить текст надписи к графическому изображению?
5 Практическая работа № 5 «Работа с редактором формул»
Цель работы: научиться создавать и редактировать формулы с помощью встроенного редактора формул в программе MS Word.
Теоретический материал
Команда Вставка - Формула
Для редактирования созданной формулы достаточно щелкнуть на ней и загрузится редактор формул. Чтобы удалить формулу, необходимо
нажать клавишу Delete на клавиатуре.
1 З а д а ни е 1 .
Набрать математические выражения вместе с текстом по образцу.
Квадратное уравнение – уравнение 𝑎𝑥 2 + 𝑏𝑥 + 𝑐 = 0 , где а, 𝑏 и с – заданные числа, причём а ¹ 0, х – неизвестное число.
Коэффициенты квадратного уравнения называют так: 𝑎 – первый или старший коэффициент, 𝑏 – второй коэффициент, с – свободный член.
Примеры квадратных уравнений:
2x 2 - x - 1 = 0,3x 2 + 7x = 0.
Неполное квадратное уравнение – квадратное уравнение 𝑎𝑥 2 + 𝑏𝑥 + 𝑐 = 0 , у которого хотя бы один из коэффициентов 𝑏 или 𝑐 равен нулю.
Примеры неполных квадратных уравнений:
5x 2 + 4 = 0,
8x 2 + x = 0.
Формула корней квадратного уравнения:
x 1,2 = 2a
Например, уравнение 3x 2 + 5x - 2 = 0 имеет два корня:
Приведённое квадратное уравнение – уравнение вида
x 2 + px + q = 0.
Формула корней приведённого квадратного уравнения:
x = - p ±
Например, корни уравнения x 2 - 6x - 7 = 0 таковы:
s Контрольные вопросы:
1. Для чего необходим редактор формул?
2. Как редактировать формулы в текстовом редакторе?
6 Практическая работа № 6 «Оформление документа. Колонки»
Цель работы: научиться создавать и редактировать колонки в программе MS Word.
Команда Разметка страницы – Колонки – Другие колонки
Переход на другую
Команда Разметка страницы – Разрывы – Столбец
команда Вставка - Буквица
1 З а д а ни е 1 .
Оформить следующий текст по образцу.
аверно, каждый мечтает хоть раз в жизни побывать в стране Бизе и Равеля, Гюго и
Мопассана, «отца мушкетеров» Александра Дюма и удивительного мечтателя, писателя- фантаста Жюля Верна.
Франция – одно из крупных государств западной Европы. Оно раскинулось от суровых скалистых берегов Нормандии до теплого лазурного берега Средиземного моря. Когда-то всю территорию Франции покрывали густые леса. Ныне они сохранились главным образом в горах. Самые высокие горы здесь
– снежные Альпы. По обширным низменностям текут полноводные реки – Сена, Рона, Луара, Гаронна.
Париж – один из красивейших городов мира. Ни один город страны не принес Франции такой популярности в мире, как Париж.
Символ Парижа - знаменитая Эйфелева башня, построенная в 1889 году по проекту инженера
Эйфеля для Всемирной выставки. Высота башни 319 метров. На третьем этаже находится музей Эйфеля.
строительства Эйфелевой башни 50 известных французов, в числе которых
Дюма, написали петицию протеста против этого «железного монстра», который испортит весь вид Парижа. В наше время Эйфелева башня стала одним из самых посещаемых туристами памятником города.
s Контрольные вопросы:
1. Для чего в тексте оформляют колонки?
2. Какое максимальное количество колонок можно создать в MS Word?
3. Что такое буквица, ее назначение?
7 Практическая работа № 7 «Оформление документа. Колонтитулы и сноски»
Цель работы: научиться создавать и редактировать колонтитулы и сноски в программе MS Word.
Колонтитул - заголовочные данные, помещаемые над текстом страницы (иногда сбоку, внизу) книги, журнала, газеты.
Команда Вставка – Верхний или Нижний колонтитул
Сноска -это структурный элемент документа, примечание к какому-либо термину основного текста.
Команда Ссылки – Вставить сноску
1 З а д а ни е 1 .
Напишите текст, оформив текст в квадратных скобках, как сноски в конце страницы..
Известно со слов Гродота [Геродот (484 – 425 гг. до н.э.) – древнегреческий историк, прозванный отцом истории], что в 610 году до н.э. мыс Доброй Надежды видели финикийские мореплаватели; в 1291 году н.э. до мыса доходили генуэнзы братья Вивальди. Однако открыл его Бартоломео Диас в 1486 году [Бартоломео Диас (14501 – 1500) – португальский мореплаватель; первым обогнул берега Африки в 1486 году открыл мыс Доброй Надежды]. Васко да Гама [Васко да Гама (1469 – 1524) – португальский мореплаватель; открыл морской путь в Индию через мыс Доброй Надежды] обогнул его 20 ноября 1497 года. Между 1497 и 1648 годами португальцев и голландцы делали попытки организовать там свои колонии, но безуспешно и только в 1652 году хирург нидерландского флота Антоний Ван Ризберг основал на мысе предприятие, построил цитадель и положил начало городу, который называется Кейптаун.
1 З а д а ни е 2 .
Наберите данный текст и создайте верхний колонтитул «Династия Романовых» и нижний колонтитул – дата создания.
Денис, благодарю! Как раз будет чем заняться в выходные
Илья Бакуров
Денис, в читай городе нет ее :( уже пару раз заходил говорят нет , повезло тебе что есть бумажный вариант
Sam, как-то не читаются электронки, не остаётся впечатления от них, как от произведения или труда автора)
Денис, да-да полностью согласен с тобой, ну а если нет варианта другого приходится читать в электронном варианте
From: torvaldsSklaava.Helsinki.Fi (Linus Benedict Torvalds)
To: Newsgroups: comp.os.inix
Subject: Чего вам больше всего не хватает в minix?
Summary: небольшой опрос для моей операционной системы Message-ID:
Показать полностью.
Привет всем пользователям minix! Я тут пишу (бесплатную) операционную систему (любительскую версию – она не будет такой большой и профессиональной, как gnu) для 386-х и 486-х AT. Я вожусь с этим с апреля, и она, похоже, скоро будет готова. Напишите мне, кому что нравится/не нравится в minix, поскольку моя ОС на нее похожа (кроме всего прочего, у нее – по практическим соображениям – то же физическое размещение файловой системы). Пока что я перенес в нее bash (1.08) и gсс (1.40), и все вроде работает. Значит, в ближайшие месяцы у меня получится уже что-то работающее, и мне бы хотелось знать, какие функции нужны большинству. Все заявки принимаются, но выполнение не гарантируется: –)
Линус (Torvalds@klaava.Helsinki.fi)
PS. Она свободна от кода minix и включает мультизадачную файловую систему. Она НЕ переносима (используется переключение задач 386 и пр.) и, возможно, никогда не будет поддерживать ничего, кроме АТ-винчестеров – потому что у меня больше ничего нет: – (.
Да уж, 386. Недавно решил поставить на старый нетбук минт. Свежая версия устанавливаться не захотела, а на старой не заработал менеджер установки приложений.
Пришлось обратно хрюшу накатить.
Дирк Хондел, один из тех, кто стоял у истоков Linux, однажды сказал о создателе Linux Линусе Торвальдсе: «Линус не только блестящий программист: у него хороший вкус. Торвальдс находит простые и разумные пути решения проблем, умеет всё «разложить по полочкам». Сложные вещи он делает простыми. По-моему, это и есть главное отличие превосходного программиста от просто хорошего».
В недавнем интервью, примерно на 14-й минуте, Линус Торвальдс коснулся темы «хорошего вкуса в программировании». Хороший вкус? Ведущий попросил его остановиться на этом подробнее, и Линус, пришедший не с пустыми руками, показал пару слайдов.
Сначала был продемонстрирован пример плохого вкуса в программировании, для того, чтобы на его фоне лучше было видно достоинства кода более качественного.
Пример плохого вкуса в программировании
Это – функция, написанная на C, которая занимается удалением объектов из связанного списка. Она состоит из 10 строк кода.
Линус привлёк внимание к управляющей конструкции if в нижней части функции. Именно этим фрагментом он был особенно недоволен.
Я поставил видео на паузу и внимательно рассмотрел слайд. Я совсем недавно писал что-то подобное. По сути, Линус сказал, что у меня плохой вкус. Проглотив обиду, я продолжил смотреть видео.
Я уже сталкивался с тем, что Линус объяснял аудитории. А именно, речь шла о том, что при удалении объектов из связанного списка нужно рассмотреть два случая. Первый – когда объект находится где-нибудь в середине списка. Второй – для объекта в начале списка. Такой подход вынуждает использовать конструкцию if и приводит к написанию безвкусного кода.
Но, если сам Линус признаёт необходимость использования условного оператора, почему же такой подход его не устраивает?
Дальше он показал аудитории второй слайд. Это был пример той же функции, но на этот раз написанной со вкусом.
Пример хорошего вкуса в программировании
То же самое, что в предыдущем примере делалось в десяти строк кода, теперь укладывается в четыре.
Но сама по себе длина текста программы не особенно важна. Важен подход, который приводил к появлению условного оператора в конце первого примера. В новом коде дополнительные условия проверять не нужно. Код был переработан так, что и для удаления элемента из середины списка, и для удаления первого элемента, применяется один и тот же подход.
Линус объяснил новый код, сказал, что самое главное заключается в устранении пограничного случая, после чего разговор переключился на другую тему.
Размышления о хорошем вкусе в программировании
Какое-то время я размышлял над примером. Линус был прав. Второй фрагмент гораздо лучше. Если бы это был тест на различение хорошего и плохого вкуса в программировании, я бы этот тест провалил. Мысль о том, что можно обойтись без этого злосчастного условия, никогда не приходила мне в голову. И я не раз писал подобное, так как часто работаю со связанными списками.
Пожалуй, главная ценность вышеописанного примера даже не в том, что он демонстрирует хороший способ удаления элементов из связанного списка. Главное здесь то, что этот пример заставляет размышлять о том, что код, который ты написал, реализации небольших алгоритмов, разбросанные по программе, можно улучшить такими путями, о которых ты и не подозревал.
Вот на эту идею я и обратил особое внимание, когда решил пересмотреть тексты своего свежего проекта. Возможно, это судьба, но моя программа тоже написана на C.
Насколько я понимаю, в центре внимания вопроса о хорошем вкусе в программировании лежит устранение пограничных случаев, которые имеют тенденцию проявляться в коде как условные операторы. Хороший вкус в программировании выражается, таким образом, в сокращении количества условий, которые приходится проверять.
Хочу рассказать об одном удачном примере улучшения моего кода.
Инициализация краёв сетки со вкусом
Ниже показан алгоритм, который я написал для того, чтобы инициализировать элементы вдоль краёв сетки, которая представлена в виде многомерного массива: grid[rows][cols] .
Цель этого кода заключалась лишь в том, чтобы инициализировать значения для элементов, которые располагаются по краям – то есть, меня здесь интересовали верхняя и нижняя строки, и правый и левый столбцы.
Для того, чтобы это сделать, я, в исходном варианте программы, прошёлся в цикле по каждому элементу сетки, и, используя условный оператор, проверил, находится ли он на краю. Вот как это выглядело:
Хотя всё работало как надо, было понятно, что код далеко не идеален. А именно, вот основные проблемы этого фрагмента:
-
Код слишком сложно устроен. Использование четырёх условных операторов в двух вложенных циклах выглядит неуклюже.
Повозившись какое-то время с программой, я смог уменьшить сложность алгоритма, реализация которого теперь содержала лишь один цикл for, который содержал четыре условия. Это было небольшое улучшение в плане уменьшения сложности структуры кода, но серьёзное – в производительности. Теперь выполняется лишь 256 проходов цикла, один для каждого элемента, расположенного на краю. Вот, как выглядел тот же фрагмент после улучшения.
Стало лучше? Да. Но выглядит всё это просто отвратительно. Этот код не из тех, которые можно понять с первого взгляда. Только одно это заставило меня двигаться дальше.
Я продолжил экспериментировать, задался вопросом о том, а можно ли ещё что-то улучшить. Ответ был однозначным: «Да, можно». И то, к чему я в итоге пришёл, было настолько поразительно просто и элегантно, что я, честно говоря, не мог поверить в то, что для того, чтобы до этого додуматься, мне пришлось потратить столько времени.
Вот то, что у меня получилось. Здесь лишь один цикл и никаких условных операторов. Более того, тело цикла исполняется лишь 64 раза. Этот вариант значительно проще и производительнее первого.
В этом коде в каждой итерации цикла инициализируется четыре разных граничных элемента. Код просто устроен и весьма эффективен в плане производительности. Его легко читать. Этот вариант не идёт ни в какое сравнение с первым и даже со вторым.
В итоге результатами я остался абсолютно доволен.
Есть ли у меня вкус к программированию?
И что же, теперь я программист, код которого отвечает правилам хорошего вкуса?
Мне хочется надеяться, что так оно и есть, но не из-за того, что я смог переделать неудачный фрагмент своей программы, который показал выше, да и другие тоже, которые в статью не включил. Всё дело в том, что проявление хорошего вкуса в программировании – это нечто большее, нежели некий фрагмент текста. Линус и сам говорил, что пример, который он привёл, слишком мал для того, чтобы должным образом проиллюстрировать его точку зрения.
Я полагаю, что Линус имел в виду то, что разработчики, обладающие «хорошим вкусом к программированию», отличаются от других тем, что они уделяют время на осмысление того, что они создают, перед тем, как начинают писать код.
Они определяют границы компонентов, с которыми работают, и то, как эти компоненты взаимодействуют. Они стремятся удостовериться, в том, что всё хорошо друг с другом сочетается, стараются добиться изящества кода и процесса его исполнения.
Результат такого подхода похож на код, который привёл Линус, да и на мой тоже, только в другом, более крупном, масштабе.
Некоторые считают Линуса Торвальдса, создателя операционной системы Linux и репозитория Git, просто везучим человеком. Кому-то он, наоборот, кажется целеустремленным энтузиастом своего дела. Однако никто не будет спорить с тем, что благодаря исключительной одаренности Торвальдса появилась операционная система, которая распространилась по всему миру.
Более того, принципиально важным для ее создателя было бесплатное использование и свободное редактирование исходного кода ОС. Вокруг Linux образовалось огромное opensource-сообщество, благодаря которому система развивается и по сей день: постоянно появляются новые сборки и новые операционные системы на базе ядра Linux.
Условия распространения Linux были разработаны еще на начальной стадии. Linux распространяется свободно, при этом не может быть выставлена на продажу. В случае если пользователь вносил какие-то изменения или улучшения в систему, он должен был сделать их всеобщим достоянием в виде исходников.
«Игра» в Linux
Линус Торвальдс не думал о славе, и вообще не предполагал, что история с Linux так далеко зайдет. Он увлекался компьютерами и программированием с школьных лет и продолжал заниматься любимым делом, учась в Университете Хельсинки. Он сам часто отмечает, что программированием нужно заниматься в удовольствие. Поэтому точно так же, как в детстве, он просто «играл» в разработку Linux. Движимый сначала азартом, а позднее положительными отзывами, Торвальдс в один прекрасный момент обнаружил, что создал операционную систему.
Linux 0.01
«Никто на самом деле не создает прекрасный код с первого раза, за исключением меня, но я такой один».
Постепенно «играть» в Linux вместе с его создателем стали другие разработчики. Раскрыв все карты и выложив исходники своего детища в открытый доступ, Торвальдс в какой-то степени рисковал потерять статус ведущего разработчика в проекте. Однако он, судя по всему, догадывался, что его профессиональный уровень был значительно выше большинства разработчиков. Кроме того, далеко не все умеют работать много, качественно и при этом бесплатно. А у Линуса Торвальдса как раз была такая «уникальная» способность.
А следующая цитата иллюстрирует термин «развлечение» в представлении Торвальдса:
Итак, большинство из вас, скорее всего, будет невыносимо маяться от скуки в Рождество, и вот вам идеальное развлечение. Протестируйте 2.6.15-rc7. Все магазины будут закрыты, и на самом деле не будет лучшего занятия между поеданием пищи.
В общем-то, до того, как Линус женился на своей студентке, программирование было едва ли не единственным занятием, которым он занимался между «поеданием пищи». После женитьбы в 1996 году Торвальдс устроился на работу в калифорнийский стартап Transmeta, который разрабатывал энергоэффективные CPU. Но тем не менее, он оставался ведущим разработчиком Linux и при этом продолжал получать удовольствие.
А в 2003 году он ушел из компании, чтобы всецело сосредоточиться на разработке своей ОС. Уход стал возможен благодаря новообразованной общественной организации The Linux Foundation (в то время она называлась Open Source Development Labs), которая обеспечила Торвальдса медицинской страховкой и зарплатой.
Нечаянный успех
Сообщество Linux превратилось в некий саморегулируемый организм, которым никто не управлял централизованно. Соответственно, не было никакого смысла устраивать борьбу за власть в проекте. Впрочем, Торвальдсу все-таки приписывают неформальное лидерство. Согласно известной цитате, руководить программистами — все равно что пасти стадо кошек. Возможно, Линус смог найти баланс между общим направлением развития проекта и одновременно не стал мешать разработчикам гулять самим по себе. Тем более, что в рамках данного проекта, любой участник может вести собственную разработку на базе ядра Linux, никому не мешая.
Можно также вспомнить, что подобное притягивает подобное: будучи адекватным и самокритичным профессионалом без завышенного ЧСВ, Торвальдс естественным образом «притянул» к себе тех, кто обладал схожими качествами. В какой-то момент Linux стал самым успешным opensource-проектом. А как известно, команда чаще всего добивается серьезных успехов, когда ее участники смотрят примерно в одном направлении.
Подобные результаты не могли оставить равнодушными коммерческих производителей операционных систем… и просто завистливых людей, оставшихся в стороне. Однако Линус Торвальдс не стремился перейти им дорогу или заставить кого-то завидовать. ОС Linux начала распространяться за пределами сообщества потому, что была действительно качественным продуктом. Особенно широкие возможности открылись перед ней, когда весной 1992 года хакер Орест Збровски успешно адаптировал X Window для Linux. Таким образом, у Linux появился графический интерфейс.
Помимо разработки операционных систем, Торвальдса мало что интересовало. Хотя эта тема включает в себя множество аспектов, которыми можно заниматься всю жизнь. Наиболее скучными направлениями Линус считал разработку систем контроля версий и работу с базами данных. Однако, по иронии судьбы, в 2005 году он был вынужден создать свою систему управления исходным кодом.
В 2005 году Торвальдс выпустил релиз Linux 2.6.12-rc2 и заявил, что не продолжит разработку операционной системы, пока не будет замены репозитория BitKeeper, которым сообщество Linux пользовалось до 2005 года. От BitKeeper пришлось отказаться в силу разногласий с ее разработчиками по вопросам его бесплатного использования в opensource-разработке. А другие системы управления исходным кодом Торальдсу категорически не нравились.
«В результате, я решил, что сам за две недели смогу написать что-то получше, и не ошибся».
Торвальдс создал распределенную систему управления исходным кодом Git за две недели. Он не раз говорил, что терпеть не может централизованные репозитории по типу SVN. При создании Git Линус четко представлял, что ему нужно: децентрализация, возможность независимой офлайн-разработки, удобство и надежность при ветвлении и слиянии. Более того, он создавал систему управления исходным кодом специально для нужд разработчиков ядра Linux.
Но Git была уготована «великая» судьба, чего Торвальдс, опять же, никак не ожидал. Репозиторий стал популярен за пределами Linux-сообщества. Git использовали разработчики таких продуктов, как KVM, Qt, Drupal, Puppet, Wine.
Гик с характером
На волне популярности Git Линус даже выступил с докладом в Google в 2007 году. Ознакомившись с докладом, можно сделать вывод, что Торвальдс относился к себе и сложившейся ситуации с достаточной долей иронии и самокритики:
Я должен слегка предостеречь вас, что я не очень хороший оратор, частично потому, что я не люблю выступать, а частично потому, что за последние несколько лет все только и хотели от меня докладов о туманном будущем Линукса в следующем столетии, а я – вообще гик и предпочитаю говорить о технологиях.
Еще в детстве Линус Торвальдс был застенчивым и малообщительным человеком. В школе он считался типичным «ботаником», что вполне соответствовало его внешности (щуплый и низкорослый) и увлечениям. Он считал себя «некрасивым» – в том числе, из-за большого носа.
В юности он продолжал страдать от всяческих комплексов, связанных с социализацией. Правда, страдал он исключительно в свободное от программирования время – то есть, довольно редко.
Его неудачи в социуме с лихвой компенсировались успехами в компьютерных науках, где Торвальдс получал удовольствие от собственного «всемогущества». Но подобные противоречия характерны для выдающихся людей и с возрастом компенсируются. В данном случае, можно проследить, какой отпечаток это наложило на его манеру общения.
Вы можете не соглашаться со мной сколько хотите, но в течение этого доклада все, кто не согласен со мной, по определению — тупые уроды. Помните об этом! Вы будете вольны делать и думать все что захотите, когда я закончу доклад. А сейчас я рассказываю свое единственно правильное мнение, так что пользователи CVS, если вы действительно его так любите, уйдите с глаз моих долой. Вам надо обратиться в психушку или куда-то еще.
Та тема, в которой Торвальдс чувствует себя уверенно, становится полем для импровизации, самоиронии, кокетства и прочих форм заигрывания с публикой.
Я запустил проект, разработал архитектуру и начальный код, на протяжении последних полутора лет его поддерживает гораздо более славный парень, японец Junio Hamano, и именно он сделал Git более доступным для простых смертных. Ранние версии Git действительно требовали некоторое количество «ментальных пунктов» мозгосилы. C тех пор он стал гораздо проще.
В общем, это мой обычный подход — все остальные делают все возможное, а я сам могу просто сидеть и потягивать ПинаКоладу.
Не чужды Линусу Торвальдсу и такие качества, как откровенная прямота, граничащая с демонстративным неприличием. Это иллюстрирует история сотрудничества с компанией NVidia в 2012 году.
Одна из студенток вуза попросила создателя Linux прокомментировать отношения opensource-сообщества с одним из крупнейших в мире разработчиков графических ускорителей и процессоров – NVidia.
Линус Торвальдс заявил, что NVidia является одной из худших компаний, с которыми ему приходилось иметь дело. По его словам, представители NVidia совершенно не имеют желания сотрудничать с сообществом разработчиков Linux и продолжает держать закрытым код своих графических драйверов для Linux.
Завершая свой ответ, Линус Торвальдс подытожил вышесказанное в отношении NVidia, сделал неприличный жест рукой на камеру и заявил: «NVidia, fuck you!»
Ценности, которые отстаивал (может быть, порой чересчур демонстративно) Линус Торвальдс, изменили представление о том, каким может быть opensource-сообщество. Его пример вдохновил, да и сейчас продолжает вдохновлять, «на подвиги» других разработчиков.
20 апреля 2012 года Линус Торвальдс (вместе с японским медиком Синъей Яманакой) стал лауреатом премии «Технология тысячелетия» (Финляндия).
В 2014 году Линус Торвальдс получил награду Computer Pioneer от организации IEEE Computer Society.
Читайте также: