Category: литература

Category was added automatically. Read all entries about "литература".

flow

Пользовательские идентификаторы-литералы

Когда-то давно (15 лет назад) я делал наброски языка разметки текстов. С использованием квадратных скобок [] для тэгов и фигурных {} для ссылок на какие-либо термины. Фактически, как в Wikitext для ссылок используется синтаксис [[имя статьи]], так и там {термин} или {имя статьи}. Но проблема, побудившая меня на размышления о решении, была одноразовой (помогал коллегам с восстановлением/переносом интранет-портала), а далее решений и полурешений в этой нише стало достаточно, чтобы к этому не возвращаться.

А сейчас вспомнил, и наложилось на сегодняшний контекст. В языке, над которым я работаю (пусть временами и "по чайной ложке в неделю", но всё же) не используются фигурные скобки. Так что можно применить их для идентификаторов и литералов, распознаваемых пользовательскими библиотеками.

Чаще всего это будет полезно для URL: {https://en.wikipedia.org/}. Другая библиотека может распознавать даты по ISO 8601: {2019-12-17}. Или IPv4 и IPv6: {127.0.0.1}, {::1}. Пути в файловой системе (с автоматическим контролем целостности данных), UUID, что угодно, пока нет противоречий между используемыми библиотеками. Вплоть до тех же {термин} или {имя статьи}, если это уместно.

И кстати, сюда же прекрасно помещаются идентификации по IEC 81346. На эту тему мы много спорили в чатах с ailev, который утверждал о необходимости поддержки IEC 81346 на уровне языка, что, на мой взгляд, превращает любой язык в нишевую самобытную игрушку для инженеров. Однако, использования различных {=J1=HE01} как ещё одного доступного способа идентификации (при использовании библиотеки, распознающей IEC 81346) решает это противоречие, фича для одних не мешает другим.

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

Данное решение не ограничено спецификой моих разработок, оно подойдёт для любого языка, где возможна работа пользовательских библиотек в compile time или (с меньшей надёжностью) используется динамическая типизация. Но в случае "все скобочки уже заняты" будет выглядеть чуть менее элегантно.
flow

Чтение 2018

Из читавшейся в прошлом году художественной литературы мне больше запомнились не конкретные тайтлы, а новый жанр - литрпг (LitRPG). Там же просто кладезь идей игрового дизайна и интерфейса, причём, промоделированных в контексте сюжета и баланса. Какие-то можно воплощать, другие "тут автор попутал, это работать не будет", но тоже создают хороший контекст для размышлений о более подходящих решениях. Но это моя профдеформация. А кому-то просто интересно читать про игроков (так же, как смотрятся прохождения игр на youtube).

В прочитанной же публицистике особенно зацепили две книги:

1. Yuval Noah Harari "Homo Deus: A Brief History of Tomorrow" (Юваль Ной Харари "Homo Deus: Краткая история завтрашнего дня"). Футурология - жанр на грани между фантастикой и реальностью, требующий от автора как хорошего понимания "здесь и сейчас", так и достаточного полёта фантазии в вариативности "завтра" (не повторения чего-то вроде "на дискету поместится библиотека"). Так что достойных книг в нём почти нет. Эта - редчайшее приятное исключение, хотя и менее крута, чем "Сумма технологии" Лема.

2. Jordan Ellenberg "How Not to Be Wrong: The Power of Mathematical Thinking" (Джордан Элленберг "Как не ошибаться. Сила математического мышления"). Несмотря на название, книгу с которым в магазине сразу поставят в раздел "популяризация науки", данное произведение не имеет ничего общего с работами клоунов вроде Гладуэлла. Это крепкая прикладная литература, в которой примеры и случаи из реального мира представлены не для удивления читателя, а в качестве моделей для применения математического аппарата, и историй его развития. Книга, способная не только наделить обычного человека знакомством с определёнными разделами математики и логики, но и улучшить связь математика с реальностью.
flow

Evernote

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

Но на винде-десятке не пашет Evernote 2, который у меня с 2007 года и с тысячей нужных заметок, включая постоянно используемые. За эти годы произошло многое, сначала удобная программка преобразовалась в монструозный облачный сервис с "offline будет, но потом и за отдельные деньги", затем этот сервис многократно видоизменялся, и на данный момент там всё же есть десктопный клиент, декларирующий возможность "local notebook", что смотрелось приемлемой заменой.

Однако, ни формат старых баз Evernote 2, ни формат XML-экспорта .enx (созданный специально "для совместимости" между версиями) новый Evernote не понимает. А "для совместимости" там теперь несовместимый с предыдущим формат XML-экспорта .enex.



Набросать скриптик для извлечения заметок из .enx я могу. А вот куда их потом - вопрос.

Чем вы пользуетесь из notetaking software?

Update: Также интересно, какие софтинки могут одновременно отображать несколько панелей с разными заметками? Есть Scrivener, но я не знаю, насколько удобно он совместится с моим привычным workflow (всё же основное его предназначение - CAD для писателей).
flow

Информация как стимулятор

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

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

И произведения того же Жюля Верна вдохновляли изобретателей ещё прошлых веков не только яркими образами технических свершений, к которым можно было стремиться, но теми состояниями благоприятной для их занятий концентрации, которые были следствием прочтения этих книг. Так фантастика делает мир лучше. Но у каждого своя деятельность и свои гормональные реакции, что во многом объясняет различия в наших жанровых и культурных предпочтениях.

Для меня листание даже не относящихся к "родным" темам научных/инженерных статей, чтение Азимова или просмотр удачной серии из Halt and Catch Fire могут быть триггерами перехода в технологически-продуктивное состояние сознания. Но есть и другие продуктивные состояния, со своими триггерами, а также терапевтические триггеры. Ещё с детства все они выбирались случайно/инстинктивно, значительно позже возникло понимание процессов.

Какие состояния благоприятны для вашей деятельности? Какая информация благоприятна для этих состояний? Можно выбрать подходящую и профит.

А ещё, случается и очень неблагоприятная информация. Школьная программа по литературе (была и, вероятно, осталась) переполнена триггерами на "спасайся, вокруг все идиоты" и "народное горе". И только целительная фантастика и научно-техническая литература защищали от этой дури.
flow

Pattern matching vs. visitor

В прошлом году я написал пару постов о вредных паттернах (инфобизнес на ООП-лохах, начавшийся с книги "Design Patterns" 1994 года), полезных паттернах (паттерны предметной области, domain specific patterns) и их различиях:
1. http://justy-tylor.livejournal.com/214487.html
2. http://justy-tylor.livejournal.com/214634.html

В качестве примера, почему использование Visitor вместо цивильного pattern matching гарантирует "ад, заборы и коровники", приводились проекты Clang и LLVM.

Выяснилось, что разработчики Clang тоже устали от этой проблемы, поэтому реализовали pattern matching в виде библиотечки LibASTMatchers.
Сама библиотека: http://clang.llvm.org/docs/LibASTMatchers.html
Пост со сравнением двух подходов: http://eli.thegreenplace.net/2014/07/29/ast-matchers-and-clang-refactoring-tools/

Разумеется, в C++11 это можно оформить более гибко, используя вместо bind и хэндлеров полноценные замыкания. Однако, и на сегодняшних реализациях разница хорошо заметна.
flow

Интересное чтиво

В медленном темпе читаю работы Ли Куан Ю - о превращении Сингапура из мелкого постколониального болота в процветающий финансовый центр. Есть свои методологические искажения (конфуцианство, nanny state, ...), а также уязвимые места у выбранной ниши, но на данный момент это пример долгосрочного выигрыша. Сам формат книг/статей ближе к управлению проектами и бизнес-литературе, чем к политоте.
flow

Паттерны часть 1: вредные

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

Сначала о плохих паттернах. Есть такой термин "design patterns" (шаблоны проектирования), изначально нейтральный, но в сфере разработки программного обеспечения имеющий особое наполнение и особую дурную славу.

Все люди разные. Кто-то лучше танцует, кто-то доказывает сложные теоремы. А психика некоторых позволяет в больших количествах выдумывать сложность на пустом месте. Бюрократы-законотворцы, стандартизаторы W3C, консультанты по CMMI, программисты-чемпионы по KLoC кода - это всё их ниши, где они могут в промышленных масштабах вредить человечеству, сохраняя полную уверенность в полезности своей деятельности.

Тема design patterns, начиная с одноимённой книги 1994 года, это ещё одна кормушка для таких людей. Передача функции сравнения в функцию сортировки или установка коллбэка - слишком просто. А если придумать термин "dependency injection" и убедить леммингов писать для этого отдельные фреймворки, то можно поднять денег на книгах, выступлениях и консалтинге. Разделяемое состояние для обеспечения какого либо функционала программы - что может быть проще? Но если его назвать "singleton pattern" и положить не в app.renderer, а в Bla.Bla.Bla.Renderer.getInstance(), а затем убедить леммингов в религиозной необходимости данного шага, то создаётся целый пласт новых проблем (ведь состояние становится бесхозным), которые можно изучать и усугублять десятками слайдов.

Тлен, безысходность и бесчисленные повторения многокода - вот вся суть design patterns.

Что же касается хороших паттернов, то о них будет следующий пост.
flow

Про русский бизнес

Как барыги Литреса выдавливают с мобильных платформ приложения для обычных читателей, а также слепых и слабовидящих людей.

http://david-m.livejournal.com/1280699.html?thread=8660155#t8660155

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

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

Upd.: подробный обзор истории - http://www.exler.ru/blog/item/13271/
flow

Софт

Когда-то в 2007 году мне подкинули Evernote - типа супер-продукт, увеличитель пениса личной эффективности, содержит списки важных дел с галочками и прочий модный мусор, но при этом работающая система хранения заметок и фрагментов веб-страниц с таблицами/картинками. С тех времён пользуюсь как блокнотом. Скидываю то, что слишком мелко для отдельных документов. И статейки полезные. Это ведь как, интернет со временем протухает, где год назад была статья там может оказаться "домен кончился, автор удалён, контент хаброогорожен". Да и Evernote из отдельного продукта превратился в сервисозависимый клиент.

Для статей с сайтов теперь MAFF (https://addons.mozilla.org/en-US/firefox/addon/mozilla-archive-format/), так что эта часть не особо заботит.

А сегодня наткнулся на Scrivener. http://www.youtube.com/watch?v=-DthBJhBrYs
Там уклон не в хранение мелких заметок, а в их интеграцию, написание книг, статей, документов. И это всё меняет. Когда включаю Evernote всегда кажется что "да, вот так удобнее чем отдельным текстовым файлом", но при этом чёткое ощущение, что продукт совсем не для меня, а для тех кому todo-листы на айфончик синхронизировать. А Scrivener он как мини-САПР для писателей. Сейчас пробую версию под винду, есди не будет нареканий по скорости/стабильности, то перенесу все актуальные записи туда.

Вот вроде всё похоже, а разница в ощущениях как между шкафом с архивами и рабочим столом. Надо разобраться.

Update: http://justy-tylor.livejournal.com/174636.html
flow

Список к прочтению

Дэвид Брин, один из классиков научной фантастики, опубликовал свои рекомендации по литературе, которая хороша как тинейджерам, так и взрослым:
http://davidbrin.blogspot.com/2011/11/science-fiction-for-young-adults.html

"Ксанфовский цикл" Пирса Энтони, "Дверь в лето" Хайнлайна, Азимов, Нортон, ... Меня от одних названий книг захватывают воспоминания из девяностых. Если бы сейчас читал художественную литературу с той же интенсивностью - занялся бы ранее не прочитанным из списка. Уж очень у Брина литературный вкус хороший, даже О.С.Карда потроллить не забыл. :)