Пользователь
Создание Python-обвязки для библиотек, написанных на C/C++, с помощью SIP. Часть 1
Optlib. Реализация генетического алгоритма оптимизации на Rust
О разработке одного desktop-приложения на Python
Всем привет. В этой статье я хочу рассказать о разработке программы с открытым исходным кодом для оффлайнового хранения заметок — OutWiker. Этим проектом я занимаюсь в свободное время, первая версия программы вышла в далеком 2010 году, и OutWiker до сих пор продолжает развиваться. Так уж исторически сложилось, что кодом я занимаюсь практически в одиночку (хотя изредка получаю полезные отдельные патчи), но зато пользователи активно участвуют в переводе программы на свой родной язык и иногда присылают стили оформления для страниц, которые затем я включаю в сборку. А уж о том, сколько интересных идей они присылают, и говорить не стоит.
Что такое OutWiker
Когда-то я писал об этой программе на Хабре, но это было так давно, что прежде чем говорить об особенностях внутреннего устройства и процесса разработки, нужно сказать, что представляет собой программа с точки зрения пользователя. Все ссылки, связанные с проектом даны в конце статьи. Итак, OutWiker — это программа для хранения заметок в виде дерева, в англоязычном интернете такой софт обычно называют outliner (поэтому у программы такое название). Среди более известных «коллег» OutWiker с подобным функционалом можно назвать Zim, WikidPad, CherryTree, и множество других (ну и, разумеется, org mode для Emacs). Логичный вопрос с точки зрения пользователя — чем OutWiker отличается от других представителей древовидных записных книжек. На данный момент, по прошествии такого количества времени с момента начала разработки, я уже не готов развернуто сравнить весь этот софт. В стародавние времена я перепробовал десятки outliner-ов, штук пять использовал достаточно долгое время, но везде чего-то не хватало, хотелось одну возможность взять из WikidPad, другую — из викидвижка, который может работать оффлайново и т.д. Поэтому в качестве ответа на такой вопрос просто перечислю основные особенности, которыми обладает OutWiker.
Книга Леонарда Сасскинда «Битва при черной дыре»
Стержень книги — это научный спор автора и его сторонников со Стивеном Хогингом (и его сторонников) по вопросу о том, пропадает ли информация, попавшая в черную дыру бесследно, или все-таки каким-то образом ее можно оттуда извлечь (теоретически). Хокинг считал, что информация пропадает, но это значит, что в этом случае должен переставать работать один из основных принципов квантовой механики, что обеспокоило Сасскинда и его друга, лауреата Нобелевской премии Герарда ’т Хоофта (интересно, что означает такой апостроф в начале фамилии?) Сасскинд пытался доказать, что информацию можно извлечь (опять же, теоретически), собрав частицы, которые образуются при испарения черной дыры. Самое интересное, что это самое испарение черных дыр предсказал и обосновал все тот же Хокинг в далеком 1974 году, и сейчас это излучение носит его имя.
Сасскинд рассказывает, как в течение долгих лет (начиная с 1983 года и до двухтысячных годов) появлялись различные теории, которые между собой взаимодействовали, и которые в результате помогли ответить на поставленный вопрос, разумеется, в пользу автора книги. Самое замечательное во всей этой истории то, что этот спор был чисто научный, не перерос полемику и не сказался на отношениях между двумя сторонами.
OutWiker. Open Source программа для хранения заметок
На днях я выложил новую версию программы для хранения заметок OutWiker. Когда-то, больше года назад, я уже писал про нее на Хабре, за это время программа много раз обновлялась, обрастала новыми возможностями, что уже нет смысла сравнивать последнюю версию программы с ее (поза)прошлогодней версией.
OutWiker — это кроссплатформенная (Windows, Linux) программа для хранения заметок в виде дерева. Распространяется OutWiker с открытыми исходниками. Особенностью программы является то, что все записи хранятся не в одном файле, а структура формируется из вложенных файлов и папок. Кроме того, программа поддерживает несколько типов страниц: простые текстовые страницы, страницы, где для оформления заметок используется HTML и страницы в формате викинотации (напоминающую pmWiki).
Outwiker 1.0.0 release
Прошлый пост был посвящен выходу первой бета-версии, а на этот раз, спустя полгода, очередную версию уже не стыдно назвать релизом — основные возможности в ней реализованы, а дальше уже можно обрастать фичами, планы на которые довольно обширные, и заниматься улучшением интерфейса. За время своего развития на данный момент программа пережила три альфа-версии и три бета-версии.
Для начала пара скриншотов:
OutWiker 1.0 beta 1
Долгое время я подбирал для себя программу для хранения заметок в виде дерева. Программ таких уйма, но в каждой что-то мне не нравилось. Основными пожеланиями в таких программах было: чтобы они хранили заметки в виде директорий на диске, а не в одном файле базы и возможность прикрепления многих файлов к каждой странице. И вот, поняв, что программу, которая меня бы полностью устроила, я не найду, несколько месяцев назад начал делать свою программу для хранения заметок — OutWiker. Сейчас она имеет версию 1.0 beta 1 (до этого уже было несколько альф, но релизом я ее пока считать не стал, потому что перед релизом хочу добавить в нее еще некоторые возможности).
Книга Джошуа Кериевски «Рефакторинг с использованием шаблонов»
Суть книги «Рефакторинг с использованием шаблонов» состоит в том, что в книге автор собрал 27 довольно сложных рефакторингов, большинство которых предназначены для того, чтобы как можно более безболезненно ввести в архитектуру программы паттерны, описываемые в книге банды четырех. Как пишет в начале Кириевски, часто он начинает программировать без использования паттернов до тех пор пока этот участок кода не надо расширять, тогда он принимается за рефакторинг. Правда, в книге есть еще один рефакторинг, который наоборот избавляет код от использования синглтонов (автор называет болезнь, когда используют синглтоны по любому поводу, синглтонизмом и предлагает открыть общество анонимных синглтоников).
Тоби Сегаран «Программируем коллективный разум»
Книга «Программируем коллективный разум» в основном посвящена алгоритмам классификации и кластеризации, хотя есть главы, посвященные другим темам вроде создания собственного поисковика, генетическим алгоритмам и генетическому программированию. Почти все описанные алгоритмы применяются в духе Web 2.0, используя анализ поведения пользователей на разных сайтах, которые предоставляют свой API. Но что особенно приятно удивило, так это то, что все примеры написаны на языке Python.
Вот какие алгоритмы описываются в книге:
- Коллаборативная фильтрация. Или, говоря человечески языком, алгоритмы, которые могут рекомендовать вам какие-то покупки, сайты или музыку в зависимости от оценок, которые вы поставили другим подобным вещам. По таким алгоритмам работает навязывание покупок в интернет-магазинах или подбор музыки на last.fm. В конце главы приводится пример, который будет рекомендовать вам ссылки из сервиса del.icio.us.
- Алгоритмы группировки (кластеризации). Создаваемый пример анализирует RSS-каналы блогов и пытается их автоматически разделить на группы в виде дерева в зависимости от частоты слов, которые попадаются в блоге. Заодно Сегаран рассказывает как можно сделать так, чтобы названия блогов расположились на плоскости кучками в зависимости от их близости в плане рассматриваемых тем.
- Отдельная глава посвящена построению поисковиков – созданию паука и, самое главное, рассматриваются алгоритмы ранжирования ссылок, в том числе и с учетом ссылок страниц друг на друга, создавая, таким образом, аналог Google PageRank. Еще интересно, что в этой же главе есть пример, где для выдачи наиболее релевантных ссылок используется нейронная сеть, которая обучается по мере того как пользователь щелкает на понравившиеся ему ссылки.
Улучшим регулярные выражения
Кроме того в той нотации РВ, которая сейчас используется в большинстве языках программирования, в некоторых, казалось бы простых ситуациях, приходится выкручиваться с помощью различных финтов. Первый пример, что пришел в голову — составить регулярное выражение если «abc», то затем НЕ «xyz».
История развития электродинамики. Электростатика
В продолжение начатой недавно темы про историю развития электродинамики, поговорим теперь про электростатику.
История развития электродинамики. Магнетизм
Два года назад для аспирантуры писал реферат по истории развития электродинамики. А тут про него вспомнил и решил сделать из него несколько записей в блоге, чего добру пропадать. :) Правда, пока готовил этот пост от реферата мало что осталось в первозданном виде, но это даже хорошо. А то тогда мне главное было его сдать, а теперь можно зарыться во всякие интересные книжки и ссылки и дополнить его интересными фактами.
Прочитал книгу вслух — в тюрьму
Уже представляю себе недалекое будущее, когда родители не смогут прочитать своему ребенку вслух книгу, потому что это нарушает аффтарские права. Наверняка устроят показательный процесс, растянутый на пару лет против одинокой мамаши (по аналогии с тем, что устроил RIAA), будут доказывать, что из-за нее никто не покупает книги Донцовой или какой-нибудь другой Марининой, да и вообще на нее повесят очередной мировой кризис. Авторы в обнимку с издателем пустят слезу перед телекамерой, скажут, что свой последний лексус они купили на последние деньги и теперь им не на что жить. Мамашу наверняка лишат родительских прав, ведь нарушение авторских прав — это хуже убийства. Ребенка, которому читали книгу, разумется, отправят в детдом особого режима, ведь он тоже участвовал в преступлении — слушал как ему читают книгу. С ним придется работать психологам или психиатрам, чтобы он забыл нелицензионно услышанную книгу. Ведь если он ее забудет, то есть шанс, что в будущем, когда его выпустят из сумасшедшего дома, есть шанс, что он эту книгу купит, и авторы опять смогут позволить себе купить дачу, как это было до нарушения аффтарских прав этим ребенком.
Возможно, при покупке книг придется читать длинную лицензию и выбирать те, книги, которые можно читать вслух, или наоборот про себя. Чтобы издатели могли легче судить нарушителей, при покупке книг придется предъявлять паспорт, как при подключении к сотовым операторам. Может быть к книгам будет прилагаться специальный чип с микрофоном, который будет слушать что творится в окрестности и, если услышит, что читают эту книгу (к тому времени уже можно будет подтянуть распознавание звуков на должный уровень), то будет вызывать специальный отдел полиции, который тут же скрутит нарушителя и отправит его в Сибирь валить лес.
Дальнейшим шагом копирастов должен стать запрет любых устройств с динамиками, ведь через них можно читать книги или, что самое страшное, слушать музыку. А вдруг вы решите послушать книгу или музыку вместе с друзьями, а они не заплатили издателям? Этого допустить никак нельзя. Есть, правда, в этом один плюс, может быть тогда в метро не будет “меломанов”, слушающих музыку на весь вагон. Их, разумеется, всех расстреляют, но что делать, искусство требует жертв.
В общем, что-то у меня с утра оптимистичное настроение.
Information
- Rating
- Does not participate
- Location
- Москва, Москва и Московская обл., Россия
- Date of birth
- Registered
- Activity