← All posts tagged code

kusayu

Не, я конечно догадывался, что ООП в Lua через таблицы можно реализовать, но чтобы так симпатично…

local class = require 'middleclass'
Test = class('Test')

function Test:initialize(x,y)
	self.x = x
	self.y = y
end

local p = Test:new(1,2)
print(p.x)
print(p.y)

>1
>2

kusayu

Гуру регулярок, помогите отловить хэштеги, позязя. Третий час бьюсь.

Надо чтобы срабатывало на #word и ##word и не срабатывало на wo#rd, #word#of#word, #12345 и всякие прочие
Примерно вот так:

    "Hello #world" == ["world"]
    "#lol #sorryNotSorry #heya #coolbeans" == ["lol","sorryNotSorry","heya","coolbeans"]
    "# # # #" == []
    "this is an in#line hash" []
    "too ##many tags" == ["many"]
    "invalid chars #$? #;wha" == []
    "" == []
    "#blue#red#yellow#green" == []
Все, что асилил выродить - это (/\B#[a-zA-Z]+/), но оно неправильно обрабатывает последний случай.

kusayu

Нет, я это даже процитирую.

>Complete the function so that it returns the number of seconds that have elapsed between the start and end times given.
Tips:
The start/end times are given as Date (JS/CoffeeScript) and Time (Ruby) instances.
The start time will always be before the end time.

Среди прочих весьма странных решений нашлась *ЖЕМЧУЖИНА*

def elapsed_seconds(start_time, end_time)
  @end_time = end_time
  @start_time = start_time
  @end_time - @start_time
end

kusayu

В силу некоторых форсмажорных обстоятельств приходится сидеть на Убунте.
Вернее, на МИНТе, собранном на ее основе, но со старым добрым  второгномом в качестве DE. Первое, что начинает выводить из себя - это  зашкаливающее количество попапов-нотификаторов. Отключается как-то так:
$ sudo mv  /usr/share/dbus-1/services/org.freedesktop.mate.Notifications.service  /usr/share/dbus-1/services/org.freedesktop.mate.Notifications.service.disabled

После перезагрузки ваши волосы снова мягкие и шелковистые, ня.

kusayu

Смена размера шрифта в rxvt-unicode "на лету"

#!/bin/bash
#~/bin/fsize


if [ $# -ne 1 ] && [ $# -ne 2 ]
then
        echo "Usage: `basename $0` <truetype_font> <size>"
        echo "   or: `basename $0` -fn <xfont>"
        exit 1
else 
        if [ $# -eq 1 ]; then
                printf '\33]50;%s%d\007' "xft:Terminus:antialiasing=true:size="  $1
                exit 0
        elif [ "$1" = "-fn" ]; then
                printf '\33]50;%s%d\007' "xft:$2:antialiasing=true"
                exit 0
        else 
                printf '\33]50;%s%d\007' "xft:$1:antialiasing=true:size=" $2
                exit 0
        fi
fi

kusayu

Если вы постоянно пользуетесь терминальным мультиплексором на {лэп|нет}топе, скорее всего окно у вас чаще всего разбито на множество зон ('pane'), но из-за небольшого размера экрана, иногда хочется иметь возможность эти зоны временно максимизировать. 

# Maximize Pane
unbind =
bind = new-window -d -n tmux-zoom 'clear && echo TMUX ZOOM && read' \; swap-pane -s tmux-zoom.0 \; select-window -t tmux-zoom
unbind -
bind - last-window \; swap-pane -s tmux-zoom.0 \; kill-window -t tmux-zoom

'C-b =' — переключил буфер в фулскрин, сделал что нужно, вернулся в исходное положение — 'C-b -'

kusayu

#1572758/ su
cd /usr/lib/aspell
grep '^special' en.dat >>ru.dat
aspell dump master en >w.en
aspell dump master ru-yo >w.ru
cat w.ru w.en >w.all
aspell --lang=ru --encoding=UTF-8 create master ruen.rws < w.all
rm -f w.ru w.en w.all
echo "add ruen.rws" > ru.multi

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