О языке Rust и книге Дж. Блэнди и Дж. Орендорфа «Программирование на языке Rust»

К языку Rust я присматривался давно. Пару лет назад даже пытался писать на нем небольшую программку, но до серьезного использования дело не дошло. И вот в начале этого года я решил взяться за этот язык основательно.

Rust — это компилируемый язык, предназначенный в том числе и для системного программирования. Основная «фишка» языка — это исключение на уровне компиляции ошибок работы с памятью — не инициализированные указатели, висячие ссылки и т.п. — и избегание неопределенного поведения. При этом не используется сборщик мусора, а сам язык ориентирован на максимально возможную производительность. При этом стиль программирования на Rust сильно отличается от традиционного объектно-ориентированного программирования. Если говорить очень грубо, то это скорее напоминает C с интерфейсами и очень необычной работой с памятью. Разработчики Rust позиционируют язык как замена C++. Особенности языка заставляют заранее продумывать структуру взаимодействия используемых объектов, а не плодить сложную сеть из взаимосвязанных объектов в надежде, что сборщик мусора потом все уберет. У Rust очень строгий компилятор, который откажется компилировать программу, если у него не будет уверенности в том, что она корректно работает с памятью, и что не будет гонок данных в многопоточной программе.

Читать далее ‘О языке Rust и книге Дж. Блэнди и Дж. Орендорфа «Программирование на языке Rust»’ »

Книга С.Л. Соловейчика «Учение с увлечением»

Образование дают, образование получают…
Но надо еще уметь его взять!

Как уже некоторые из вас знают, я работаю в институте и читаю лекции студентам, поэтому меня важно, чтобы мой труд не пропадал даром. К сожалению, чтение лекций проходит с КПД около 15%, т.е. в группе на 25 человек максимум 4 человека проявляют заинтересованность в предмете. Я это оцениваю по тому, насколько студенты втягиваются в обсуждения и задают хоть какие-то вопросы, остальные в лучшем случае молча записывают материал, а в худшем — уходят в телефон. Возможно, они стесняются что-то спрашивать, хотя я постоянно подталкиваю их к взаимодействию во время занятий. Такое ощущение, что большая часть группы приходит на занятия только для галочки, хотя я уже давно отказался от подсчета посещаемости.

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

Этой проблеме и посвящена книга Симона Львовича Соловейчика «Учение с увлечением» (спасибо моей жене, которая навела на эту книгу). Симон Львович был журналистом, который много времени уделял вопросам педагогики, писал статьи и книги на эту тему. В основном он писал об учебе в школе. И книга «Учение с увлечением» посвящена проблеме заинтересованности школьников в изучаемых предметах. Первое издание ее вышло в 1976 году, позже было множество переизданий в советский период.

Читать далее ‘Книга С.Л. Соловейчика «Учение с увлечением»’ »

Книга «Разработка веб-приложений с использованием Flask на языке Python»

Если говорить о веб-разработке на Python, то в первую очередь вспоминается веб-фреймворк Django, на основе которого создано огромное количество как небольших сайтов, а также таких монстров как Instagram, сайт Mozilla, Bitbucket и множество других. Django хорош тем, что к нему «прилагаются батарейки», т.е. в библиотеку входит большое количество инструментов, которые могут понадобиться для построения движка сайтов разных типов — это пакеты для работы с базой данных, для создания профилей пользователей и их авторизации, для создания форм по объектом данных и т.д. Это удобно, но из-за этого сам фреймворк становится достаточно тяжелый, а при его обновлении каждый раз что-нибудь ломается. К тому же, если вас не устраивает какая-то часть фреймворка, то заменить ее на аналог может быть тяжело.

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

Я был приятно удивлен, узнав, что 2016 году была переведена книга Мигеля Гринберга «Flask Web Development», которая на русском языке стала называться «Разработка веб-приложений с использованием Flask на языке Python».

Читать далее ‘Книга «Разработка веб-приложений с использованием Flask на языке Python»’ »

Книга Стивена Вайнберга «Объясняя мир. Истоки современной науки»

В последнее время в этом блоге посты о книгах перемежаются с постами об OutWiker — сейчас очередь книжного поста.

На этот раз речь пойдет о книге Стивена Вайнберга «Объясняя мир. Истоки современной науки» — научно-популярной книге об истории науки, о развитии научного подхода, о роли экспериментов в изучении мира в различные эпохи. Автор этой книги — лауреат Нобелевской премии по физике в 1979 году и известный популяризатор науки.

