Skip to content

Category Archives: Digital

My life as applied to tinkering.

Математика

thoughtful emoticon

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

y=14
x=12*y+23*z
z=sqrt(x)
....
и чему равно x?

Это пример чисто гипотетический. Большинство таких случаев я могу решить при помощи карандаша и бумаги за некоторое время, только вот одна незадача… я уже много лет ничего руками не пишу, и карандаша под рукой частенько просто нет. Поэтому я пользуюсь Eureka, которая потребляет систему уравнений именно в том виде, в котором я привык описывать задачу, и просто находит все неизвестные какие может.

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

Есть ли какие-нибудь альтернативы?

О сортировке

enthusiastic emoticon

Многие из вас этого не знают, но у нас в стране принято, что диссертанта мучают всяческими придирками. Одна из этих придирок — это форматирование списка литературы.

Continue reading ›

О графиках

angry emoticon

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

К сожалению у R с графиками тоже не все слава Богу — он не в состоянии генерить их в том формате в котором мне больше всего хотелось бы их видеть (PGF/TikZ) и чтобы пристроить их на место мне придется устраивать танцы с бубном.

update: После длительного битья головой об стену придумал таки устраивающий меня вариант — сначала генерим графики в R, выводим в формат XFig, переводим в TikZ посредством fig2pgf. Поскольку последняя не владеет пока вращением надписей, вращаем какие надо вручную и вообще ставим шрифты на место уже средствами *TeX, благо TikZ придумывался как формат где человеку все понятно. Заодно чистим оттуда лишнюю фигню. На серьезный график этого, пожалуй, не хватит, а на мои гистограммы достаточно.

Я тащусь от этих сербов…

dejected emoticon

Как было сказано ранее, я сейчас воюю с XeTeX, для чего подписался на рассылку и обратился к автору, мол, куда дели русские кавычки-елочки. Автор любезно объяснил как воткнуть их на место, и немедленно внес соответствующие изменения в дистрибутив, чем меня весьма порадовал. Но, как вы понимаете, просто так все кончиться не могло.

Есть в TeX такая штука, зовут babel. Это пакет для борьбы с особянностями национальной печати. Появился он тогда, когда поддержки utf-8 в техе еще не было, и потому, рассчитывает на наличие специальных команд, которые порождают символы в том числе кириллицы. В случае работы с TTF-шрифтами в XeTeX этих команд не возникает и он ругается и рисует пробелы вместо букв. Для борьбы с этой его особенностью, автор XeTeX сочинил пакет xunicode, в котором описаны все экзотические символы европейских языков… окромя собственно кириллицы.

Для кириллицы автор сделал отдельный файлик, в котором пересчитал русский алфавит, но так как он сам русского не знает и не читает, так на этом дело и встало — он не знал, все ли он поймал и не напортачил ли. Я вызвался доделать и доделал. Строго говоря, русскому языку не хватало только Ё.

Но оказалось что TeX знает превеликое множество кириллицы, которой в русском языке нет — украинскую, белорусскую, сербскую, македонскую, кыргызкую, татарскую, чукотскую… Я довольно долго с ними возился, но наконец отыскал почти все.

И тут всплыл некий серб. Сначала он объяснил откуда взялась часть этих неведомых букв (из славянских языков с кириллицей) а потом начал качать политкорректность. Вы, мол, обозвали экзотическими буквы которыми 15 миллионов человек пользуются и которые в любом нормальном шрифте есть. Вот эти мол буквы уникальны в сербском, вот эти в македонском…

А я грешным делом и забыл про болгарский-македонский-сербский, меня как-то больше неславянские буквы там беспокоили.

Всплыл джентльмен с истфака МГУ, и покусал этого серба слегка за меня, а я тем временем отсортировал все буквы по языкам, на какие нашел алфавит, и оказалось что из этих “уникальных” букв половина попала в совершенно неславянские языки и вообще все это муть.

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

