К счастью, со всеми программами, с которым я встречался, они при задании 1.2.3.4/24 как сети они воспринимают её правильно, округляя сеть до нулевого адреса сети.
Может быть и зря. Оборачивать каждый класс в фабрику и размазывать логику по фабрике выглядит странным. Например, в расте принят интересный подход: объект можно сконструировать только через статический метод try_new, если у вас объект создан, то можно всегда гарантировать, что его состояние корректно (все поля проверены итд). Для этого и существует система типов.
У вас же класс кто-нибудь может импортировать напрямую и сконструировать объект не через фабрику. И потом: ой, разве здесь не должно быть валидаторов? Что-то в другой системе теперь null.
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
Какая-то неправильная у вас консоль. step=14284; heads=81... ValueError: Exceeds the limit (4300) for integer string conversion; use sys.set_int_max_str_digits() to increase the limit
ORM не умеет генерировать create table … (просто недостаточно информации о точных типах полей), обратно тоже не умеет создавать описания растовских структур из существующих таблиц. В примере create_table_sqlite.sql нет ограничений not null, хотя по коду в расте они подразумеваются.
let user_opt: Option<User> = conn.find_one(user_from_db.id as u64).run().await?;
А если я захочу первичный ключ сделать с типом char(4 char)?
Ну и всякие мелочи по оптимизации:
update user set name = \"Mike\",age = 30 where id = 1 - не отслеживается список ИЗМЕНЁННЫХ полей, правильно так: update user set name = \"Mike\" where id = 1
select * from user - ORM же должен знать ВСЕ поля и давать возможность выбрать только НЕКОТОРЫЕ: select id, name, age from user и select id, name from user
insert into user (name,age) values (\"John\",30) - опа, явный косяк. А где указанный мной id=0?!
select * from user where rowid = 1 - зачем оно делает селект сразу же после запроса и откуда оно узнало rowid? Правильно так:
insert into user (
name,
age
) values (
"John",
30
) returning
id;
Большинство из них, взять, к примеру, Rust, Julia и Clang, даже работают с одним и тем же бекэндом. Невозможно определить победителя в автогонке, если все претенденты сидят в одной машине.
Появляются новые оптимизации в LLVM - и сразу появляются во всех языках, которые используют его.
Синтаксис выглядит забавно. Мы в oracle apex подсмотрели такой подход, чтобы не объявлять десятки переменных l_out_name ARMSTF1.arName%type;:
procedure get_custInf(
p_arcnum in ARMSTF1.arcnum%type
) as
cursor l_c is
select
arName,
arAdd1,
arAdd2,
arCity,
arStte,
arZip
from
ARMSTF1
where
arCNum = p_arcnum
fetch first 1 row only;
begin
for i in l_c loop
-- i.arName etc
exit;
end loop;
end get_custInf;
Type A сохраняет совместимость с 1.0-2.0, так это часто просто 2 интерфейса в одном разъеме.
Встречал переходник USB3.0 <-> USB C, в котором поленились развезти легаси линию для 1.0-2.0. Низкоскоростные устройства типа мышек и клавиатур не работали, USB3.0-флешка - да.
К счастью, со всеми программами, с которым я встречался, они при задании 1.2.3.4/24 как сети они воспринимают её правильно, округляя сеть до нулевого адреса сети.
Вообще-то с 0.0.0.0 не присваивается, у роутера на каждом интерфейсе по ip-адресу. А вот коммутаторы не имеют ip-адресов.
Rust ещё не предлагали? Есть пакетный менеджер, код из вашего примера будет как-то так:
Может быть и зря. Оборачивать каждый класс в фабрику и размазывать логику по фабрике выглядит странным. Например, в расте принят интересный подход: объект можно сконструировать только через статический метод
try_new
, если у вас объект создан, то можно всегда гарантировать, что его состояние корректно (все поля проверены итд). Для этого и существует система типов.У вас же класс кто-нибудь может импортировать напрямую и сконструировать объект не через фабрику. И потом: ой, разве здесь не должно быть валидаторов? Что-то в другой системе теперь null.
Про dataclass уже сказали. Сам pydantic не пользовался, но вот примерный псевдокод:
AllowTcpForwarding и, возможно, PermitOpen.
What are people saying about PonyOS?
Ubuntu Furry Remix, правда, это скорее модификация Ubuntu.
Чтобы не копировать бездумно наборы шифров из статьи, советую питоновскую утилиту https://github.com/jtesta/ssh-audit Есть в репозитории pip'a.
zstd в браузере должно выглядеть неплохо. Хромиум уже поддерживает.
Materialized view не подходят?
Потребляешь меньше соцнормы - ворующий электроэнергию майнер.
Я по этому вопросу как-то спрашивал редактора. Такой формат записи времени допустим в русской типографике.
Какая-то неправильная у вас консоль.
step=14284; heads=81...
ValueError: Exceeds the limit (4300) for integer string conversion; use sys.set_int_max_str_digits() to increase the limit
ORM не умеет генерировать
create table …
(просто недостаточно информации о точных типах полей), обратно тоже не умеет создавать описания растовских структур из существующих таблиц. В примереcreate_table_sqlite.sql
нет ограниченийnot null
, хотя по коду в расте они подразумеваются.А если я захочу первичный ключ сделать с типом char(4 char)?
Ну и всякие мелочи по оптимизации:
update user set name = \"Mike\",age = 30 where id = 1
- не отслеживается список ИЗМЕНЁННЫХ полей, правильно так:update user set name = \"Mike\" where id = 1
select * from user
- ORM же должен знать ВСЕ поля и давать возможность выбрать только НЕКОТОРЫЕ:select id, name, age from user
иselect id, name from user
insert into user (name,age) values (\"John\",30)
- опа, явный косяк. А где указанный мной id=0?!select * from user where rowid = 1
- зачем оно делает селект сразу же после запроса и откуда оно узнало rowid? Правильно так:Про это как раз в статье написано:
Появляются новые оптимизации в LLVM - и сразу появляются во всех языках, которые используют его.
Синтаксис выглядит забавно. Мы в oracle apex подсмотрели такой подход, чтобы не объявлять десятки переменных
l_out_name ARMSTF1.arName%type;
:У батарей нет фазы, только плюсы и минусы, как у батарейки.
https://habr.com/ru/articles/799395/
Встречал переходник USB3.0 <-> USB C, в котором поленились развезти легаси линию для 1.0-2.0. Низкоскоростные устройства типа мышек и клавиатур не работали, USB3.0-флешка - да.