OutWiker 3.0.0.866 unstable

OutWiker 3.0.0.866 unstable

Всем привет. Сегодня выложил следующую нестабильную версию OutWiker с номером 3.0.0.866.

В этой версии я в основном сосредоточился на исправлении ошибок и наведении красоты в коде программы. Но и новые возможности в этой версии тоже появились.

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

Айтишные события в ближайшее время

Айтишные события в ближайшее время

В ближайшее время состоится сразу несколько интересных айтишных событий.

Завтра, 8 августа, в офисе Леруа Мерлен соберется московский клуб программистов, чтобы обсудить работу с сокетами и образовательный процесс в IT — https://www.meetup.com/progmsk/events/263642165

На следующей неделе 16 августа в музее Яндекса пройдет лекция про историю КПК — https://yandex.ru/museum/ Вспомнив, что у меня в завалах компьютерного железа тоже валяется КПК Dell, отдам его в музей (обещали взять).

Через две недели 21 августа в офисе Мегафона пройдет очередной Moscow Python Meetup — http://www.moscowpython.ru/ Темы выступлений — «Пишем на питоне так, чтобы все вас любили (или ненавидели)», «Как стать разработчиком с нуля за полгода (и выжить)» и «Осваиваем и дополняем Data Version Control».

А еще в Москву приезжает Ричард Столлман (если кто не знает — создатель движения за свободный софт, лицензии GPL, проекта GNU и текстового редактора Emacs. 27 августа он будет выступать в Московском политехническом университете — https://www.fsf.org/events/rms-20190827-moscow.

Статья «Использование библиотеки Matplotlib. Как делать анимированные графики»

Статья "Использование библиотеки Matplotlib. Как делать анимированные графики"

Давно я не ничего писал про библиотеку Matplotlib. Для тех, кто не знает, эта библиотека для языка Python, предназначенная для рисования огромного количества графиков.
Как-то в комментариях мне написали, что один пример не работает. Как оказалось, он действительно сломался после обновления библиотеки Matplotlib. Но вместо того, чтобы просто починить пример (надо было добавить одну строчку) я решил написать более развернутую статью на ту же тему.

В новой версии статьи приводится четыре способа создания анимированных графиков.

Ссылка на статью — Использование библиотеки Matplotlib. Как делать анимированные графики.

OutWiker 3.0.0.864 unstable

OutWiker 3.0.0.864 unstable

Сегодня выложил следующую нестабильную версию OutWiker под номером 3.0.0.864. Эта версия в основном содержит исправления ошибок.

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

О книге «Элегантный SciPy»

Приятно, что в последнее время появляется много книг не просто о языке Python, но и о применении его в более узких областях. Меня в первую очередь интересуют инженерные расчеты, в которых практически стандартом являются библиотеки Numpy, SciPy и Matplotlib. На эту тему мне попадалось несколько книжек, но, к сожалению, все они страдают одной проблемой — после них нельзя сказать, что ты знаешь, например, Numpy.

Недавно я дочитал еще одну книгу сразу трех авторов: Хуана Нуньеса-Иглесиаса, Штефана ван дер Уолта и Харриет Дэшноу «Элегантный SciPy», которая посвящена научным расчетам на языке Python. К сожалению, и она страдает той же проблемой, что и другие известные мне книги, но хочется про нее все-таки рассказать.

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

OutWiker 3.0.0.862 unstable с большим количеством изменений

OutWiker 3.0.0.862 unstable с большим количеством изменений

И снова всем привет! Сегодня выложил новую нестабильную версию OutWiker под номером 3.0.0.862. В этой версии было сделано огромное количество изменений, как заметных пользователям, так и тех, которые, я надеюсь, пользователи не заметят. В этом посте будет два раздела. Сначала я опишу изменения в интерфейсе, которые вошли в новую версию, а затем расскажу о том, почему под Linux пришлось переходить на новую версию WebKit, как это происходило и к чему привело.

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

Optlib. Реализация генетического алгоритма оптимизации на языке Rust

Optlib. Реализация генетического алгоритма оптимизации на языке Rust

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

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

Именно такую библиотеку я решил написать на Rust. Так появилась библиотека optlib. Ссылки на исходники и документацию:

На данный момент в этой библиотеке реализовал только генетический алгоритм, но зато со всеми возможностями, которые хотел. Точнее, там есть еще, что дополнить и улучшить, но в целом структура получилась достаточно гибкая. Генетический алгоритм с использованием библиотеки optlib собирается как из кубиков: алгоритм скрещивания берем этот, алгоритм мутации — тот и т.д.

Помимо документации я написал довольно большую статью про библиотеку optlib и генетический алгоритм, которую можно прочитать тут — Библиотека Optlib. Реализация генетического алгоритма оптимизации на Rust. Эту же статью я опубликовал на Хабре — https://habr.com/ru/post/448870/.

Я надеюсь, что я буду находить время на дальнейшие улучшения этой библиотеки, потому что в списке идей относительно этой библиотеки еще много пунктов.

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

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

Недавно на Хабре появился перевод статьи Как я пишу конспекты по математике на 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 очень строгий компилятор, который откажется компилировать программу, если у него не будет уверенности в том, что она корректно работает с памятью, и что не будет гонок данных в многопоточной программе.

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