Мне вот другое непонятно, чего это он так? Для меня все эти буквы экзотические. Для меня 98% человечества экзотические в том или ином виде, в том числе те, кто пишет кириллицей. Почему во всем надо видеть национальное унижение?

Крокодил шире чем длиннее…

tired emoticon

…мдя, надо же так умудриться меня достать за двое суток. :)

Для тех кто не знает: TeX — это такая вавилонская башня острием вниз. Если точнее, это злоумный издательский пакет, ведущий свое начало еще в 60х, во времена когда компьютеров в современном понимании еще толком не было. До сих пор он используется для научной литературы, особливо для математики, ибо как ни старалось человечество, а ничего всерьез лучше для рисования формул не придумано и по сию пору.

Мне не надо рисовать формулы. Мне нужен BibTeX — а это очень полезная штука навешанная поверх TeX для учета ссылок на литературу, которая позволяет их просто и быстро цитировать. Это действительно чрезвычайно удобно, потому что встретив то, что можно спизпроцитировать, его можно занести в базу, оставить заметочку чего там заинтересовало, и больше не вспоминать пока мысль не оформится и не придет время писать. Текст живо так обрастает сносками и приобретает ученый вид.

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

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

После довольно длительной войны со списком литературы оформленным по ГОСТ1 и базой литературы в utf-82 я получил наконец искомый документ, и понял что смотреть на этот шрифт я не могу, ибо он ужасен.

Ладно, на такой случай вроде бы есть совсем новый вариант — XeTeX. Который работает с TTF-шрифтами и utf-8 по умолчанию. Вроде бы этого мне и надо.

Хрен, оно тоже не работает. Почему? Потому что в Gentoo для всех вариантов TeX, которых на свете порядочно, общая система, складывающая в кучку всю вавилонскую башню что выше острия. И в настоящий момент за ней некому ухаживать, поэтому часть пакетов насмерть брошены. Англоговорящие линуксоиды этого не замечают, потому что им не нужен не только ГОСТ, но и кириллица как таковая. За основу бобра взят пакет TeTeX. Который автор бросил еще в прошлом году, сказав всем переходить на новый TexLive, которое в Gentoo как таковое есть, но исходники, пожеванные чтобы они влезали в Gentoo, надо качать с сайта который намертво лежит…

Убью кого-нибудь за такие фокусы.

update: Я знаю даже кого я убью, его зовут TeTeX. Это, конечно, еще гигабайт закачки, но что мне гигабайт…

  1. Никогда бы не подумал, что моя диссертация оформлена не по ГОСТ, однако факт, оказалось именно так. Надо будет как-нибудь переверстать для порядка…
  2. Оно отказывалось работать очень долго, и я до сих пор не понял, почему же оно наконец перестало. Тех кто до сих пор обожает cp1251, спешу уведомить что я попробовал и ее, но это не помогло.

XML-RPC ping для Яндекс.Ленты

enthusiastic emoticon

Я специально искал, умеет ли Яндекс принимать xml-rpc пинги или нет, но в поиске ничего внятно не нашел. Только по большому блату мне сказали что да, таки умеет, только никто про это не знает — не то бета, не то еще что, не то местные владельцы отдельно висящих блогов тоже не в курсе что это такое.

На всякий случай раскрою секрет, авось кто найдет меня в поиске:

  1. Яндекс.Лента умеет принимать пинги по адресу http://ping.blogs.yandex.ru/RPC2
  2. Вы можете в более или менее реальном времени посмотреть на то, что туда сыплется.

Вообще, привыкли люди к ЖЖ, в котором ничего этого нет, и не знают, что ЖЖ — это не блогосфера вовсе, а просто большая банановая республика в ее пределах…

A reverse-engineering puzzle

thoughtful emoticon

I have a proprietary file format on my hands. Yes, I’m hacking apart one more renai game to see what’s inside. Unless you can handle code speak, I suggest you don’t read further.

Continue reading ›