Про лекции и конспекты

Чтение лекции — это процесс переноса конспекта преподавателя в тетрадь студента, минуя сознание обоих.

Недавно на Хабре появился перевод статьи Как я пишу конспекты по математике на LaTeX в Vim. Идея в том, что автор настолько виртуозно умеет работать в Vim и знает LaTeX, что вместо написания конспекта ручкой в тетради, успевает оформлять его в электронном виде в формате LaTeX. Но на этот пост меня подтолкнули комментарии, где разгорелись споры по поводу того, нужно ли вообще вести конспект лекций, не устарело ли это понятие в цифровой век.

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

Читать далее…

OutWiker 3.0.0.860 unstable и опрос по поводу новой иконки

OutWiker 3.0.0.860 unstable и опрос по поводу новой иконки

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

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

Также обновил плагины Snippets, Source, TeXEquation и UpdateNotifier. В основном изменения там касаются обновления украинской и немецкой локализаций. В плагине TeXEquation немного улучшен внешний вид окна предпросмотра набираемой формулы.

Читать далее…

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

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

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

Читать далее…

OutWiker 3.0.0.858 unstable и обновление плагинов

OutWiker 3.0.0.858 unstable и обновление плагинов

И снова всем привет! Благодаря прошедшим новогодним каникулам для проекта OutWiker удалось выкроить побольше времени, и поэтому в новой нестабильной версии, которая получила номер 3.0.0.858, было реализовано много интересных вещей, некоторые из которых в будущем позволят создавать интересные плагины.

Читать далее…

История одного бага или почему OutWiker не использует последние версии wxPython

История одного бага или почему OutWiker не использует последние версии wxPython

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

Эту детективную историю начнем с представления действующих лиц. Для отображения страниц OutWiker использует движок Internet Explorer под Windows и WebKit под Linux. Программа OutWiker написана с использованием библиотеки wxPython, которая предоставляет доступ к этим движкам, причем для работы с WebKit используется компонент WebKitGTK+, который используется в таких не самых известных браузерах как Epiphany и Midori. wxPython может использовать разные версии WebKit, это зависит от того, какие пакеты установлены на компьютере, на котором происходит компиляция библиотеки. Если в системе установлен пакет libwebkit2gtk-4.0-dev (я буду использовать в названия пакетов в Ubuntu), то библиотека wxPython будет собрана с поддержкой более новой версии WebKit 2, а если этого пакета в системе нет, но установлен пакет libwebkitgtk-3.0-dev, то будет использоваться WebKit 1. Причем первая версия WebKit уже считается устаревшей и, например, в Arch Linux она не поддерживается, но все еще находится в репозиторях Ubuntu.

Читать далее…

OutWiker 3.0.0.856 unstable и мысли по поводу web-версии OutWiker

OutWiker 3.0.0.856 unstable и мысли по поводу web-версии OutWiker

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

Читать далее…

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

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

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

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

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

Читать далее…

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

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

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

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

Читать далее…

OutWiker 3.0.0.854 unstable. Работа над интерфейсом

OutWiker 3.0.0.854 unstable. Работа над интерфейсом

Всем привет. Пришло время выкладывать очередную нестабильную версию OutWiker, которая теперь имеет номер 3.0.0.854. По сравнению с прошлой версией было сделано многое. Можно сказать, что изменения в этой версии были сделаны «по заявкам радиослушателей», то есть сюда в основном вошли улучшения в интерфейсе, о которых мне писали пользователи. Изменения коснулись как основной программы, так и некоторых плагинов.

Читать далее…

OutWiker 3.0.0.852 unstable и формат snap

OutWiker 3.0.0.852 unstable и формат snap

Привет! Сегодня я выложил следующую нестабильную версию OutWiker под номером 3.0.0.852. Если не считать исправления ошибок, то эта версия должна больше заинтересовать линуксоидов.

С версией под Linux всегда было сложно. Когда-то для распространения deb-пакетов OutWiker использовался PPA (Personal Packages Archive). В те давние времена приходилось привязываться к версиям библиотек, которые были в репозиториях Ubuntu разных версий. Но от версии к версии постоянно что-то ломалось, и поддерживать даже две-три версии этого дистрибутива было настоящим мучением. Это даже не ад DLL в Windows — это намного хуже.

После перехода на Python 3 и wxPython 4 такие deb-пакеты в принципе невозможно было создавать, потому что необходимых библиотек в стандартных репозиториях Ubuntu не стало, да и в имеющихся версиях библиотеки wxPython наблюдаются ошибки различной степени критичности. В последнее время для Ubuntu собирается deb-пакет, который содержит в себе бинарную сборку со всеми необходимыми для запуска библиотеками. Такая же сборка выкладывается в виде архива без привязки к формату deb, чтобы программу можно было бы запускать в дистрибутивах, которые не были порождены от Debian. К сожалению, успех запуска такой бинарной сборки гарантировать невозможно, потому что это грязный хак, который должен работать на всех дистрибутивах Linux только теоретически. Возникает вопрос, что делать?

Читать далее…