Дмитpий Hecтepук

Блог о программировании — C#, F#, C++, архитектура, и многое другое

Идеи новых редакторских фич

15 комментариев

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

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

  • Растеризованные заголовки (пример) – хорошее кстати решение для ресурсов вроде Хабра которым я полностью не доверяю со стилизацией контента. Также прошу заметить что посты со стилизованными заголовками, опубликованные на Хабре, не являются собственностью хабра а лишь даются в аренду пока мне это удобно. Если что, я тупо выдерну все картинки со своего сервера.

  • Синтетическая подсветка кода, которая по аналогии с SyntaxHighlighter подсвечивает код через тэги <font>. Не особо современное решение, но сделано оно, опять же, для движков вроде Хабра. В принципе работает, хотя подсветка подсветке рознь. Мне кажется что для стабильного результата легче код растеризовать, хотя это не позволяет делать cut-and-paste.

  • Растеризация текста включая различные OpenType фичи а также «синтетическое» применение ClearType. ClearType перестал быть актуален после перехода на DirectWrite (OMG, lightweight COM!!!). Изначально все это дело я писал на WPF, также делал эксперименты на Silverlight, но с переходом на DW у меня получилось даже реализовать свой markup-язык для OpenType-фич. Область применения этого – очень узкая

  • Всякие другие микроредакторы, которые применяются редко, но метко.

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

  • Поддержка Retina-экранов для всего растеризованного. Обнаружилась эта проблема когда я начал читать блогпосты на new iPad который, как мне кажется, есть у многих технарей. Конечно это подразумевает что блогодвижок поддерживает retina.js или что-то аналогичное, но (имхо) если люди купили устройство с Retina нужно их уважать и делать поддержку таковых устройств по мере возможности.

  • К предыдущему поинту, потребуется альтернативное техническое решение для скриншотов. На текущий момент, возможных решения два – во-первых пробовать делать скриншоты на 200% увеличении (прошу заметить что это увеличение не является «штатным» в Windows и как получить его я не знаю). Это правда не всегда возможно т.к. многие программы не поддерживают или плохо поддерживают high DPI. Второй вариант – это просто делать @2x используя nearest neighbor. Это возможно самый безопасный вариант, и я пожалуй скоро его реализую.

  • Есть ряд юз-кейсов которые вообще выходят за рамки текстовых редакторов, за исключением возможно редакторов вроде Mathematica. Например, часто хочется сделать что-то подобное:


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

  • Очень хочется научиться делать иллюстрации (именно иллюстрации, а не программы) декларативно в стиле Metro Windows 8, с квадратиками и прямоугольниками. Очень часто нужно проиллюстрировать какую-то концепцию, например иерархию наследования классов. Не использовать же мне, в 21-м веке, для этих вещей UML! (UML is dead.)

  • И наконец, одна из фишек которые есть (пусть частично) у пользователей Mac-ов – это такие красивые черные overlay-ы на скринкастах. Вы их наверняка видели – они обычно используют Gill Sans и показывают всякие красивые иллюстрации нажатых клавиш, и так далее. Camtasia полноценно такие штуки делать не может, а это значит что их нужно делать отдельно как PNG. Не самая сложная в мире задача, конечно, но для красивых скринкастов грех не сделать.

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

А пока всего!

Advertisements

Written by Dmitri

18 августа 2012 в 23:28

Опубликовано в Publishing, Typography

Tagged with

комментариев 15

Subscribe to comments with RSS.

  1. А вот как ты считаешь, было бы ведь полезно подсвечивать ошибки компиляции в примерах кода, и вовсю пользоваться Intellisense?

    Artyom Smirnov (@uluhonolulu)

    19 августа 2012 at 21:13

    • IntelliSense бессмысленнен для примеров, т.к. копируется обычно из IDE где это пример есть. А вот всякие подсветки, аннотации, и вообще любой механизм который помогает пользователю понять код – это как раз очень хорошо и желанно.

      Dmitri

      19 августа 2012 at 21:37

  2. Что такое MPS ?

    Ivan Petrov

    20 августа 2012 at 17:37

    • MPS это вот это.

      Dmitri

      20 августа 2012 at 17:38

      • А на кой, так сказать, чёрт ? C# чем-то стал плох ?

        Ivan Petrov

        20 августа 2012 at 17:57

        • C# тут вообще не причем. Основная идея в том, что у документа должна быть структура чтобы например двигать целые секции или параграфы. Для этого, проще всего иметь не документ как текст, а именно дерево. И именно для этого MPS и может быть полезен.

          Dmitri

          20 августа 2012 at 18:55

        • Т.е. свой DOM для документа ? На сколько я знаю в офисных документах хранение как-то так и организовано

          Ivan Petrov

          21 августа 2012 at 7:17

        • В принципе да. Да и у HTML тоже есть DOM, если на нем писать. Просто хочется чтобы все было просто и доступно.

          Dmitri

          21 августа 2012 at 9:24

  3. За растеризацию кода(особенно полезного) руки рубить надо. Лучше уж без подсветки.

    Azz

    27 августа 2012 at 16:07

  4. Дмитрий, где вы публикуете много технических постов? Этот блог обновляется не часто, как я заметил.

    Илья

    28 августа 2012 at 19:01

    • Недавно опубликовал постов этак 10 в блоге JetBrains :)

      Dmitri

      30 августа 2012 at 17:24

      • Ну, тогда этот блог обновлялся бы чаще, если «зеркалить» в нем посты из блога JetBrains… Или хотя бы ссылки давать.

        Илья

        4 сентября 2012 at 13:21

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

          Dmitri

          12 сентября 2012 at 12:54

        • Ой, а я ни заметил… Думаю, что программисты (а ведь они — целевая аудитория?) так привыкли читать на английском, что особо без разницы. Кстати говоря, вы и говорите на английском очень хорошо (хотел было мысленно «придраться», но не нашел, к чему). А когда вы делаете подкаст на русском — там откровенно английские слова (не перешедшие в русский как массовое явление) довольно часто встречаются. Не лучше ли тогда перейти на английский полностью? Расширили бы аудиторию. А русскоговорящие поймут и им не в обиду, потому что так уж повелось, что английский в нашей профессии доминирует.

          Илья

          19 сентября 2012 at 12:09

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

          Dmitri

          19 сентября 2012 at 12:16


Оставить комментарий

Заполните поля или щелкните по значку, чтобы оставить свой комментарий:

Логотип WordPress.com

Для комментария используется ваша учётная запись WordPress.com. Выход / Изменить )

Фотография Twitter

Для комментария используется ваша учётная запись Twitter. Выход / Изменить )

Фотография Facebook

Для комментария используется ваша учётная запись Facebook. Выход / Изменить )

Google+ photo

Для комментария используется ваша учётная запись Google+. Выход / Изменить )

Connecting to %s

%d такие блоггеры, как: