Насколько я понимаю Вы пробуете сделать нечто близкое к предлагаемому профилю memory safety?
Одна из основных критик данного профиля в невозможности реализации без аннотаций, хоть авторы и утверждают что аннотаций будет минимум. Я скорее разделяю мнение что без аннотаций это невозможно, но мне кажется что большинство из них должно быть в описании структур данных, то есть в библиотечном коде, что вполне допустимо. Поэтому в Вашем первом опросе я голосовал что безопасность только с плагином невозможна, так как потребует поддержки всей стандартной библиотеки.
Третий подход рассмотренный в статье мне кажется не очень правильным. Всё-таки получение итератора до функции меняющей состояние вектора - это ошибка программиста, и желательно ее детектировать и исправить. На мой взгляд второй подход может быть терпимым в отношении ложных срабатываний, если добавить список разрешенных методов для разных концептов контейнеров. Например, у contiguous контейнера операции доступа к элементам не должны инвалидировать память, а resize и reserve точно инвалидируют.
Ещё интересно, есть ли у вас привязка времени жизни слабой ссылки (например, внутри итератора) к времени жизни сильной ссылки?(Надеюсь я правильно применил термины которые вы используете для плагина) В memory safety профиле если не ошибаюсь благодаря такому слежению помимо предотвращения доступа после освобождения памяти этот механизм используется для контроля алиасинга. Это конечно снова требует аннотаций, но от этого не сбежать.
Других сплит клавиаутур у меня и знакомых не было, поэтому не могу сравнить. Я последние годы почти не играю, но недавно пробовал Deadlock, движение на WASD с цифрами совмещать без отдельного циферного ряда не самое удобное). Также мой друг отметил что в некотором ПО, в частнсти blender шорткаты неудобно нажимать одной рукой, а вторая занята мышкой. В остальном я очень кайфую от слоев, все символы доступны с минимальными движениями, поэтому лично для себя не вижу смысла в дополнительных клавишах.
1) Клон nice!nano с алиэкспресс, так проще всего найти 2) Половинки между собой только по беспроводу, с компьютером по bluetooth или по usb 3) Только один контроллер определятся как калвиатура, остальные не обмениваются данными по usb. 4) Прошивка zmk, у нее софт для конфигурации клавиш еще на очень раннем этапе. Y меня клавиши сконфигурированы старым способом и являются частью прошивки. Детальнее можно узнать из документации zmk 5) По ощущениям 2-3 недели, но я ни разу не делал хорошего измерения
Не видел, но могу посоветовать посмотреть каталог Alpine, они - очень крупный производитель кнопок, переключателей и энкодеров. Некоторые их устройства можно найти на Али. Кнопка ресета и переключатель в клавиатуре как раз от них.
Единственное применение энкодеров которое я нашел для себя - громкость и отключение звука по нажатию. Сейчас у меня для этого клавиши на отдельном слое. Возможно совсем немного менее удобно, но дискомфорта не испытываю. На алиэкспресс есть готовые corne (вроде V4) с дополнительными клавишами и\или энкодерами. На реддите видел хорошие отзывы про них.
До начала использования сплита я выучил десятипальцевую печать. Сколько заняло перейти на такой сплит точно уже не скажу, так как было давно. Буквы которые помещаются на основном слое очень быстро. Цифры и дополнительные символы наверное за пару недель до терпимого уровня. Без стола наверное можно, но мне удобнее со столом по разным причинам. У меня очень много процесов переведено под использование только клавиатуры, но без мышки/тачпада все еще не обойтись.
Лежа не пробовал) Переодически печатаю довольно сильно откинувшись на стуле, высота стола и подлокотников подобрана чтобы руки немного висели над клавиатурой. Неплохо, но лично мне комфортнее переодически менять посадку и положение половинок.
Микроконтроллер насколько я знаю довольно чувствительный к температуре монтажа, рисковать не хочется. Ранее у меня несколько МК погибло в процессе использования. Это были довольно ранние ревизии платы микроконтроллера с Алиэкспресс, новые ревизии вроде постабильнее, но все равно как минимум 1 из 10 сломался. Поэтому только разьем с возможностью замены МК.
Переключатель батареи нужен чтобы ток потребления был совсем низким. В текущей конфигурации МК входит в глубокий сон через 10 минут, так что при повседневном использовании я его не выключаю, но при переноске или длительном хранении думаю лишним не будет. Сами переключатели SSSS811101, насколько я знаю почти стандарт для беспроводных DIY клавиатур. Брал на Али, проблем ни разу не испытывал, хотя больше полугода ежедневно переключал по несколько раз на старой клавиатуре.
Кейкапы совсем не ощущаются угловатыми, в первую очередь из-за сферических углублений. С таким расстоянием между клавишами заводские кикапы есть только для choc v1 свитчей и они почти плоские. По ощущениям разделение за счет углублений помогает мне меньше промахиваться по клавишам при быстром наборе. Мне кажется этот профиль получился очень удачным.
Большинство прошивок для клавиатур делаются на базе QMK и ZMK и на данный момент они не поддерживают аналоговые датчики Холла. Есть проекты с их поддержкой, насколько я знаю все они достаточно свежие, менее года, скорее всего из-за небольшого предложения свитчей до появления Gateron Jade. Когда поддержка появится в апстриме QMK/ZMK не могу судить, сейчас есть несколько проектов проводных раздельных клавиатур, например Sunder E70 HE.
По времени достаточно долго, отработка техпроцессов, доработка деталей, исправление огрехов. Думаю 2-3 месяца по чуть-чуть собиралась первая. Если оценивать последнюю изготовленную клавиатуру то 4-6 часов на изготовление разнесенные на несколько дней. Но это если все операции успешно выполнены с первого раза. По деньгам получается ~10-11 т.р. материалы, без учета потерь на неудачные операции.
У меня прошлое поколение увлажнителя как в статье.
Периодически, в зависимости от жёсткости воды берется обычное средство от накипи, и увлажнитель включается в режим чистки, барабан крутится, а вентилятор выключен. Спустя ~час выливается вода и просто потоком воды промывается барабан.
Испаряющий увлажнитель не вызывает осаждение накипи на мебели.
"нельзя переместить" означает что не произойдет связывание с аргументом типа revalue reference. То есть не вызовется конструктор перемещения, например.
Perfect forwarding никогда не будет передачей по значению, всегда только по ссылке.
И это не совсем специальный синтаксис, а результат взаимодействия reference collapsing с дедукцией типов. Правила дедукции может и специальные, но как мне кажется нельзя сказать что кто-то сэкономил.
Всё-таки SVE с поддержкой векторов больше 128 бит очень мало где можно встретить. Если не ошибаюсь в последнем кремнии от Apple SVE есть только как часть SME.
Также один из факторов - возможность создания массивов simd векторов, что возможно только с известным во время компиляции массивом.
Какие вставки на C вы делаете для ускорения задач?
На текущий момент язык C - это в первую очередь ABI склеивающий разные языки. Если смотреть на него с такой точки зрения то это действительно разные задачи с C++.
Я думаю имеется ввиду новый api который позволяет реже использовать итераторы.
Насколько я понимаю Вы пробуете сделать нечто близкое к предлагаемому профилю memory safety?
Одна из основных критик данного профиля в невозможности реализации без аннотаций, хоть авторы и утверждают что аннотаций будет минимум. Я скорее разделяю мнение что без аннотаций это невозможно, но мне кажется что большинство из них должно быть в описании структур данных, то есть в библиотечном коде, что вполне допустимо. Поэтому в Вашем первом опросе я голосовал что безопасность только с плагином невозможна, так как потребует поддержки всей стандартной библиотеки.
Третий подход рассмотренный в статье мне кажется не очень правильным. Всё-таки получение итератора до функции меняющей состояние вектора - это ошибка программиста, и желательно ее детектировать и исправить. На мой взгляд второй подход может быть терпимым в отношении ложных срабатываний, если добавить список разрешенных методов для разных концептов контейнеров. Например, у contiguous контейнера операции доступа к элементам не должны инвалидировать память, а resize и reserve точно инвалидируют.
Ещё интересно, есть ли у вас привязка времени жизни слабой ссылки (например, внутри итератора) к времени жизни сильной ссылки?(Надеюсь я правильно применил термины которые вы используете для плагина) В memory safety профиле если не ошибаюсь благодаря такому слежению помимо предотвращения доступа после освобождения памяти этот механизм используется для контроля алиасинга. Это конечно снова требует аннотаций, но от этого не сбежать.
Других сплит клавиаутур у меня и знакомых не было, поэтому не могу сравнить. Я последние годы почти не играю, но недавно пробовал Deadlock, движение на WASD с цифрами совмещать без отдельного циферного ряда не самое удобное). Также мой друг отметил что в некотором ПО, в частнсти blender шорткаты неудобно нажимать одной рукой, а вторая занята мышкой. В остальном я очень кайфую от слоев, все символы доступны с минимальными движениями, поэтому лично для себя не вижу смысла в дополнительных клавишах.
Пробовал, но в итоге вручную в файлике делал, понятнее что-ли
1) Клон nice!nano с алиэкспресс, так проще всего найти
2) Половинки между собой только по беспроводу, с компьютером по bluetooth или по usb
3) Только один контроллер определятся как калвиатура, остальные не обмениваются данными по usb.
4) Прошивка zmk, у нее софт для конфигурации клавиш еще на очень раннем этапе. Y меня клавиши сконфигурированы старым способом и являются частью прошивки. Детальнее можно узнать из документации zmk
5) По ощущениям 2-3 недели, но я ни разу не делал хорошего измерения
Не видел, но могу посоветовать посмотреть каталог Alpine, они - очень крупный производитель кнопок, переключателей и энкодеров. Некоторые их устройства можно найти на Али. Кнопка ресета и переключатель в клавиатуре как раз от них.
Единственное применение энкодеров которое я нашел для себя - громкость и отключение звука по нажатию. Сейчас у меня для этого клавиши на отдельном слое. Возможно совсем немного менее удобно, но дискомфорта не испытываю.
На алиэкспресс есть готовые corne (вроде V4) с дополнительными клавишами и\или энкодерами. На реддите видел хорошие отзывы про них.
Плата микроконтроллера содержит контроллер заряда, заряд от USB.
Не встречал, но я не интересовался данным вопросом.
До начала использования сплита я выучил десятипальцевую печать. Сколько заняло перейти на такой сплит точно уже не скажу, так как было давно. Буквы которые помещаются на основном слое очень быстро. Цифры и дополнительные символы наверное за пару недель до терпимого уровня.
Без стола наверное можно, но мне удобнее со столом по разным причинам. У меня очень много процесов переведено под использование только клавиатуры, но без мышки/тачпада все еще не обойтись.
Лежа не пробовал) Переодически печатаю довольно сильно откинувшись на стуле, высота стола и подлокотников подобрана чтобы руки немного висели над клавиатурой. Неплохо, но лично мне комфортнее переодически менять посадку и положение половинок.
Микроконтроллер насколько я знаю довольно чувствительный к температуре монтажа, рисковать не хочется. Ранее у меня несколько МК погибло в процессе использования. Это были довольно ранние ревизии платы микроконтроллера с Алиэкспресс, новые ревизии вроде постабильнее, но все равно как минимум 1 из 10 сломался. Поэтому только разьем с возможностью замены МК.
Переключатель батареи нужен чтобы ток потребления был совсем низким. В текущей конфигурации МК входит в глубокий сон через 10 минут, так что при повседневном использовании я его не выключаю, но при переноске или длительном хранении думаю лишним не будет. Сами переключатели SSSS811101, насколько я знаю почти стандарт для беспроводных DIY клавиатур. Брал на Али, проблем ни разу не испытывал, хотя больше полугода ежедневно переключал по несколько раз на старой клавиатуре.
Кейкапы совсем не ощущаются угловатыми, в первую очередь из-за сферических углублений. С таким расстоянием между клавишами заводские кикапы есть только для choc v1 свитчей и они почти плоские. По ощущениям разделение за счет углублений помогает мне меньше промахиваться по клавишам при быстром наборе. Мне кажется этот профиль получился очень удачным.
Большинство прошивок для клавиатур делаются на базе QMK и ZMK и на данный момент они не поддерживают аналоговые датчики Холла. Есть проекты с их поддержкой, насколько я знаю все они достаточно свежие, менее года, скорее всего из-за небольшого предложения свитчей до появления Gateron Jade. Когда поддержка появится в апстриме QMK/ZMK не могу судить, сейчас есть несколько проектов проводных раздельных клавиатур, например Sunder E70 HE.
По времени достаточно долго, отработка техпроцессов, доработка деталей, исправление огрехов. Думаю 2-3 месяца по чуть-чуть собиралась первая. Если оценивать последнюю изготовленную клавиатуру то 4-6 часов на изготовление разнесенные на несколько дней.
Но это если все операции успешно выполнены с первого раза.
По деньгам получается ~10-11 т.р. материалы, без учета потерь на неудачные операции.
У меня прошлое поколение увлажнителя как в статье.
Периодически, в зависимости от жёсткости воды берется обычное средство от накипи, и увлажнитель включается в режим чистки, барабан крутится, а вентилятор выключен. Спустя ~час выливается вода и просто потоком воды промывается барабан.
Испаряющий увлажнитель не вызывает осаждение накипи на мебели.
"нельзя переместить" означает что не произойдет связывание с аргументом типа revalue reference. То есть не вызовется конструктор перемещения, например.
Perfect forwarding никогда не будет передачей по значению, всегда только по ссылке.
И это не совсем специальный синтаксис, а результат взаимодействия reference collapsing с дедукцией типов. Правила дедукции может и специальные, но как мне кажется нельзя сказать что кто-то сэкономил.
В SME есть режим стриминга, в котором работает часть инструкций SVE. Вот тестирование в процессоре apple M4 https://scalable.uni-jena.de/opt/sme/micro.html#microbenchmarks
Я слабо знаком с simd в arm, в основном работаю с avx.
Всё-таки SVE с поддержкой векторов больше 128 бит очень мало где можно встретить. Если не ошибаюсь в последнем кремнии от Apple SVE есть только как часть SME.
Также один из факторов - возможность создания массивов simd векторов, что возможно только с известным во время компиляции массивом.
Какие вставки на C вы делаете для ускорения задач?
На текущий момент язык C - это в первую очередь ABI склеивающий разные языки. Если смотреть на него с такой точки зрения то это действительно разные задачи с C++.