- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
int main()
{
using Human = NamedTuple<
Field<"name", std::string>,
Field<"age", int>
>;
using User = NamedTuple<
Field<"login", std::string>,
Field<"password", std::string>
>;
Human vasya{ "Vasya", 16 };
vasya.get<"age">() = 17;
User user{ "xXxBaCRHxXx", "p4ssword" };
auto vasyaMerged = mergeNamedTuples(vasya, user);
std::cout << vasyaMerged.get<"name">() << " is " << vasyaMerged.get<"age">() << " years old!" << std::endl;
std::cout << "Login is " << vasyaMerged.get<"login">() << " and password is " << vasyaMerged.get<"password">() << std::endl;
}
PolinaAksenova 18.04.2021 00:58 # +3
guest6 18.04.2021 01:19 # +4
bormand 18.04.2021 01:20 # +3
Но конпилить не решились
Если много метушиться
Можно разума лишиться
Если разума лишиться
Нечем будет метушиться
bormand 18.04.2021 01:16 # +2
MAKAKA 18.04.2021 01:28 # 0
Кстати гост, это ведь по сути и есть кокогенерация
bormand 18.04.2021 01:31 # +2
А в питоне всё в кашу, зато ближе к гомоиконщине.
MAKAKA 18.04.2021 01:33 # 0
>Тут есть чёткая грань
пока есть:)
Но вот уже целые функции (getFieldIdx) у нас в компайл тайме работают
bormand 18.04.2021 01:38 # +2
MAKAKA 18.04.2021 01:44 # 0
Правда в питоне в рантайме можно генерить и классы тоже.
Просто это очень не быстро в сравнении с крестами)
bormand 18.04.2021 01:48 # 0
Вообще говоря есть. Это же ставит крест на статическом анализе. Ужк ничего нельзя узнать о коде до его исполнения.
Ну собственно в смоллтолке никакой статической типизации и не было, емнип.
MAKAKA 18.04.2021 01:50 # 0
А еще это очень отсосно с точки зрения перформанса.
Но зато это позволяет делать очень крутые штуки, например умную делегацию.
Ты можешь получить объект "вызов метода" с его аргументами, подождать немного, и передать другому объекту.
Могу ошибаться, но вроде бы точно так же работает ObjC.
j123123 18.04.2021 01:52 # 0
MAKAKA 18.04.2021 01:54 # 0
LISP это как раз та самая гомоиконность, где нету разницы между кодом и данными, а потому можно считать, что нету разницы между "компайл" и "ран" таймом
bormand 18.04.2021 02:08 # 0
MAKAKA 18.04.2021 02:11 # 0
Кстати, питон еще более ли менее "статический": там всё таки не принято править классы в рантайме без надобности (кроме фреймворков), а например в Ruby очень даже принято.
А в JS и вовсе "классы" это просто сахар для создания объектов с полем "prototype".
Скриптушня должна быть динамической, иначе нахуй она вообще нужна?
bormand 18.04.2021 02:12 # 0
PolinaAksenova 18.04.2021 02:43 # 0
bormand 18.04.2021 02:46 # 0
PolinaAksenova 18.04.2021 02:50 # 0
MAKAKA 18.04.2021 02:56 # +3
PolinaAksenova 18.04.2021 02:58 # 0
MAKAKA 18.04.2021 03:00 # 0
PolinaAksenova 18.04.2021 03:01 # 0
MAKAKA 18.04.2021 03:04 # +2
У нас был когда-то очень давно тред типа
* структурное программирование это когда есть структуры
* процедурное когда процедуры
* функциональное когда функции
итд
bormand 18.04.2021 03:17 # +2
Декларативное -- когда есть декларации (т.е. сишка подходит).
MAKAKA 18.04.2021 03:21 # 0
>Логическое -- когда есть bool.
(т.е. классическая сишка не подходит).
guest6 18.04.2021 03:24 # 0
MAKAKA 18.04.2021 03:28 # 0
guest6 18.04.2021 03:32 # 0
j123123 18.04.2021 03:30 # 0
booratihno 18.04.2021 03:33 # 0
Fike 18.04.2021 03:34 # 0
booratihno 18.04.2021 03:35 # +1
bormand 18.04.2021 04:23 # 0
Fike 18.04.2021 05:15 # +2
booratihno 18.04.2021 12:29 # +1
bormand 18.04.2021 12:34 # +1
З.Ы. А, нет... sh -> ash -> dash
guest6 18.04.2021 12:47 # 0
gologub 18.04.2021 12:47 # 0
booratihno 18.04.2021 13:22 # +1
я вот тут рыл (https://uefi.org/sites/default/files/resources/ACPI_6_3_final_Jan30.pdf) и там походу только калибровка и состояние заряда есть.
То есть универсального способа отключить зарядку нет, только всякие вендор-специфик штуки?
bormand 18.04.2021 13:59 # 0
Декомпильни свои таблицы и посмотри какие там методы есть. Хотя по четырём буквам там хуй поймёшь что они делают...
booratihno 18.04.2021 14:03 # 0
Я, собсно, чего туда полез.
До меня доебался знакомый, и спрашивает меня как тыжпрограммиста как удлиннить жизнь батареи не доводя её до заряда 100%.
Понятно, что контроллер не позволит этого сделать, но он хочет сам этим управлять.
Некотоыре вендоры делают софт, но универсального способа нет.
Я вот и решил понять, действительно ли его нет.
Похоже, что Smart Battery в ACPI довольно read-only питушня
bormand 18.04.2021 14:08 # 0
Или он хочет ещё ниже?
booratihno 18.04.2021 14:10 # 0
Контроллер конечно не даст ей разрядиться и зарядиться полностью, иначе она сломается.
Контроллер держит её в промежутке 20%-80% наверное, и врёт (через ACPI) что она 100%.
Но он хочет еще, пушо начитался говна в Интернете.
Некоторые вендоры же дают такую возможность
bormand 18.04.2021 14:12 # 0
По-моему это история в духе "я переместил кеш браузера на HDD и теперь мой SSD проживёт дольше!"
Будет заряжать батарею чаще (ёмкость то упала), в итоге то на то и выйдет, имхо. Зато ёбли себе добавит.
booratihno 18.04.2021 14:15 # 0
Но его заклинило)
bormand 18.04.2021 14:15 # 0
booratihno 18.04.2021 14:16 # 0
Он поставил batterylimiter, он пищит при зарядке 80%, и предлагает руками вынуть штепсель))
bormand 18.04.2021 14:17 # 0
Ага, чтобы батарея пошла на разряд... Заебись оптимизация жизни батарейки.
booratihno 18.04.2021 14:19 # +2
В общем мне было важно понять, что его хотелка не реализуема в общем случае, и похоже что так.
Это всё напоминает высказывание Пи по ручную оптимизацию кода с JIT
Как у машины на ходу руками подталкивать колёса, чтобы она быстрее ехала
gologub 18.04.2021 14:51 # +1
booratihno 18.04.2021 14:52 # 0
а если я официальную прошивку поставил с сайта производителя?
JloJle4Ka 18.04.2021 14:54 # 0
Для официальной прошивки надо идти в сервисный центр и там официально её ставить.
booratihno 18.04.2021 15:01 # +1
лаком тоесть
gologub 18.04.2021 15:09 # 0
gologub 18.04.2021 14:32 # +1
не для меня, для друга
добейся среднего напряжения на элементах 3.7 и сунь в холодильник
так батареи пролонгируют и не иначе
booratihno 18.04.2021 14:33 # +2
bormand 18.04.2021 14:34 # +1
Это же ГК... Тут критерии нормальности не работают.
booratihno 18.04.2021 14:35 # 0
bormand 18.04.2021 14:38 # 0
booratihno 18.04.2021 14:40 # 0
gologub 18.04.2021 14:37 # 0
в крайнем случае файку выбросишь если ребята будут дразнить
booratihno 18.04.2021 14:40 # 0
guest6 18.04.2021 14:42 # +3
booratihno 18.04.2021 14:47 # +1
Soul_re@ver 18.04.2021 10:29 # +1
Ни диагностики, ничего, второе поле просто пропадает.
PolinaAksenova 18.04.2021 10:43 # +2
Можня даже без merge, просто два поля с одиняковыми именями.
Soul_re@ver 18.04.2021 12:56 # +4
Хотя идея мне нравится. Это не баг, это просто UB передавать такие данные
PolinaAksenova 18.04.2021 14:01 # +1
Имення! Это C++-way.
Ну ладня, ладня, ня: https://wandbox.org/permlink/ixfKOuydrjBl3U0E (какой кавай, почти 44 килобайта ошибок!). Повторения ищем за O(N^2) — компилятор крепкий, компилятор стерпит o(○`ω´○)9.
nuTepcKuu_nemyx 18.04.2021 13:44 # 0
Дальше не читал.
booratihno 18.04.2021 14:56 # +1
gologub 18.04.2021 16:48 # 0