Архив по категории ‘софт’.

Предновогодняя нестабильная версия OutWiker 3.0.0.876

Предновогодняя нестабильная версия OutWiker 3.0.0.876

Всем привет и с наступающим Новым годом.

Два месяца назад я писал о том, как идут дела с разработкой OutWiker-а. Тогда я жаловался на то, что переход с версии wxPython 4.0.7 на 4.1 оказался не таким безболезненным как хотелось бы из-за того, что новая версия библиотеки не во всем совместима со старой. Больше всего хлопот доставил текстовый редактор, в котором изменился способ, с помощью которого в тексте выделяются слова с ошибками. Новый способ подчеркивания слов с ошибками на самом деле более простой, но это потребовало существенного изменения в коде. И вот, наконец, удалось исправить проверку орфографии, и после этого я еще повылавливал другие ошибки, которые появились после обновления wxPython.

Так появилась новая нестабильная версия Outwiker под номером 3.0.0.376, которую вы можете уже попробовать. Наверняка я не заметил какие-то проблемы, который вполне могли появиться из-за изменений в последней версии, поэтому, если вы увидите, что что-то сломалось, то пишите.

На этом пока все. Надеюсь, что в следующем году я все-таки доведу OutWiker до релиза стабильной версии (до этого я планировал, что выпущу релиз летом 2020 года 🙂 ).

OutWiker в социальных сетях:

Поговорим про дистанционное обучение

Поговорим про дистанционное обучение
На лекции записи преподавателя становятся конспектом студента, минуя сознание обоих.
(с) М. Адлер «Как читать книги»

 

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

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

Чтобы объективно разобраться, что не так с имеющимся у нас дистанционным обучением, откажемся от идеи, что онлайн-обучение — абсолютное зло. Хочется верить, что в конечном счете дистанционное обучение можно сделать эффективным, но только для этого нужно переделывать всю программу курсов. Нельзя вести занятия так же, как в оффлайне только перед веб-камерой. Давайте попробуем порассуждать, что объективно мешает эффективному онлайн-обучению, и что можно придумать, чтобы эти проблемы устранить.

Читать далее ‘Поговорим про дистанционное обучение’ »

Пост о том, как идет работа над новой версией OutWiker

Пост о том, как идет работа над новой версией OutWiker

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

Но OutWiker я не совсем забросил, и пока я не выкладываю новую версию, хочу рассказать, как идет работа над ней. Я уже почти смирился с тем, что OutWiker будет в вечной бете. Я не собирался до релиза переводить проект на wxPython 4.1, а хотел по максимуму исправить разные шероховатости в программе и выпустить релиз. Сначала все шло хорошо, но я взялся за исправление одного может быть не очень критичного, но 100%-но повторяемого глюка. Под Linux, если в настройки зайти несколько раз, то программа падала. Эксперименты показали, что проблема в контроле, который отображает веб-страницу с помощью движка WebKit. Если такой контрол находится в диалоге, то после повторного открытия этого диалога программа упадет. Это удалось повторить в простейшем приложении с единственной кнопкой, которая открывает такой диалог. Я уже готов был с этим смириться и написать о проблеме в багтрекер wxPython, но нужно было проверить это на новой версии библиотеки. К сожалению Оказалось, что в wxPython 4.1 этой проблемы нет.

Читать далее ‘Пост о том, как идет работа над новой версией OutWiker’ »

Outwiker 3.0.0.874 unstable

Outwiker 3.0.0.874 unstable

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

Читать далее ‘Outwiker 3.0.0.874 unstable’ »

Книга Мартина Клеппмана «Высоконагруженные приложения»

Недавно дочитал книгу Мартина Клеппмана «Высоконагруженные приложения. Программирование, масштабирование, поддержка». В оригинале книга называется «Designing Data-Intensive Applications», а при переводе на русский язык название стало менее конкретным, потому что под высоконагруженными приложениями можно понимать разные виды нагрузки: вычислительную нагрузку на процессор и «высоконагруженные» в том плане, что нужно обрабатывать большой объем данных. Во втором случае основная нагрузка ляжет не на плечи процессора, а узким местом будет сеть или система ввода-вывода. В книге рассматриваются высоконагруженные системы, относящиеся ко второму случаю.

Книга посвящена в основном системам хранения и обработки данных, т.е. базам данных различного типа (SQL и noSQL) и системам, которые анализируют большой поток данных, например, Hadoop. Основная тема книги — это проблемы, которые могут возникнуть в распределенных системах, когда нужно поддерживать согласованное состояние базы данных, сервера которых запущены на машинах, которые могут располагаться даже в разных странах, и не известно, к какому из них будет обращаться пользователь в каждый момент времени. В книге речь идет в основном про архитектурные решения, а не конкретные реализации, хотя в тексте постоянно приводятся ссылки на тот или иной инструмент и говорится, как и насколько хорошо в них решаются описываемые проблемы.