Большинство книг по истории науки рассказывают в первую очередь о новом времени, начиная с XV — XVII веков, когда уже начали формироваться современные подходы в научной деятельности, в том числе используя которые Ньютон открыл законы, перевернувшие физику. Вайнберг же в книге «Объясняя мир» в основном сосредоточился на описании того, что было до Ньютона. Все-таки некоторые научные подходы начали формироваться еще до нашей эры, во времена Фалеса Милетского, Пифагора, Архимеда и Аристотеля. Вайнберг хотел показать, насколько эти первоначальные подходы сильно отличались от сегодняшних.

Читать далее ‘Книга Стивена Вайнберга «Объясняя мир. Истоки современной науки»’ »

Книга Эдриена Моуэта «Использование Docker»

Я давно посматривал на Docker, но до недавнего времени нигде его не применял на практике, а недавно меня убедили, что для сборки OutWiker его вполне можно использовать вместо виртуальных машин. Правда, для меня до сих пор остается загадкой, можно ли 32-битные контейнеры запускать в 64-битной системе (именно по этой причине для сборки я использовал полноценные виртуальные машины вместо контейнеров), но некоторое время назад такая надобность отпала.

Новые для себя технологии я обычно изучаю по книгам. Сначала я прочитал пару небольших книжек про Docker на английском языке в электронном виде (это были книги Karl Matthias and Sean P. Kane «Docker: Up and Running» и James Turnbull «The Docker Book»), а потом понял, что хотелось бы иметь что-то в бумажном виде. В бумажном виде на русском языке попалась книга Эдриена Моуэта с незамысловатым названием «Использование Docker». И, пожалуй, эта книга мне понравилась даже больше первых двух.

Читать далее ‘Книга Эдриена Моуэта «Использование Docker»’ »

Две книги про развитие информационных технологий

Утверждение об исключительности интернета не так однозначно.
… на протяжении долгого времени конкуренция в информационных отраслях
была скорее исключением, а вот монополия — правилом.

 

В сегодняшнем посте хочется рассказать сразу про две книги, которые рассматривают развитие информационных технологий с разных точек зрения и в разных странах — у нас и в США. Несмотря на разность подходов, обе они подводят к идее, что скоро мы можем потерять тот свободный интернет, который у нас имеется. Есть большая вероятность, что либо он будет подконтролен государству (что происходит со всеми СМИ у нас в стране), либо образуется единая компания-монополия, обойти влияние которой будет довольно трудно.

Читать далее ‘Две книги про развитие информационных технологий’ »

Книга Уолтера Айзексона «Альберт Эйнштейн»

Эту книгу мне подарила жена на новый год, зная, что я с большим интересом прочитал две другие книги Уолтера Айзексона — «Инноваторы» и биографию Стива Джобса. Книга оказалась очень кстати, поскольку после прочтения великолепной книги Манжит Кумар «Эйнштейн, Бор и великий спор о природе реальности», я хотел почитать биографию Эйнштейна, но первая попытка оказалась неудачной — мне в руки попалась книга из серии ЖЗЛ авторства Максима Чертанова, и это был тихий ужас. Язык такой, как будто тебе про Эйнштейна рассказывает гопник с бутылкой пива, сидя на ступеньках в подъезде, постоянно вставляя своё личное мнение обо всем. Книгу я закрыл уже где-то на 50-й странице. Кстати, в серии ЖЗЛ есть ещё одна, переводная, книга про Эйнштейна, которую написал Лоран Сексик, но про неё ничего сказать не могу — пока не читал.

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

Читать далее ‘Книга Уолтера Айзексона «Альберт Эйнштейн»’ »

Книга Уильяма Шоттса «Командная строка Linux»

Графический пользовательский интерфейс
делает простые задачи еще проще,
а интерфейс командной строки
делает сложные вещи выполнимыми.

Цитата из книги.


Решил я недавно прокачать свои знания про bash — в первую очередь разложить по полочкам для себя те конструкции языка, которыми иногда пользуюсь, но которые вызывали вопросы. Для этого решил прочитать книгу Уильяма Шоттса «Командная строка Linux», которая вышла на русском языке в прошлом году. И знаете, это, пожалуй, лучший учебник по командам Linux и консоли, который мне попадался. Если вы только собираетесь изучить программирование на bash, то эту книгу можно советовать в качестве основ.

