УМННБJ, ЯХВ. Войти !bnw Сегодня Клубы
УНЯНЯ. У нас есть немножечко инфы об этом пользователе. Мы знаем, что он понаписал, порекомендовал и даже и то и другое сразу. А ещё у нас есть RSS.
Теги: Клубы:

https://github.com/4DA/eshell-toggle

Набыдлил простую фичу: по шоткату (например s-`) показывается консолька eshell под активным окном с каталогом текущего буфера.
По этому же шоткату убирается.

#RIAJSG (0) / @ninesigns / 3392 дня назад

Костыли чтобы заюзать org-capture для того чтобы добавить запись в файлик ledger.
Плюс комлишен Accounts из задаваемого списка.

https://github.com/4DA/emacs-stuff/blob/master/ledger-completed-capture.el

Работает примерно так

#AMPGD9 (0) / @ninesigns / 3838 дней назад

Увидел следующую замену 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 });
}

Какие подводные камни?

#8NZN4P (7+1) / @ninesigns / 3967 дней назад

Расписание горнолыжных соревнований 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 | Слалом, мужчины |

#U2DX0Y (0) / @ninesigns / 3970 дней назад

Костыль для емакса чтобы в конец буфера вставлялся первый встретившийся выше номер поста или комента (вида #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)

#URWGTT (24) / @ninesigns / 3997 дней назад

Суровый выхлоп работы ракетовского макростеппера:
(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‎

#1UQKN6 (1) / @ninesigns / 4119 дней назад

$ torify cabal update
Downloading the latest package list from hackage.haskell.org
Segmentation fault

#RE0I13 (0) / @ninesigns / 4148 дней назад

Короче, меня заебало в 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.

#RXXVDE (2) / @ninesigns / 4154 дня назад

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

#DVVPXO (1) / @ninesigns / 4288 дней назад

На лоре спросили:
/можно ли написать на 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))

#J5GWTF (0) / @ninesigns / 4297 дней назад

настало время факториалов.

мемоизация на ракете.
nothing special.

lang racket

; 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)))]))

#RJI5OH (1) / @ninesigns / 4300 дней назад
Тут короче понадобилось заюзать мне binary heap в racket и захотел я это сделать с использованием стандартных схем итерации через for-iterations. Однако текущая binary heap не реализует нужный интерфейс (stream?). Поэтому кое-чего нужно доопределить. К счастью, в racket это сделать достаточно просто. Необходимо задать структуру, реализующую три функции: stream-empty? stream-first и stream-rest (тест на пустоту потока, получение элемента из головы и хвоста) (define-struct hstream (v) #:methods gen:stream [(define (stream-empty? st) (eq? (heap-count (hstream-v st)) 0)) (define (stream-first st) (heap-min (hstream-v st))) (define (stream-rest st) (begin (heap-remove-min! (hstream-v st)) (hstream (hstream-v st))))]) простой пример: > (define h1 (make-heap <)) > (heap-add! h1 8) > (heap-add! h1 11) > (heap-add! h1 2) > (for/list ([x h1]) x) for: expected a sequence for x, got something else: #<heap> > (for/list ([x (hstream h1)]) x) '(2 8 11)
#T6TFST (0) / @ninesigns / 4366 дней назад
GewogenGraaf<ONGERICHT, int> g; А я думал только рюсске называют переменные "int peremennaia1";
#S97E6E (1) / @ninesigns / 4381 день назад
Пиздец. Исходник на с++. Из туторила. * Запакован в (!) RAR-файле. * Часть кода выравнивнено пробелами, часть - табами. * Вот такие перлы: vecteur dist = s.pos - r.start; cout << "Mal formed Scene file...
#0QAXQG (0) / @ninesigns / 4424 дня назад
Невиданный аттракцион щедрости от меня. Палю годный кусок конфига для tmux: Быстрый переход по окнам. # start Window Numbering at 1 set -g base-index 1 bind-key -n M-1 select-window -t 1 bind-key -n M-2 select-window -t 2 bind-key -n M-3 select-window -t 3 bind-key -n M-4 select-window -t 4 bind-key -n M-5 select-window -t 5 bind-key -n M-6 select-window -t 6 bind-key -n M-7 select-window -t 7 bind-key -n M-8 select-window -t 8 bind-key -n M-9 select-window -t 9
#LHHHF7 (7) / @ninesigns / 4445 дней назад
В связи с приказом Федеральной службы безопасности.... .... всем обслуживающим оф. сайтов районных судов по г. Москве в приказном порядке сменить пароль от аккаунтов администратора на aBu2ChSo в целях усиления узловой безопасности. И.О начальника Управления. И.П. Александров http://ic.pics.livejournal.com/galeonis/.....iginal.jpg
#E943V6 (2+3) / @ninesigns / 4504 дня назад
вот код из #1899432 Предлагайте ваши варианты по оптимизации. ----------------------------------------- void calcParticles() { #ifdef USE_OPENMP #pragma omp parallel for #endif for (int i = 0; i < pVecSz; i++) { Particle &p = particleVec[i]; float sqrs = sqrt((X-p.x)*(X-p.x)+(Y-p.y)*(Y-p.y)+(Z-p.z)*(Z-p.z) ); float f = G*((p.M*M)/sqrt(rs)); float f = G*((p.M*M)/1.0); float a = f/p.M; float cosx = (X-p.x)/sqrs; float cosy = (Y-p.y)/sqrs; float cosz = (Z-p.z)/sqrs; float ax = a*cosx; float ay = a*cosy; float az = a*cosz; p.vx += ax*1/invFPS; p.vy += ay*1/invFPS; p.vz += az*1/invFPS; p.x += p.vx; p.y += p.vy; p.z += p.vz; } } ------------------------------------------ Сам думаю: 1. Вынести за пределы цикла: float f = G*((p.M*M)/1.0); float a = f/p.M; 2. Заюзать pthreads (вдруг полущ будет) 3. Заюзать SSE3 для извлечения квадратного корня и подсчетса направляющих косинусов.
#6SP5WG (0) / @ninesigns / 4595 дней назад
Хозяйке на заметку: Пач against 2.6.34.7 чтобы создавалось устройство /dev/one, которое возвращает 0xFF при чтении из него. diff --git a/drivers/char/mem.c b/drivers/char/mem.c index 53dd7d0..21590ae 100644 --- a/drivers/char/mem.c +++ b/drivers/char/mem.c @@ -789,6 +789,24 @@ static ssize_t read_zero(struct file *file, char __user *buf, return written ? written : -EFAULT; } +static ssize_t read_one(struct file * file, char __user * buf, + size_t count, loff_t *ppos) +{ + size_t written; + unsigned long unwritten; + static int one = ~0; + + for (written = 0; written < count; written++) { + unwritten = copy_to_user(&buf[written], &one, 1); + if (unwritten) + break; + cond_resched(); + } + + return written ? written : -EFAULT; +} + + static int mmap_zero(struct file *file, struct vm_area_struct *vma) { #ifndef CONFIG_MMU @@ -860,6 +878,10 @@ static int open_port(struct inode * inode, struct file * filp) #define open_mem open_port #define open_kmem open_mem #define open_oldmem open_mem +#define one_lseek null_lseek +#define write_one write_null +#define mmap_one mmap_zero + #ifndef ARCH_HAS_DEV_MEM static const struct file_operations mem_fops = { @@ -930,6 +952,13 @@ static const struct file_operations oldmem_fops = { }; #endif +static const struct file_operations one_fops = { + .llseek = one_lseek, + .read = read_one, + .write = write_one, + .mmap = mmap_one, +}; + static ssize_t kmsg_write(struct file *file, const char __user *buf, size_t count, loff_t *ppos) { @@ -977,6 +1006,7 @@ static const struct memdev { #ifdef CONFIG_CRASH_DUMP [12] = { "oldmem", 0, &oldmem_fops, NULL }, #endif + [13] = { "one", 0, &one_fops, NULL }, }; static int memory_open(struct inode *inode, struct file *filp)
#8GTBPE (2) / @ninesigns / 4607 дней назад
BSDMag, такой BSDMag. Вырезка из февральского номера за 2012 год. Я даже не знаю, кто тут кого потроллел. --------------------- На мой взгляд, самой лучшей одой Деннису и его невероятному вкладу было бы это: { printf(“goodbye, dad.\n”; return 0; } http://ompldr.org/vZDVqMA
#IYVIAY (0+1) / @ninesigns / 4654 дня назад
В матлабе настолько криво сделанный и неудобный к программированию GUI, что просто пи*зец. Как вы думаете, можно узнать активирована ли радио-кнопка, которая называется "fixed_prob_radio"? Вот так: if (get(handles.fixed_prob_radio, 'Value') == get(handles.fixed_prob_radio, 'Max')) Хотя, почему-то мне кажется, что в octave с этим еще хуже.
#4PPA4W (3) / @ninesigns / 4692 дня назад
ipv6 ready BnW для ведрофона BnW на Реформале Викивач Котятки

Цоперайт © 2010-2016 @stiletto.