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

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

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.sorg. git? : ; , , . Emacs [ ](https://github.com/johnlepikhin/emacs-public). , . , , .

Читать далее

Боль­ше 10 лет про­дол­жа­ет­ся мое осо­зна­ное зна­ком­ст­во с Ocaml и око­ло 18 лет зна­ком (на уров­не лю­би­те­ля) с лиспом. Пожа­луй, се­йчас мож­но раз­ре­шить се­бе ска­зать пуб­лич­но: я счи­таю ООП лиш­ним в боль­шинст­ве за­дач. И се­йчас объ­яс­ню по­че­му. Любое про­ек­ти­ро­ва­ние си­сте­мы на­чи­на­ет­ся на де­кла­ра­тив­ном язы­ке ин­тер­фей­сов. В тер­ми­нах это­го язы­ка про­ек­ти­ро­ва­ния мы де­кла­ри­ру­ем (опи­сы­ва­ем) за­да­чу, наш про­ект. И толь­ко по­том, на язы­ке ре­али­за­ции, мы рас­су­жда­ем о тер­ми­нах язы­ка ин­тер­фей­са. В па­ра­диг­ме ООП на этом язы­ке ин­тер­фей­са удоб­но опи­сы­вать уст­ро­йст­во ми­ра, пря­мо как пи­шут в кни­жках: вот это класс всех об­ъек­тов, а эти име­ют ра­диус, и они кру­ги.

Читать далее

Искрен­не не по­ни­маю, по­че­му я поль­зу­юсь Емак­сом вот уже 17 лет, а Org Mode вклю­чил в свою жизнь толь­ко не­дав­но (по­то­му что до не­дав­них пор его под­дер­жка на Android бы­ла очень груст­ной?) Как у лю­бо­го за­мо­ро­чен­но­го outdoor-ак­ти­вис­та, у ме­ня есть па­чка раз­лич­ных ша­блон­ных за­пи­сей для ор­га­ни­за­ции оче­ред­ной по­езд­ки. Сей­час с по­мощью не­боль­шо­го ко­ли­чест­ва ко­да сде­лал так, что­бы пла­ни­ро­ва­ние оче­ред­ной экс­пе­ди­ции за­ни­ма­ло букваль­но ми­ну­ту. Речь им­ен­но о пла­ни­ро­ва­нии под­го­то­ви­тель­ных дел: ре­монт сна­ря­же­ния, за­куп­ки, стра­хов­ки, транспорт и т.

Читать далее

Пить или не пить? Про­грам­мис­ты при­вык­ли мыс­лить в рам­ках бу­ле­вой ло­ги­ки. Я хо­чу не­множ­ко по­ло­мать клас­си­чес­кие про­грам­мист­ские пред­став­ле­ния о том, что та­кое ло­гич­но. В клас­си­чес­кой ма­те­ма­ти­чес­кой ло­ги­ке есть та­кое по­ня­тие: про­по­зи­ция. Она же утверж­де­ние, суж­де­ние и т.д. Утверж­де­ние мо­жет быть вер­ным, вер­ным мо­жет быть и его от­ри­ца­ние. Пока вро­де всё нор­маль­но: int p=1; if (p) { printf ("OK!\n"); } int p=0; if (!p) { printf ("OK!\n"); } Но это — бу­ле­ва ло­ги­ка.

Читать далее