Последние посты

Больше статей

Час­то воз­ни­ка­ет не­об­хо­ди­мость за­пла­ни­ро­вать ка­кую-то слож­ную шту­ку к опре­де­лен­ной да­те. Напри­мер, это экс­пе­ди­ции, ММБ, тре­ни­ро­воч­ный план и т.д. То есть, не­кое ме­ропри­ятие, к ко­то­ро­му на­до на­чи­нать го­то­вить­ся за­ранее и ко­то­рое со­дер­жит к се­бе ку­чу от­дель­ных за­дач, каж­дое со сво­им сме­ще­ни­ем от ос­нов­ной да­ты. Рань­ше для ре­ше­ния этой за­да­чи я на­пи­сал сис­те­му темпле­йтов в org-mode, но ока­за­лось слиш­ком слож­но. Это вто­рая по­пы­тка: ме­ропри­ятие опи­сы­ва­ем в стан­дарт­ном ви­де, а по­том спе­ци­аль­ная функ­ция ко­пи­ру­ет всё под­де­ре­во с со­раз­мер­ным сдви­гом всех дат.

Читать далее

В ин­тер­не­те опять кто-то не­прав. На CPAN ку­ча мо­ду­лей для пар­си­нга LaTeX-до­ку­мен­тов, и аб­со­лют­но все кри­вые. Авто­ры яв­но не в кур­се о лек­си­чес­ком ана­ли­зе, о том что без то­ке­ни­за­ции ис­клю­чи­тель­но на ре­гэкс­пах да­же ба­зо­вую грам­ма­ти­ку вы­де­лить не по­лу­чит­ся. В ре­зуль­та­те, де­сят­ки ки­ло­ба­йт ко­да, не про­хо­дя­ще­го да­же про­стей­шие тес­ты ви­да: \command[opts]{arg} Пос­мот­рел на это, вспла­кнул, за па­ру ча­сов ре­али­зо­вал пар­сер и принтер грам­ма­ти­ки перво­го уро­вня. Может при­го­дит­ся ко­му-ни­будь: https://github.com/johnlepikhin/p5-TeX-Process. В README ку­ча при­ме­ров, не ви­жу смыс­ла как-то от­дель­но ком­мен­ти­ро­вать.

Читать далее

Решил вы­ло­жить в ви­де мо­ду­ля па­ру функ­ций в 20 строк, ко­то­рые дав­ным-дав­но тас­каю по всем сво­им про­ек­там и ко­то­рые силь­но упро­ща­ют на­пи­са­ние боль­ших про­ек­тов на Perl. Вот он: https://github.com/johnlepikhin/p5-Syntax-NamedArgs Функ­ции де­ла­ют про­стые ве­щи: Гаран­ти­ру­ют, что функ­цию по­зва­ли с хэш-ар­гу­мен­та­ми; Про­ве­ря­ют, что та­кие-то ар­гу­мен­ты пе­ре­да­ны; Позво­ля­ют за­дать зна­че­ние по умо­лча­нию; Валят чи­та­емую ошиб­ку, ес­ли где-то вглу­би сте­ка ока­за­лось, что ар­гу­мен­та не­хва­та­ет. В со­вокуп­нос­ти это по­зво­ля­ет пи­сать до­воль­но за­мыс­ло­ва­тые кон­ст­рук­ции с лег­кой ор­га­ни­за­ци­ей глу­бо­кой пе­ре­да­чи зна­че­ний.

Читать далее

Emacs не уме­ет ра­бо­тать с кноп­ка­ми аль­тер­на­тив­ных рас­кла­док. Точ­нее, уме­ет слиш­ком хо­ро­шо: для это­го на­до все го­ря­чие кноп­ки за­но­во объ­явить в аль­тер­на­тив­ной рас­клад­ке. Я лич­но к та­ким по­дви­гам не го­тов. Есть не­сколь­ко ре­ше­ний этой про­бле­мы (1, 2), но все они чу­до­вищ­ны и пло­хо управ­ля­емы: Пер­вый ко­стыль опре­де­ля­ет класс те­ку­ще­го ок­на и, ес­ли это Emacs, вмес­то сме­ны рас­клад­ки шлет код кноп­ки F31/F32. В Emacs на­зна­ча­ют­ся ху­ки для об­ра­бот­ки этих кнопок, ко­то­рые пе­ре­клю­ча­ют внут­рен­ний те­ку­щий ме­тод вво­да Ема­кса.

Читать далее

Table of Contents Преамбула, конфиг для конфигов bashrc git inputrc parcellite perlcritic perltidy ssh stalonetray urxvt vim xcompose xmobar xmonad xresources Исходник статьи Прочее (tangle на сниппеты не включен) В этой статье со­бра­ны пуб­лич­ные час­ти мо­их де­сктоп­ных ко­нфи­гов. Из ис­ход­ни­ка статьи в фор­ма­те org-mode де­скто­пы ав­то­ма­ти­чес­ки ко­нфигу­ри­ру­ют­ся. Это про­ис­хо­дит че­рез ob-tangle — сис­те­му экс­пор­та SRC-бло­ков в ко­неч­ные фай­лы. Исход­ник статьи в фор­ма­те org-mode до­сту­пен для ска­чи­ва­ния: dotfiles.

Читать далее