LINUX.ORG.RU

Избранные сообщения Xwo

Годных патчей тред

Форум — Desktop

Какие патчи используете? Я остановился на:

1.autostart. Позволяет запускать аплекухи из ~/.dwm/autostart.sh

2.systray. Добавляет systray в панель

3.noborder. Убирает border, если в теге открыто одно окно

4.pertag. Позволяет на каждом теге иметь независимый layout и mfact 

5.cfacts. Добавляет возможность горизонтальный размер окна

6.cyclelayouts. Позволяет циклически менять layout

7.zoomswap. Запоминает расположение окна при его перемещении в мастер область. Если его переместить из мастер области, то окно возвращается на своё место. К примеру, есть три окна 1,2,3. Когда мы перемещаем в мастер область окно по MODKEY+XK_Return в мастер область, а потом делаем еще раз MODKEY+XK_Return, то окно возвращается в позицию 3(по дефолту окно помещается в позицию 2

Интересно было бы услышать, кто что юзает помимо этого

 

bryak
()

Простейший аналог ansible

Форум — Admin

Есть ли в природе аналог ansible, chef и т.п., но более легковесный. Без всяких там инвентарей, мастер-клиент архитектуры и прочего.

Хочу иметь возможность, так сказать, bootstraping’а системы без лишнего геморроя. Т.е. поставить пару пакетов, добавить ssh ключи, пару конфигов и т.д. Что-то среднее между bash-скриптом и ansible playbook. Мне не нужно раскатывать конфигурацию на кучу хостов, а тупо время от времени настраивать голую систему.

Bash-скрипт с обработкой всех возможных случаев писать лениво и долго, ansible тут как микроскоп для забивки гвоздей. Нужно что-то типа DSL для конфигурации системы. Желательно несильно завязанное на определенный дистрибутив.

 , , , ,

cocucka
()

exmw установка

Форум — Desktop

Всем удачи... Можете, пожалуйста, подсказать как установить exwm? добавил в init

(require 'package)
(add-to-list 'package-archives '("melpa" . "http://melpa.org/packages/"))

какие пакеты нужно установить? и дальше?..

 

thakur
()

Увольняюсь из systemd хейтеров

Форум — Talks

Привет, ЛОР!
Решил тут уволиться из systemd-хейтеров.

Предыстория.

Поднимали мы тут инстанс btcpay, соответственно, нужно было позаботиться о том, чтобы демоны btcpayserver с его прислужниками, а так же bitcoind, litecoind постоянно были запущены, не падали и перезапускались если вдруг что.

По-старинке решил воспользоваться supervisord, но подумал, что у нас же тут модный сустемд пропихнули везде, почему бы не ознакомиться с тем, что он предлагает?

Ну, и поехали, минута в гугле и был написан следущий юнитскрипт:

[Unit]
Description=btcpay
After=network.target

[Service]
Type=simple
Restart=on-failure
RestartSec=3
User=btcpay
Group=btcpay
WorkingDirectory=/var/btcpay/btcpayserver-1.0.3.36
ExecStart=/var/btcpay/btcpayserver-1.0.3.36/run.sh --chains btc,ltc --externalurl https://btcpay.ourdomain.name

[Install]
WantedBy=multi-user.target


И ещё один --

[Unit]
Description=bitcoind
After=network.target

[Service]
Type=simple
Restart=on-failure
RestartSec=3
User=btcpay
Group=btcpay
ExecStart=/var/btcpay/bitcoin/bitcoin-0.17.0/bin/bitcoind

[Install]
WantedBy=multi-user.target


 # systemctl enable bitcoind && systemctl enable btcpay && reboot


Выкуриваем сигаретку, пинаем сервер — опа!
Всё поднялось и работает. Если что упадёт — перезапускает.
Логи показывает по $ journalctl -u bitcoind.
Ну что ещё нужно для счастья на сервере?

#вся_суть_systemd_хейтеров

_____________________________________________________________

А вот за то, что его прибивают гвоздями к десктопному линуксу и без него, например, не работает networkmanager — это всё ещё крайне и крайне печально.

 

annerleen
()

Годный линуксовый органайзер

Форум — Desktop

Привет всем.
Разыскиваю годный органайзер, который умеет в разделение на дела. Для каждого дела нужна возможность разделения на этапы с указанием даты и комментариев. И чтобы можно было формировать, например, список этапов со всех имеющихся дел за указанную дату. Есть такие или придется самому изобратать? Кросплатформенность не нужно, нужна только работоспособная версия на десктопе под линукс.

 

pengui
()

Emacs мультибуфер

Форум — General

Здравствуйте!

Подскажите, кто знает, если в emacs готовое решение для буфера обмена по нескольким значениям. По умолчанию там всегда одно, но хочется, чтобы был некий пул на несколько значений с возможностью выбора нужного.

 

knigolaz
()

Emacs выпадающее меню

Форум — General

Здравствуйте!

Подскажи, если кто знает, есть ли в emacs готовое решение с программируемым выпадающим контекстным меню. Т.е я нажимаю какую-то комбинацию клавиш и выпадает меню, а пункты этого меню я могу формировать сам, загоняя туда нужные мне команды.

 

knigolaz
()

Делимся советами по использованию Emacs

Форум — Talks

Всем привет,

Уже несколько лет я хочу полностью перейти на Emacs. Можете годных советов сюда накидать? Потому что пока что волей-неволей большинство вещей делаю в Sublime.

Какие плагины ставить? Секретные приемы? Что как вообще?

Объясните мне например, почему при нажатии на табулятор emacs ведет себя совершенно по разному?

Перемещено beastie из development

 

alex07
()

Экспорт связанных файлов org-mode Emacs

Форум — General

Здравствуйте!

Если кто знает, подскажите. Есть ли возможность производить импорт org фалов в виде проекта, т.е допустим есть org файл в котором есть ссылка на другой org файл. А при импорте создаются оба файла, например html так, что в первом есть ссылка на второй или содержимое второго включено в первый, как альтернативный вариант.

 ,

knigolaz
()

zram, swap и все, все, все

Форум — General

Имею следующее:

vm.swappiness = 97
vm.vfs_cache_pressure = 97
а на деле
 $ cat /proc/swaps
Filename                                Type            Size    Used    Priority
/dev/zram0                              partition       7340028 0       666
 $ free -h
              total        used        free      shared  buff/cache   available
Mem:          7,8Gi       3,2Gi       2,0Gi       1,9Gi       2,6Gi       3,0Gi
Swap:         7,0Gi          0B       7,0Gi
Хочу, что своп использовался по полной. Как сделать?

 , ,

Deleted
()

vim virtualenv load проблема

Форум — Admin

Есть функция:

function! MySubLoadPyVenv(dir1)
    let s:old_path=expand('%:p:h')
    let activate_this = a:dir1 . '/bin/activate_this.py'
    if MyFindDir(a:dir1, 'dir')
        " load .env
        if getftype(a:dir1) == "dir" && filereadable(activate_this)

python << EOF
import vim
activate_this = vim.eval('l:activate_this')
execfile(activate_this, dict(__file__=activate_this))
EOF

            " set keywordprg=pydocX.Y
            let res=split(system('python --version'))[1][:-3]
            execute('set keywordprg='.'pydoc'.res)

            " return to old path
            execute 'cd' fnameescape(s:old_path)
        endif
    endif
endfunction

Вызываю: call MySubLoadPyVenv('env')

!python --version

Python 3.4.2

Press ENTER or type command to continue

Но! :python from distutils import sysconfig; print( sysconfig.get_python_lib( standard_lib = True ) )

/home/user/media/source_project/yaml_example/.env/lib/python2.7

Как это исправить ?

 , ,

bryak
()

python systemd unit как писать в лог?

Форум — Development

Есть юнит, запускается от пользователя user. Внутри скрипта print('some'). Как эти принты увидеть в /var/log/syslog или в /var/log/unite/some.log посредством systemd?

[Unit]
Description=Gevent websocket runner

[Service]
Type=simple
User=user
ExecStart=/home/user/serve.py
WorkingDirectory=/home/user/

[Install]
WantedBy=multi-user.target

 , ,

Xwo
()

Термобелье на каждый день

Форум — Talks

Специалистам по всему - какое посоветуете термобелье на каждый день? Чтобы не мерзнуть на улице и при этом не упариваться в офисе. Гляжу на https://www.robinzon-ua.com.ua/rus/catalog/closes/cholovch-shtani-fuse-merino... , но может есть варианты получше?

Кто пользуется термобельем в повседневной жизни, напишите ваши впечатления и советы если можно.

 ,

by_zero
()

Прыжки по параграфам и выделение параграфов

Форум — Development

1. В общем так, рассмотрим прыжки по параграфам. Позицию курсора буду указывать с помощью "-->":

aaaa
bbbb
cccc
dddd
eeee
-->
aaaa
bbbb
cccc
dddd
eeee

aaaa
bbbb
cccc
dddd
eeee

aaaa
bbbb
cccc
dddd
eeee

Делаем }

aaaa
bbbb
cccc
dddd
eeee

aaaa
bbbb
cccc
dddd
eeee
-->
aaaa
bbbb
cccc
dddd
eeee

aaaa
bbbb
cccc
dddd
eeee

Делаем {

aaaa
bbbb
cccc
dddd
eeee
-->
aaaa
bbbb
cccc
dddd
eeee

aaaa
bbbb
cccc
dddd
eeee

aaaa
bbbb
cccc
dddd
eeee

А не логичней было бы:

aaaa
bbbb
cccc
dddd
eeee
-->
aaaa
bbbb
cccc
dddd
eeee

aaaa
bbbb
cccc
dddd
eeee

aaaa
bbbb
cccc
dddd
eeee

Делаем } и прыгаем в

aaaa
bbbb
cccc
dddd
eeee

-->aaaa
bbbb
cccc
dddd
eeee

aaaa
bbbb
cccc
dddd
eeee

aaaa
bbbb
cccc
dddd
eeee

И еще раз }

