LINUX.ORG.RU

Сообщения bryak

 

Как работать с manytomany?

class Blog(models.Model):
    name = models.CharField(max_length=100)
    tagline = models.TextField()

    def __str__(self):
        return self.name

class Author(models.Model):
    name = models.CharField(max_length=200)
    email = models.EmailField()

    def __str__(self):
        return self.name

class Entry(models.Model):
    blog = models.ForeignKey(Blog, on_delete=models.CASCADE)
    headline = models.CharField(max_length=255)
    body_text = models.TextField()
    pub_date = models.DateField()
    mod_date = models.DateField()
    authors = models.ManyToManyField(Author)
    number_of_comments = models.IntegerField()
    number_of_pingbacks = models.IntegerField()
    rating = models.IntegerField()

    def __str__(self):
        return self.headline
>>> from apps.dictionaries.models import Entry,Blog,Author
>>> Entry.objects.all().values()[0]

out:

{'id': 1, 'headline': 'Entry_headline1', 'pub_date': datetime.date(2020, 7, 9), 'number_of_comments': 1, 'mod_date': datetime.date(2020, 7, 12), 'rating': 1, 'body_text': 'Entry_body_text1', 'blog_id': 1, 'number_of_pingbacks': 1}

Т.е нет field ‘authors’

Далее, если я явно указываю field authors, тогда получаю следующее:

>>> Entry.objects.all().values('authors')[0]

out:

{'authors': 2}

