Pull to refresh
4
0.2
Send message

Приложение запустится на сервере, а вывод будет на локальные иксы.

https://flatbuffers.dev/

Flexible - Optional fields means not only do you get great forwards and backwards compatibility (increasingly important for long-lived games: don't have to update all data with each new version!). It also means you have a lot of choice in what data you write and what data you don't, and how you design data structures.

Теоретический вопрос: можно ли как-то в рантайме выяснить, что пришли лишние поля, о которых маппер не знает? Аналог растовского #[serde(deny_unknown_fields)].

в User установился пароль со значением defaultValue = "pass123"

Мне кажется, на скриншоте другое значение.

Я бы ещё обратил ваше внимание на отсутствие оператора as в моём коде.

Не настоящий растовик, то вон немного накидал кода:

use std::ops::{Add, BitXor};

struct U512([u8; 64]);

impl U512 {
    const PI: [u8; 256] = [...];

    // todo std::mem::MaybeUninit
    fn new() -> Self {
        Self {
            0: [0; 64]
        }
    }
    
    fn transform_s(&mut self) {
        for i in 0..64 {
            self.0[i] = Self::PI[usize::from(self.0[i])];
        }
    }
}

impl Add for U512 {
    type Output = Self;

    fn add(self, other: Self) -> Self {
        let mut result = Self::new();
        let mut temp: u16 = 0;
        for i in (0..64).rev() {
            temp >>= 8;
            temp += u16::from(self.0[i]) + u16::from(other.0[i]);
            result.0[i] = u8::try_from(temp & 0xff).unwrap();
        }
        result
    }
}

impl BitXor for U512 {
    type Output = Self;

    fn bitxor(self, rhs: Self) -> Self::Output {
        let mut result = Self::new();
        for i in 0..64 {
             result.0[i] = self.0[i] ^ rhs.0[i];
        }
        result
    }
}

И у вас никогда не бросится исключение (строка с raise). Точнее бросится, но не то, которое вы ожидаете: TypeError: exceptions must derive from BaseException.

К счастью, со всеми программами, с которым я встречался, они при задании 1.2.3.4/24 как сети они воспринимают её правильно, округляя сеть до нулевого адреса сети.

Вообще-то с 0.0.0.0 не присваивается, у роутера на каждом интерфейсе по ip-адресу. А вот коммутаторы не имеют ip-адресов.

Rust ещё не предлагали? Есть пакетный менеджер, код из вашего примера будет как-то так:

fn main() {
    hello("world!");
}

fn hello(msg: &str) {
    println!("hello {}", msg);
}

Может быть и зря. Оборачивать каждый класс в фабрику и размазывать логику по фабрике выглядит странным. Например, в расте принят интересный подход: объект можно сконструировать только через статический метод try_new, если у вас объект создан, то можно всегда гарантировать, что его состояние корректно (все поля проверены итд). Для этого и существует система типов.

У вас же класс кто-нибудь может импортировать напрямую и сконструировать объект не через фабрику. И потом: ой, разве здесь не должно быть валидаторов? Что-то в другой системе теперь null.

Про dataclass уже сказали. Сам pydantic не пользовался, но вот примерный псевдокод:

from typing_extensions import Self
from pydantic import BaseModel, ValidationError, model_validator

class PriceRequestData(BaseModel):
    method: str
    path: str
    content_type: ContentTypeEnum
    data: dict[str, Any] | None = None
    headers: dict[str, Any] | None = None

    @field_validator('method')
    @classmethod
    def clean_method(cls, value: str) -> str:
        if value not in ('POST'), 'GET'):
            raise ValueError('Method name not valid.')
        return value

    @model_validator(mode='after')
    def clean(self) -> Self:
        if self.method == 'POST' and not self.headers.get('X-authorization-id'):
            raise ValueError('Authorization headers not found.')
        return self

What are people saying about PonyOS?

you have gone too far this time you fucking pony fags....
Anon, from /prog/

I just can't not believe these guys are sick fucks. Either way, getting to run vim in your shitty furry pedo OS is an accomplishment I must recognize. Fuck this shit.
Another Anon, from /prog/

NO
Mourcore, from reddit's r/technology

This is gonna buck up my computer so bad.
mybronyalter-ego, from reddit's r/mylittlepony

Thanks, but no thanks.
Nessphoro, from osdev.org

Oh… Oh god… Make it stop
@frozendevil

Ubuntu Furry Remix, правда, это скорее модификация Ubuntu.

Чтобы не копировать бездумно наборы шифров из статьи, советую питоновскую утилиту https://github.com/jtesta/ssh-audit Есть в репозитории pip'a.

zstd в браузере должно выглядеть неплохо. Хромиум уже поддерживает.

Information

Rating
2,442-nd
Registered
Activity

Specialization

Specialist
Python
SQL
Linux
PostgreSQL
Git
Database
Software development