aaaa
bbbb
cccc
dddd
eeee

aaaa
bbbb
cccc
dddd
-->eeee

aaaa
bbbb
cccc
dddd
eeee

aaaa
bbbb
cccc
dddd
eeee
И еще раз }
aaaa
bbbb
cccc
dddd
eeee

aaaa
bbbb
cccc
dddd
eeee

-->aaaa
bbbb
cccc
dddd
eeee

aaaa
bbbb
cccc
dddd
eeee
А потом {
aaaa
bbbb
cccc
dddd
eeee

aaaa
bbbb
cccc
dddd
-->eeee

aaaa
bbbb
cccc
dddd
eeee

aaaa
bbbb
cccc
dddd
eeee

Т.е осуществлять прыжки не по пустым строкам между параграфами, а на первую и последнюю строку параграфа. И получается так, что если нужно редактировать первую строку параграфа или последнюю, то после прыжков { и } нужно подправлять позицию с помощью одного нажатия j или k.

2. Выделение параграфов. Стоим на первой позиции параграфа. Нажимаем C-v} и получаем не выделенный параграф, а выделенный параграф + одна строка. Опять же, чтобы не вырезать\копировать +1 строку, надо нажать k, чтобы убрать выделение с лишней строки.

И первый и второй случай приводит к тому, что постоянно при прыжках и выделениях параграфов нажимаются корректирующие jk.

 