Читать далее ‘Книга Мартина Клеппмана «Высоконагруженные приложения»’ »

OutWiker 3.0.0.872 unstable

OutWiker 3.0.0.872 unstable

Разработка OutWiker-а постепенно движется к тому моменту, когда очередную версию можно будет назвать стабильной. На самом деле с точки зрения работы программы и сейчас все достаточно неплохо, по крайней мере критических ошибок, которые мешают пользоваться программой нет, или по крайней мере я о них не знаю :). Но хочется еще навести красоту в коде программы и облегчить процесс сборки.

Сегодня выложил следующую нестабильную версию OutWiker под номером 3.0.0.872. В новой версии не много изменений, заметных пользователю. К таким изменениям можно отнести, пожалуй, только обновление немецкой локализации, теперь программа переведена на немецкий язык полностью, за что спасибо всем тем, кто участвовал в переводе на сайте crowdin.com. Если бы еще доделали украинский перевод, то было бы вообще здорово. Сейчас там недопереведено всего лишь 3% от общего количества строк.

Читать далее ‘OutWiker 3.0.0.872 unstable’ »

Книга Джо Боулер «Безграничный разум»

Одна из проблем, которая меня интересует, как вести занятия со студентами так, чтобы с одной стороны им было интересно и понятно то, о чем я говорю, но в то же время не скатываться на совсем примитивный уровень в стиле «нажми на кнопку — получишь результат». Поэтому периодически почитываю книжки на тему преподавания и обучения, чтобы понять, как другие люди справляются с этой задачей, что можно исправить в изложении материала. До карантина мне попалась книга «Безграничный разум», которую написала профессор Стэнфордского университета Джо Боулер. Эта книга посвящена тому, как имеющаяся система образования отбивает желание учиться, а у учеников развивает (не)уверенность, что тот или иной предмет им понять не под силу. Сама Джо Боулер читает математику, поэтому в книге она больше говорит о преподавании математики и других технических наук, хотя это не так важно, потому что принципы, о которых идет речь в книге относятся к обучению в целом.

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

Читать далее ‘Книга Джо Боулер «Безграничный разум»’ »

OutWiker 3.0.0.870 unstable

OutWiker 3.0.0.870 unstable

Давно не выкладывал новые версии OutWiker. Это было связано с тем, что на некоторое время я переключился на проект (optlib — библиотеку для оптимизации на языке Rust), а активно заниматься двумя проектами одновременно я не умею. Теперь я обратно переключился на OutWiker и подготовил новую нестабильную версию.

В эту версию попало лишь одно изменение, заметное пользователям, а в основном я сосредоточился на том, чтобы почистить код, обновить библиотеки, упростить сборку приложения, и тем самым приблизить момент, когда очередную версию можно будет со спокойной совестью назвать релизом. Правда, чем больше копаешься в коде, тем больше хочется переписать что-то еще, переделать API и т.п., поэтому нужно вовремя себя остановить.
Читать далее ‘OutWiker 3.0.0.870 unstable’ »

Нужно ли заставлять студентов учиться?

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

Вопрос, который меня мучает уже давно звучит так: нужно ли заставлять студентов учиться? Под словом «заставлять» я понимаю такие действия, которые будут вынуждать студентов заниматься предметом, хотя им этого совершенно не хочется. Например, можно отмечать посещаемость и обещать страшные кары тем, кто на лекции ходить не будет. Не пускать на лекции тех, кто опаздывает. Возмущаться, если кто-то не слушает лекцию, а играет в телефоне (но при этом не мешает другим), может быть даже выгонять таких студентов с занятий.

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

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

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

В этом семестре меня удивил один студент (достаточно толковый), который сказал, что ему понравился один предмет, который он был вынужден выучить во время сессии (не во время основных занятий) из-за жесткого преподавателя. Именно после того, как он разобрался с предметом, он ему понравился. Может быть я не прав со своими достаточно достаточно либеральными взглядами на обучение?

Optlib 0.2. Библиотека для оптимизации на языке Rust

Optlib 0.2. Библиотека для оптимизации на языке Rust

Параллельно с другими проектами я продолжаю заниматься библиотекой optlib, предназначенной для оптимизации функций на языке Rust. Напомню, что под оптимизацией функции f(x) понимается нахождение такого значения x’ (в общем случае x — вектор), что значение функции f(x’) минимально на заданном интервале для x. Библиотека optlib содержит в себе алгоритмы, предназначенные для глобальной оптимизации, то есть, в отличие от градиентных методов, эти алгоритмы пытаются найти глобальный экстремум функции (градиентные методы находят только ближайший к начальной точке локальный экстремум).

Читать далее ‘Optlib 0.2. Библиотека для оптимизации на языке Rust’ »