Как мне выбрать в нормальном виде? Т.е

 {'id': 1, 'headline': 'Entry_headline1', ..., 'authors': ['Author_name1'], ['Author_name2']

 , ,

bryak
()

delete

delete

bryak
()

Замена ключей в выборке

Есть Выборка. Его следующая выборка:

queryset = Person.objects.filter(id=1)
<QuerySet [{'id': 1, 'some_param_id': 1, 'some_param_2': False,}]>

Есть таблица

class SomeTable(models.Model):
    name = models.PositiveSmallIntegerField(
        validators=[MinValueValidator(15), MaxValueValidator(250)],
        verbose_name="some",
        unique=True
    )

в Person поле

some_param_id = models.IntegerField(validators=[MinValueValidator(1)], blank=True)

т.е не ForeignKey, prefetch_related не получится сделать

Мне нужно в первой выборке заменить значение 1 ключа some_param_id на SomeTable__name. Как это сделать?

 ,

bryak
()

Как это лучше переписать с lambda?

param_fields = request.GET.get('fields') or None
if param_fields is not None:
   param_fields = list(param_fields.split(","))

Чтобы два раза не создавать param_field

 ,

bryak
()

Сделать ремап caps lock --> ctrl, а сам ctrl отключить

setxkbmap -layout us,ru -option "grp:shift_toggle,grp_led:scroll",ctrl:nocaps -variant ",winkeys"

Есть еще ctrl:swapcaps, который меняет местами ctrl и caps. А как сделать так, чтобы caps == ctrl, а сам ctrl отключить? Чтобы приучить себя 100% нажимать caps(как ctrl)?

 ,

bryak
()

job сервер

Есть задача организовать отложенную запись данных(чтобы endpoint’ы не захлёбывались.

Как пример: Есть chat-data, который имеет апи записи и чтения сообщений. Есть entrypoint chat, который предоставляет клиенту возможность писать другому пользователю сообщения и читать сообщения, которые адресованы этому пользователю.

Если писать и читать сообщения напрямую, есть несколько узких мест:

  1. при большой нагрузке chat-data и chat могут захлёбываться
  2. при отключении chat и\или chat-data сообщения не будут записаны в базу

Это просто пример, это касается всех действий пользователей, которые выполняют какие-то действия(события). Как это пофиксить? Скорей всего, необходим какой-то job-сервер, в который будут прилетать job’ы. Эндпоинт или entrypoint(?) подписывается на rabbitmq очередь, в которой он будет получать события «есть задача». Далее эндпоинт или энтрипоинт идет на job-сервер, блокирует записи, над которыми работает и начинает выполнять job’ы. Допустим в 8 потоков(настраиваемо должно быть). И выполняет их до тех пор, пока их не будет ноль. После выполнения - производится удаление job’ов.

Т.е получается, что chat chat-data могут быть отключены. При этом сообщения падают в job-сервер. Как только chat chat-data включаются, они заходят на job-сервер и начинают оттуда брать job’ы. Это правильно архитектурно? Или как-то по-другому надо делать?

Вопрос по job-серверу. Rabbitmq позволяет изменять messag’и? Т.е я делаю queue, туда прилетают job’ы. В отдельном queue прилетают нотификации о наличие job’ов. Эндпоинт или энтрипоинт выбирает несколько сообщений, блокирует их и начинает выполнять. По окончанию - удаляет их из queue. Rabbitmq позволит так делать? Или делать отдельный job-сервер с апи добавления задач и записи их, скажем, в postgresql?

 , , ,

bryak
()

Вопрос про охлаждение

Есть системный блок

https://i.ibb.co/3CpJDt0/IMG-20200702-190542.jpg

https://i.ibb.co/ZX8tWZP/IMG-20200702-190554.jpg

https://i.ibb.co/Ct10Z5H/IMG-20200702-190559.jpg

https://i.ibb.co/gStTtyN/IMG-20200702-190839.jpg

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

  1. Меньше пыли
  2. Меньше шума от фана видеокарты и процессора
  3. Прохладный воздух будет проходить через hdd, охлаждая его

Как думаете, стоит закрывать вентиляционные отверстия скотчем на боковой крышке?

PS: сейчас скотч на боковой крышке - резонансы крышки убрал

 

bryak
()

git submodule after clone

Сделал я проект, скажем some-data. Есть отдельная репа common. Мои действия:

1. Создаю репу some-data
2. cd some-data
3. git init
4. change .git/config
5. git clone git@bitbucket.org:some_name/common.git
6 .git submodule add git@bitbucket.org:some_name/common.git;git submodule init
7. git add .;git commit;git push origin master
8. cd ..; rm -rf some-data

Далее я хочу проверить, всё ли ок

1. git clone --recurse-submodules -j8 git@bitbucket.org:some_name/some_data.git
2. cd some-data
ls -a common
.  ..  bash  .git  .gitignore  python

cat common/.git
gitdir: ../.git/modules/common
cd common
touch 1; echo "wefwewwe" > 1
git add .;git commit;git push origin master
error: unable to push to unqualified destination: HEAD
The destination refspec neither matches an existing ref on the remote nor
begins with refs/, and we are unable to guess a prefix based on the source ref.
error: failed to push some refs to 'git@bitbucket.org:some_name/common.git'

  1. cd ..
  2. git add .;git commit;git push origin master

коммит проходит, но в репозитории common нет изменений, а в коммите some-data примерно такое:

-Subproject commit f971964634505ed3fd844675da0bd908c7d3a5a1

+Subproject commit 39ca9270f87da8276a8bd7e66f744f9c30e7352a

 

bryak
()

Хочу поставить gentoo в /home/gentoo

Как мне правильно примонтировать / в fstab?

UUID=some_uuid /home           ext4    defaults,noatime,commit=60,data=writeback,barrier=0,journal_async_commit          0       2

/home/gentoo /               none    bind,noatime,commit=60,data=writeback,barrier=0,nobh,journal_async_commit,errors=remount-ro 0       1

Вот так, всё верно?

 ,

bryak
()

emacs backspace не работает

По backspace вызывается C-h

 ,

bryak
()

как поставить mpv с deb-multimedia.org?

cat /etc/apt/sources.list.d/multimedia.list

# multimedia
deb http://www.deb-multimedia.org buster main non-free

cat /etc/apt/apt.conf.d/99enable-unsecure-repos

# Acquire::Check-Valid-Until "false";
Acquire::AllowInsecureRepositories "true";
# Acquire::AllowDowngradeToInsecureRepositories "true";

apt-get update

apt-get install -t deb-multimedia mpv

Reading package lists... Done
E: The value 'deb-multimedia' is invalid for APT::Default-Release as such a release is not available in the sources

 , , ,

bryak
()

Если генту собрать на виртуалке, ее придется пересобирать на реальной системе?

Если я соберу генту в virtualbox’e и перенесу ее в реальную систему, то мне нужно будет ее полностью пересобирать? Т.е она в виртуалке соберется без полного перечня CFLAGS и тд

 

bryak
()

pomodoro аплекуха

Разыскивается pomodoro timer, чтобы умел сворачиваться в трей, ничего лишнего и не был привязан к gnome/kde. Пакет к emacs не предлагать т.к он у меня не daemon и поэтому он может выключаться. Дистрибутив debian. Скрипты на баш с inotify не предлагать :)

 

bryak
()

bitbucket wokspace project

Я хочу создать воркспейс, в нем создать два проекта. В двух проектах я хочу создать репозиторий common.

Делаю это и второй репозиторий common не получается создать(пишет, что такой репозиторий уже есть)

  1. По факту можно создать только в разных воркспейсах одинаковые репозитории common. Т.е изоляция происходит не на уровне воркспейс проект, а на уровне воркспейс

  2. реально нельзя при формировании вокспейса указать id типа myname/some_workspace(при создании он формирует вокспейс с id myname-some_workspace)

Они перед тем, как сделать воркспейсы и проекты хорошо подумали? Т.е я не могу создать один воркспейс и создать там два проекта с одинаковым именем репозитория common, т.к изоляция имен не происходит на уровне вокспейс проджект, а только на уровне воркспейс

/me под столом от смеха

 ,

bryak
()

mpv vulkan отсос петрович

"[vo/gpu/vulkan] Failed initializing SPIR-V compiler!"

Что ж так-то? Срамота, товарищи. Дистрибуютив debian. В gentoo при включении флага vulkan появляется блокировка от glslang

По мотивам https://github.com/mpv-player/mpv/issues/6124

Заметьте, 2018год

 , , ,

bryak
()

стоит ли менять debian на gentoo?

Десктоп. Девелоп направленность. В принципе на дебиан всё работает. Ваше мнение. Nixos не предлагать

 ,

bryak
()

firefox как смотреть видео в mpv?

Какой есть плагин, который реализует просмотр видео(ютуб и всё остальное) в mpv? Т.е чтобы была возможность прописать external command

 , ,

bryak
()

gentoo без openrc

Я просто поинтересоваться. Допустим, я хочу без openrc. Тогда вот такое конфигурирование не работает https://wiki.gentoo.org/wiki/OpenRC, да?

Т.е network уже не настраивается с помощью /etc/conf.d/net, верно? А настраивается systemd-networkd.service

Т.е, в debian есть обёртка, с помощью которой осуществляется настройка network(/etc/network/interfaces), а в gentoo, если избавиться от openrc такой обёртки нет. Верно?

 , ,

bryak
()

Загрузить fragment по click

cat FillFormFragment.kt

package com.example.some

import android.os.Bundle
import androidx.fragment.app.Fragment
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup

class FillFormFragment : Fragment() {

    override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? =
            inflater.inflate(R.layout.fragment_fillform, container, false)

    companion object {
        fun newInstance(): FillFormFragment = FillFormFragment()
    }
}

Мне надо его загрузить из ProfileFragment. В ProfileFragment есть textview, я делаю обработку на клик

val fill_form: TextView = self?.findViewById(R.id.fill_form) as TextView

fill_form.setOnClickListener {
...
}

Как это сделать?

 ,

bryak
()

imagebutton приклеенный к circleimageview

Пример: https://www.androidhive.info/wp-content/uploads/2019/02/android-social-profile-like-instagram-min.jpg

кнопка с плюсиком

Это не правильно

<de.hdodenhof.circleimageview.CircleImageView
        xmlns:app="http://schemas.android.com/apk/res-auto"
        android:id="@+id/profile_image"
        android:layout_width="192dp"
        android:layout_height="192dp"
        android:layout_centerInParent="true"
        android:src="@drawable/ic_profile"
        app:civ_border_width="1dp"
        app:civ_border_color="#FF000000"/>
    
    <ImageButton
        android:id="@+id/edit"
        android:layout_width="24dp"
        android:layout_height="24dp"
        android:layout_marginLeft="20dp"
        android:background="@drawable/ic_add_photo_black_24dp"
        android:layout_alignParentRight="true" />

 , ,

bryak
()

RSS подписка на новые темы