bryak
()

реализация скидки на услуги(товар) в django

Форум — Web-development

Доброго времени суток!

Не судите строго, т.к. джанго, да и питон я начал изучать не более трех недель назад. Сейчас пытаюсь ,в качестве обучения,оптимизировать выдачу абонементов и учет занятий в студии. Подскажите, пожалуйста,:

- Как можно рассчитать итоговую цену со скидкой и записать ее в таблицу «Paiments» в поле «finish_price»? При этом данные взять из таблицы «Price», которая является внешним ключом для поля «price_of_paiment»

- Можно ли использовать «choices=» для подставления данных о скидке или лучше сделать отдельную таблицу с этими данными,т.к. данные в кортеже не будут числовыми?

На просторах интернета нашел использование функции «def get_sale(self):» которую подставил в рассчет абонемента, но так и не понял ,как туда попадут данный из поля «whole_price» для расчета и как потом записать получившийся результат в поле «finish_price».

Стоит ли дедать первичным ключем поле «whole_price», т.к. планируется не более 5 записей, и можно ли будет получить из нее данные для вычислений в таблице «Price»?

class Price(models.Model):
name_paiment = models.CharField('Название абонемента', max_length=20, unique=True)
whole_price = models.IntegerField('Цена', default=0, )
price_for_one_time = models.IntegerField('Цена за 1 посещение',)
number_of_visits = models.IntegerField('Количество посещений')

def __str__(self):
    return '%s %s' % (self.name_paiment, self.whole_price)

class Paiments(models.Model):
DISCOUNT = (
    ('0', 'нет скидки'),
    ('5', '5%'),
    ('10', '10%'),
    ('15', '15%'),
    ('20', '20%'),
    ('25', '25%'),
    ('30', '30%'),
)
paiment_of_student = models.ForeignKey(Student)
price_of_paiment = models.ForeignKey(Priсe, verbose_name='Название абонемента')
discount = models.IntegerField('Скидка в процентах', blank=True, default=0, choices=DISCOUNT) #ругается на значения, которые выбираешь.
begin_date = models.DateTimeField('Дата начала', default=timezone.now)
end_date = models.DateTimeField('Дата окончания')
finish_price = models.IntegerField(get_sale()) #пишет,что имя не определено.

