https://github.com/4DA/eshell-toggle
Набыдлил простую фичу: по шоткату (например s-`) показывается консолька eshell под активным окном с каталогом текущего буфера.
По этому же шоткату убирается.
https://github.com/4DA/eshell-toggle
Набыдлил простую фичу: по шоткату (например s-`) показывается консолька eshell под активным окном с каталогом текущего буфера.
По этому же шоткату убирается.
Костыли чтобы заюзать org-capture для того чтобы добавить запись в файлик ledger.
Плюс комлишен Accounts из задаваемого списка.
https://github.com/4DA/emacs-stuff/blob/master/ledger-completed-capture.el
Работает примерно так
Увидел следующую замену systemd:
#define _XOPEN_SOURCE 700
#include <signal.h>
#include <unistd.h>
int main()
{
sigset_t set;
int status;
if (getpid() != 1) return 1;
sigfillset(&set);
sigprocmask(SIG_BLOCK, &set, 0);
if (fork()) for (;;) wait(&status);
sigprocmask(SIG_UNBLOCK, &set, 0);
setsid();
setpgid(0, 0);
return execve("/etc/rc", (char *[]){ "rc", 0 }, (char *[]){ 0 });
}
Какие подводные камни?
Расписание горнолыжных соревнований TZ: MSK+4
| Day | Date | Begin | End | Discipline |
| День 3 | Воскресенье, 9 февраля | 11:00 | 13:10 | Скоростной спуск, мужчины |
| День 4 | Понедельник, 10 февраля | 11:00/15:00 | 12:30/16:10 | Суперкомбинация, женщины |
| День 6 | Среда, 12 февраля | 11:00 | 13:10 | Скоростной спуск, женщины |
| День 8 | Пятница, 14 февраля | 11:00/15:30 | 12:30/16:40 | Суперкомбинация, мужчины |
| День 9 | Суббота, 15 февраля | 11:00 | 13:10 | Супергигант, женщины |
| День 10 | Воскресенье, 16 февраля | 11:00 | 13:10 | Супергигант, мужчины |
| День 11 | Вторник, 18 февраля | 11:00/14:30 | 13:00/16:10 | Гигантский слалом, женщины |
| День 12 | Среда, 19 февраля | 11:00/14:30 | 13:00/16:10 | Гигантский слалом, мужчины |
| День 15 | Пятница, 21 февраля | 16:45/20:15 | 18:00/21:25 | Слалом, женщины |
| День 16 | Суббота, 22 февраля | 16:45/21:50 | 18:15/20:15 | Слалом, мужчины |
Костыль для емакса чтобы в конец буфера вставлялся первый встретившийся выше номер поста или комента (вида #foo/bar).
(defun do-reply-to-post-comment ()
(if (re-search-backward
"^#[0-9a-zA-Z]+\(/[0-9a-zA-Z]+\)?" nil t 1)
(progn
(end-of-buffer)
(insert-buffer-substring-no-properties (current-buffer)
(match-beginning 0) (match-end 0))
(insert " "))
(message "No comments found")))
(defun reply-to-post-comment()
(interactive)
(save-excursion
(do-reply-to-post-comment))
(end-of-buffer))
(global-set-key (kbd "C-c r") 'reply-to-post-comment)
Суровый выхлоп работы ракетовского макростеппера:
(define (g)
(forever (let ([abort abort])
(unless #t (abort)) (abort))))))
Для тех, кому интересно: первый abort имееет контекст из раскрытия макроса while', а второй - из раскрытия макроса
forever', этакие костыли для обхода гигены без использвания stx-params.
сорцы: http://paste.lisp.org/display/138905
соус: barzilay.org/misc/stxparam.pdf
$ torify cabal update
Downloading the latest package list from hackage.haskell.org
Segmentation fault
Короче, меня заебало в emacs, что backward-kill-word удалит
int array [];
^^^^^^^^^
вот это, вместо вот этого
int array [];
^^^
Простого способа пофиксить это я не нашел, то есть либо хачить syntax-table, чтобы знаки пунктуации принадлежали word syntax class,
либо перебыдлить backward-kill-word самому.
Что я и сделал. Найденым багам буду рад шопиздец.
https://github.com/4DA/emacs-stuff/blob/master/smart-kill.el
P.S В бонус перебыдлил kill-word.
cl_int clEnqueueWriteImage
Enqueues a command to write to an image or image array object from host memory.
ptr
The pointer to a buffer in host memory where image data is to be written to.
image data is to be written to
to be written to
На лоре спросили:
/можно ли написать на Racket такую функцию, чтобы внутри неё (в её динамическом окружении) делений на 0 возвращало 0, а не прерывало вычисления/
Короче, да:
(define-syntax-rule (try-or-zero body ...)
(let/cc k (with-handlers ([exn? (λ _ (k 0))])
body ...)))
(define (testl l)
(if (null? l)
'()
(cons (try-or-zero (/ 1 (car l)))
(testl (cdr l)))))
(testl '(1 2 3 0 5))
мемоизация на ракете.
nothing special.
; replace define with a memoized version
(define-syntax define-memoized
(syntax-rules ()
[(_ (f args ...) bodies ...)
(define f
; store the cache as a hash of args => result
(let ([results (make-hash)])
; need to do this to capture both the names and the values
(lambda (args ...)
((lambda vals
; if we haven't calculated it before, do so now
(when (not (hash-has-key? results vals))
(hash-set! results vals (begin bodies ...)))
; return the cached result
(hash-ref results vals))
args ...))))]))
; example, fibonacci with memoization
(define-memoized (mfib n)
(cond
[(< n 1) 1]
[else (+ (mfib (- n 1)) (mfib (- n 2)))]))