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

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’ »

OutWiker 3.0.0.868 unstable

OutWiker 3.0.0.868 unstable

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

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

Доклад про генетические алгоритмы

В Москве есть такое замечательное сообщество — Московский клуб программистов. Раз в две недели участники этого сообщества собираются (в последнее время площадку для таких митапов предоставляет компания Леруа Мерлен у себя в офисе на Шаболовке) и обсуждают какие-нибудь две темы. Обычно это происходит в виде доклада с последующими вопросами или в виде модерируемого обсуждения.

Несколько дней назад я выступил на этом митапе и рассказал о генетических алгоритмах. Ниже вы можете посмотреть видео этого доклада. Материалы с этого митапа (в том числе презентацию) можно скачать по этой ссылке с сайта Московского клуба программистов.

OutWiker 3.0.0.866 unstable

OutWiker 3.0.0.866 unstable

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

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

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