def get_sale(self):
    '''Расчитать стоимость со скидкой'''
    end_price = int(self.price_of_paiment * (100 - self.discount) / 100)
    return end_price

Прошу прощения ,если где-то не правильно выразил мысль. Подскажите,как реализовать мои идеи, по возможности с кодом, т.к. просто на словах не пойму из-за неопытности.

 , ,

PavelShturm
()

Как рисовать объемные графики

Форум — Development

Нужно на Python 3 нарисовать данные по типу таких, для начала без прозрачностей: https://www.tecplot.com/wp-content/gallery/3d-plots/tecplot_3d_cfd_fluid_blow...

Есть ли такие библиотеки. Вот представленная на этой картинке - проприетарная штука, управляется через Python. А на халяву есть?

 ,

I-Love-Microsoft
()

sfq flow распределение нагрузки

Форум — Admin

Привет всем. У меня тут такой вопрос - кто использует sfq + flow has keys dst? в инете инфы мало, ничего конкретного не нашел. Пытался настроить с класами htb + sfq, но когда добавляю

tc filter add dev eth0 pref 1 parent 2: protocol ip handle 2 flow hash keys nfct-src,nfct-dst divisor 1024
то дропаются пакеты. Прошу поделится информацией и\или конфигами =)

NickNill
()

vim сброс подсветки длинной строки

Форум — Desktop

Есть

let w:m2=matchadd('ErrorMsg','\%81v.*',-1)
Это подсвечивает длинную строку. Если в другом яп поставить
let w:m2=matchadd('ErrorMsg','\%121v.*',-1)
и загрузить в разные буферы, то при переходе из одного в другой - ломается подсветка более длинного(121). При этом ощущаются некислые тормоза. Это решается
autocmd BufLeave call clearmatches()

Но при этом некоторые плагины начинают высвечивать error

autocmd BufLeave *.py call matchdelete(w:m2)

не сбрасывает подсветку.

Как сбросить подсветку при BufLeave ?

 

Xwo
()

сокеты в python: глубина очереди в socket.listen( )

Форум — Development

Доброго времени суток

Документация модуля socket оставила в недоумении

socket.listen(backlog)

Listen for connections made to the socket. The backlog argument specifies the maximum number of queued connections and should be at least 0; the maximum value is system-dependent (usually 5), the minimum value is forced to 0.

Т.е. 5 соединений попали в очередь, 6е получило reject ( icmp port unreachable ), так? И этот reject придётся обрабатывать на клиенте, если нужна надёжная доставка.

Но если отвлечься от питона, современные reverse proxy спокойно выдерживают десятки и сотни тысяч одновременных запросов

Как эти два факта согласуются?

  1. модуль socket в python'е это вам не для highload ?
  2. reverse proxy задирает backlog до космических значений
  3. backlog это время только в queue, и вызов socket.accept забирает соединение из очереди. Т.е. reverse proxy многопоточные, один поток максимально быстро выполняет accept и перекидывает задачу на другой поток, освобождая очередь

Или, ближе к задаче. Каким образом можно избежать reject'а от переполненной очереди, чтобы высокая нагрузка приводила только к разрыву по tcp connect timeout, но не icmp reject ?

 ,

router
()

Быстрый и логичный пузон

Форум — Talks

Сижу оптимизирую питонокод и тихо фигею. Ниже часть выкладок (тестовых, просто смотрю как лучше тот или иной кусок сделать) от которых больше всего опух

  • np.zeros(5)[list(range(1,3))] - 2.4 us
  • np.zeros(5)[range(1,3)] - 5.1 us

а ведь вроде list() это плюс еще один вызов. ну это еще ладно, генераторы лучше убрать в чулан, но вот дальше

def test1():
    a = np.zeros(5)
    c = list(range(1,3))
    for _ in range(0, 1000):
        a[c] += 5
def test2():
    a = np.zeros(5)
    c = list(range(1,3))
    for _ in range(0, 1000):
        a[c] = np.add(a[c], 5)
  • test1() - 4ms
  • test2() - 3ms (с a[c] = a[c] + 5 аналогично)

И судя по всем тестам оператор += в 90% случаев (кроме сложения целых чисел) тормознее чем тупое присвоение.

Веселее только то что если предварительно сделать что-то типа npadd = np.add, то работать оно будет еще чуть быстрее, потому что np.add каждый раз берет сначала указатель на np, а затем на add()

Или вот сейчас совсем вскрыло, хоть это вообще второй пузон и с быстродействием не связано:

>>> unicode(None)
u'None'

 ,

upcFrost
()