Дома, за 1к км. есть девайс(медиаплеер с android). Мама не умеет им управлять. Хотелось бы поставить какую-то аплекуху, с помощью которой я смог бы рулить этим девайсом(ставить фильмы). Есть такая аплекуха в природе?
wget https://dl.suckless.org/dwm/dwm-6.2.tar.gz
tar xzpf dwm-6.2.tar.gz
cd dwm-6.2/dwm
make
out:
dwm build options:
CFLAGS = -std=c99 -pedantic -Wall -Wno-deprecated-declarations -Os -I/usr/X11R6/include -I/usr/include/freetype2 -D_DEFAULT_SOURCE -D_BSD_SOURCE -D_POSIX_C_SOURCE=2 -DVERSION="6.2" -DXINERAMA
LDFLAGS = -L/usr/X11R6/lib -lX11 -lXinerama -lfontconfig -lXft
CC = cc
cc -c -std=c99 -pedantic -Wall -Wno-deprecated-declarations -Os -I/usr/X11R6/include -I/usr/include/freetype2 -D_DEFAULT_SOURCE -D_BSD_SOURCE -D_POSIX_C_SOURCE=2 -DVERSION=\"6.2\" -DXINERAMA drw.c
drw.c: In function ‘xfont_create’:
drw.c:143:38: error: ‘FC_COLOR’ undeclared (first use in this function)
if(FcPatternGetBool(xfont->pattern, FC_COLOR, 0, &iscol) == FcResultMatch && iscol) {
^~~~~~~~
drw.c:143:38: note: each undeclared identifier is reported only once for each function it appears in
drw.c: In function ‘drw_text’:
drw.c:353:32: error: ‘FC_COLOR’ undeclared (first use in this function)
FcPatternAddBool(fcpattern, FC_COLOR, FcFalse);
^~~~~~~~
Makefile:18: recipe for target 'drw.o' failed
make: *** [drw.o] Error 1
Попробовал nixos. Да, идея декларативного конфигурирования - это очень хорошая идея. Мне кажется - единственно верная. Но применять ее в контексте десктопа - достаточно проблематично. Хотелось бы заюзать какой-то фреймворк для конфигурирования системы, который мог бы манипулировать конфигами, изменять в них объекты, но при этом не иметь кучу зависимостей(как ansible) и быть достаточно стабильным т.е не ломаться от версии к версии. Городить такое на баше + sed - как мне кажется нецелесообразно. Есть ли в природе какие-то фреймфорки, с помощью которых можно отконфигурировать всю систему, возможно со своим ЯП на борту?
1.поиск файлов в проекте(основываясь на маркере в корне проекта)
2.поиск по содержимому файлов в проекте(основываясь на маркере в корне проекта)
Так вот, пользуюсь
[code]
C-c f runs the command (lambda nil (interactive) (set (quote
my-project-root) (Hlpr-find-root-marker «.locals.el»)) (if (not
(stringp my-project-root)) (message «Error: Project not found!») (setq
default-directory my-project-root) (cd my-project-root)
(helm-projectile-find-file-dwim))) (found in global-map), which is an
interactive Lisp function.
[/code]
и
[code]
helm-do-grep-ag
[/code]
Так вот и первое и второе обеспечивает ag. Но projectile меня с связкой ag не устраивает, т.к в этой связке нестабильно работает фильтрация. Т.е исключение директорий и extention. Есть какой-то пакет, который standalone и работает по кретерию поиск файлов с передачей результатов в helm и поиск текста с передачей результатов в helm
1. На выходе бокс с label обрезается. В боксе мне нужно много значений. Как бы его так сделать, чтобы он корректно в foo.png входил?
2. Есть возможность не в ручную создавать errorbar? т.е чтобы я не делал
for x in some:
eval(plt.errorbar(%(some1)s, %(some2)s, label='%(label)s' % ({'some1': some, 'some2': some2, 'label'=label}))
3. Какой корректно использовать bar? Думаю, что errorbar некорретно юзать
import numpy as np
import matplotlib.pyplot as plt
fig = plt.figure()
x = np.arange(10)
x = np.array(x)
y = 2.5 * np.sin(x / 20 * np.pi)
yerr = np.linspace(0.05, 0.2, 10)
print(x)
plt.errorbar(x, y + 1, label='some1aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqqqqqqqqqqqqqqqqq')
plt.errorbar(x, y + 2, label='some2bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb')
plt.errorbar(x, y + 3, label='some3cccccccccccccccccccccccccccccccccccccccccccccccc')
plt.errorbar(x, y + 4, label='some4ddddddddddddddddddddddddddddddddddddddddddddddddd')
plt.errorbar(x, y + 5, label='some5eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee')
plt.errorbar(x, y + 6, label='some6tttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt')
plt.legend(loc="upper left", bbox_to_anchor=(1,1))
# plt.show()
plt.savefig('foo.png')
plt.close()
Как это можно оптимизировать? Берем минимальную и максимальную дату и выбираем минимальный и максимальный год
далее генерим года и месяцы, и выбираем максимальную цену в каждом месяце. Как это можно на орме сделать оптимальней?
Т.е в конце концов мне нужно
res = {}
min_year = Some.objects.values('timestamp').order_by('timestamp').first()['timestamp'].year
max_year = Some.objects.values('timestamp').order_by('timestamp').last()['timestamp'].year
for year in range(min_year, max_year + 1):
for month in range(1, 13):
qs = Some.objects.filter(
timestamp__year=year,
timestamp__month=month,
name=param['name']
).aggregate(Max('cost'))['cost__max']
if qs is not None:
if year not in res:
res[year] = []
res[year].append({'month': month, 'cost': qs})
Раньше было неудобно юзать генту на десктопе т.к окружение должно быть подобно тому, что используется в дев окружении и на проде. На дворе 19к, вся разработка происходит внутри docker контейнеров. Дебиан стейбл няшка, но иногда хотелось бы что-то по-свежее юзать. К примеру, 5 ядро, какое-нибудь geek-sources с нужными патчами. Так же хотелось бы автоматизировать наложение патчей на dwm, st. На дебиане это все проблематично т.к смешивать ветки не Ъ, а переходить полностью на анстейбл - не айс. Интересно услышать ваше мнение по поводу этого. Только, пожалуйста, исключите фразы типа «я на дебиан тестинг/анстейбл и у меня всё работает».
Есть такой скрипт, чтобы генерировать меню с подменю. Его можно переписать для себя и юзать, но хотелось бы это делать в нормальном виде. Как? Примерно так:
cat menu.txt
1. User manipulation
1. some_action1 add_user
2. some_action2 del_user
3. some_action3 edit_user
4. return to prev menu prev_menu
2. Some1 manipulation
...
...
3. Some3 manipulation
...
...
На выходе чтобы формировало менюшку и в то же время позволяло запускать скрипт ./some.sh add_user -name vasya del_user -name vasya edit_user -name petya -p 123456 (создали васю, удалили васю, сменили пароль пете)
function add_user
{
option=0
until [ "$option" = "3" ]; do
echo " 1.) Update1 username"
echo " 2.) Update password"
echo " 3.) Return to menu"
echo -n "Enter choice: "
read option
echo ""
case $option in
1 ) update_username; press_enter ;;
2 ) update_password; press_enter ;;
3 ) main_menu; press_enter ;;
4 ) break ;;
* ) tput setf 3;echo "Please enter 1, 2 or 3";tput setf 3;
esac
# }
done
}
function press_enter
{
echo "aaa"
}
function update_user
{
option=0
until [ "$option" = "3"]; do
echo " 1.) Update username"
echo " 2.) Update password"
echo " 3.) Return to menu"
echo -n "Enter choice: "
read option
echo ""
case $option in
1 ) update_username; press_enter ;;
2 ) update_password; press_enter ;;
3 ) main_menu; press_enter ;;
4 ) break ;;
* ) tput setf 3;echo "Please enter 1, 2 or 3";tput setf 3;
esac
# }
done
}
function main_menu
{
option=0
until [ "$option" = "4" ]; do
echo " 1.) Add user"
echo " 2.) Remove user"
echo " 3.) Update user"
echo " 4.) Quit"
echo -n "Enter choice: "
read option
echo ""
case $option in
1 ) add_user ; press_enter ;;
2 ) remove_user ; press_enter ;;
3 ) update_user ; press_enter ;;
4 ) exit;;
* ) tput setf 4;echo "Please enter 1, 2, 3, or 4";tput setf 4;
esac
done
}
main_menu
# ------------------------------------------------------------