В книге Шоттса мне в первую очередь понравилась подача материала. Автор очень методично и постепенно переходит от одной темы к другой, при этом каждую тему описывает очень аккуратно, чтобы из-за упрощений не возникло никаких некорректностей. Для многих команд кроме ее описания и примеров приводятся другие возможные варианты ее использования. Книга содержит много таблиц с возможными параметрами каждой команды, но при этом книга не превращается в справочник. Чтобы не углубляться в экзотические способы использования каких-то программ, автор за экзотическими подробностями отправляет в документацию.

Читать далее ‘Книга Уильяма Шоттса «Командная строка Linux»’ »

Яндекс.Книга

Дочитал на днях книгу Дмитрия Соколова-Митрича «Яндекс.Книга», которая посвящена истории Яндекса и немного истории других российских IT-компаний. Практически вся книга построена на основе различных интервью — не только с теми, кто стоял у истоков компании Яндекс или присоединился к компании в годы её «младенчества», но и с руководителями других российских IT-компаний. В книгу включены интервью с Александром Галицким, который работал над созданием технологии Wi-Fi по заказу компании Sun, а сейчас является членом Совета фонда «Сколково», Давидом Яном, основателем ABBY, Денисом Калининым, бывшим главой «Рамблер Интернет Холдинг» и бывшим директором «Сбербанк Технологии», Сергеем Белоусовым — сооснователем Parallels, и многими другими людьми.

Как и большинство книг об истории крупной компании, в Яндекс.Книге подробно описываются события, которые привели к появлению компании Яндекс, а также первые годы её развития, а её нынешнее состояние описано уже более обобщённо. Лично для меня было неожиданно узнать, что практически все крупные российские IT-компании были созданы людьми из науки, многие из них работали в НИИ, а в 90-ые годы прошлого века, когда наша наука полетела в тартарары, создали свою фирму.

Жаль, что интервью автор брал только у «крупных игроков» компании, не опускаясь до рядовых программистов, поэтому вся книга получилась сильно оптимистичная, образ компании Яндекс вышел какой-то слишком положительный. Яндекс представлена как компания с домашней атмосферой, хотя сейчас в ней работает более 6000 сотрудников. Эта книга вышла в 2014 году, и с того времени в Яндекс появились новые проекты, было бы здорово, если бы со временем вышло второе дополненное издание книги.

Читать далее ‘Яндекс.Книга’ »

Книга Тима Джексона «Inside Intel»

Продолжим книжную тему. Один из моих интересов — это история науки, техники и особенно IT. Недавно я случайно наткнулся на книгу, о которой до этого я даже не слышал. Это книга Тима Джексона «Inside Intel. История корпорации, совершившей технологическую революцию XX века». Ох, любят писатели-историки от IT использовать слово «революция», ну ладно, не в этом суть.

Как вы, наверное, поняли, название книги — это перефразированный рекламный слоган «Intel Inside», который уже больше 25 лет можно увидеть на компьютерах и ноутбуках, работающих на процессорах производства Intel. Кстати, в конце 2017 года Intel объявила о значительном сокращении программы «Intel Inside», но к теме сегодняшнего поста это уже не относится.

Эта книга на русском языке вышла только в 2013 году, но английский оригинал был издан в далеком 1997 году и охватывает историю компании от момента основания в 1968 году до 1997 года. Для этой исторической книги давность издания не является недостатком, поскольку почти 30 лет развития компании, которые описаны в книге, все равно никуда не денутся, а дальнейшую историю опишут новые авторы (кстати, интересно, есть ли книги с описанием более поздних лет компании).

Книга Тима Джексона мне понравилась, автор отдает должное техническим разработкам, которые родились в стенах Intel, но при этом он приводит множество примеров того, что работа в Intel — не сахар. Например, в ней рассказывается о жесткой дисциплине внутри компании, постоянном прессинге со стороны начальства, постоянные сверхурочные переработки под угрозой увольнения и т.п. А если кто-то уходил в конкурирующую компанию или создавал свою фирму, то юристы Intel подавали в суд на таких сотрудников для запугивания, даже если было ясно, что суд Intel проиграет.

Читать далее ‘Книга Тима Джексона «Inside Intel»’ »