Pull to refresh
16
0

Software Engineer

Send message

Большое оверпрайснутое ненужно. Реализовали переназначение/удаление клавиш, которое делается софтверно на любой типовой pc104 клавиатуре. На этом список фич клавиатуры, относящихся непосредственно к набору текста, заканчивается. (при том, что она заявляется как "для тех пользователей, кто много работает с текстом или кодом").

Детские болезни PC104 (модификаторы, нажимаемые мизинцем) уже сто лет как решены thumb pad на эргоклавиатурах, или специальными раскладками. Иметь модификатор на месте капса - это конечно чуть лучше чем в углу где Ctrl, но сильно положения дел это не меняет. Он всё равно жмётся мизинцем.

Напихали кучу всякой периферии, какие-то жесты, скроллбары, но не добавили ТРЕКПАД. Gesture pad это не трекпад, произвольно позиционировать курсор он не может. В итоге мышь или заменяющее её устройство нужны всё равно.

По сути просто обычная клавиатура с доп. кнопками, ну ок, в качественном исполнении. Механика, сменные свитчи итд - это всё есть в любой эрго-клавиатуре. За такую цену лучше купить Ergodox, Kinesis и т.д.

это «создать новое место foo и переместить в него объект из bar» (объект один и тот же, но его переместили)

Именно так. Nomicon например явно говорит об этом: https://doc.rust-lang.org/nomicon/constructors.html. Мб я не так выразился, я имел в виду что объект всё же создаётся не полностью эквивалентный. У него другая позиция в памяти, +на старый объект после мува инвалидируются ссылки. "let mut rect = rect" это буквально то же самое, что "let mut rect2 = rect".

// А теперь мы опять можем менять rect.

В смысле "можем менять rect"?? Вы же в курсе, что let mut rect = rect создаёт новый объект и мувает в него старый, а не снимает с объекта константность? Выведите на печать &rect до и после выражения с let, они будут разными.

Да, исправил уже, фото с ноутом вводит в заблуждение

Странно что cmd вызывает неудобства. На типовой (PC104, не эрго) клавиатуре клавиши по краям пробела (alt/cmd) - это лучшие модальные клавиши. Лучше просто нет, если только не обращаться к раскладкам где например пробел работает модификатором. В эргораскладках на эти боковые клавиши часто назначают модификатор Shift.

Копайте в сторону раскладок и хоткеев, они решают больше чем геометрия клавиатуры.

Безотносительно содержимого статьи - а что это за такой интересный инструмент, выдающий разбивку времени выполнения по каждой ассемблерной операции? (1я картинка)

молодой протагонист Вульфгар

Безотносительно содержимого статьи - Вульфгар не протагонист. :) Бессменным главным героем в этой книжной серии является тёмный эльф Дзирт До'Урден. Вульфгар один из его спутников.

При всех этих вариантах невозможность работника выполнять обязанности по основному договору в регламентированное рабочее время - это проблема работника.

Придя на работу в первый рабочий день января, я подал заявление

Мои доводы, что я уже работаю в другом месте и не могу порваться

Ну трудовая книжка же как-то умудрилась порваться. Иначе как может быть, что товарищ "уже работает в другом месте", умудрившись не прекратить трудовые отношения со старым работодателем, о чём должна быть запись в трудовой (которую он до первого рабочего дня января получить, очевидно, не мог). Магия, не иначе.

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

Да, так. Все понимают, что такие фразы это фарс чистой воды, но все играют в эту безумную игру, потому что все остальные это делают. Карьерные консультанты это знают и именно поэтому дают советы вписывать подобные шаблоны в резюме.

А так, значительно больше, чем от точных процентов в таких фразах, у меня дёргается глаз от "увеличил ревеню на 38%" или "увеличил производительность на 100%". Компания вот прямо сидела и не знала, что можно прибыль или производительность бампнуть в полтора раза и тут пришёл %username% и сделал это в одно лицо???

Имхо:

  1. Сквоттер владеет ником легально. У додо нет никаких правовых оснований считать, что ник должен принадлежать им.

  2. Для додо лучше всего будет тупо предложить адекватную с их т.з. цену за ник (не миллион конечно) и не идти на уступки по поводу этой цены. Если сквоттер не согласится на их условия - он останется с 0$ прибыли и с правами на никому не нужный ник, очевидно не пригодный ни для чего кроме как для шантажа додо в этой истории. Давление через суд - неадекватное действие, я думаю Додо уже репутационных потерь набрали столько, что ещё вопрос, не потеряют ли они больше чем получат.

for sell

For sale. Сквоттер явно наш соотечественник. :)

Но дальние монетки больше и толще! (Иначе бы не было равенства видимых размеров)

Даже самый топорный современный компилятор сразу предупредит о проблеме в строке if (variable = NULL)

Эх, хорошо жить в детерминированном мире, наверное.

Вот вам русская рулетка в виде абсолютно безопасного (с точки зрения как минимум PVS-Studio) кода:

#include <stdio.h>
#include <stdlib.h>
#include <time.h>


int *generate()
{
   static int generate1 = 42;
   static int generate2 = 43;

   srand(time(NULL));

   // Simulate a typo: "&generate" instead of &generate1.
   return (rand() % 6 == 1) ? &generate : &generate2;
}

int main ()
{
    int *pi = generate();
    (*pi)++;
   
    return(0);
}

Нет и не может быть безопасности в языке с сырыми указателями и никакие санитайзеры тут не помогут.

Какие строки при этом пишутся в syslog?

нет, это требует другого типа.

Только если надо реализовать Drop для типа из другого крейта.
Имхо очень правильное архитектурное решение, оно гарантирует, что реализация типа сосредоточена в 1 крейте. А тип, который по-другому делает Drop, и называться должен по-другому.

Надо удалить как то по другому тип? Ну пишите новый тип, а ещё перегружайте оператор точка.

При чём здесь перегрузка точки в вопросе удаления объекта?

Текстовый формат Ledger и есть CSV, точнее небольшое надмножество TSV. Ledger - система отчётов поверх этого формата

Ledger из коробки поддерживает логирование времени, гуглится по слову timelog format. https://ledger-cli.org/doc/ledger3.html#Time-Keeping

Полез ради интереса гуглить как этот popcnt программно эмулируют, нашёл прикольный способ на чистом C, без ассемблера:

uint64_t popcnt_reference(uint64_t x)
{
	// bit twiddling method
	uint64_t c;
	for(c = 0; x; c++) {
		x &= x - 1;
	}
	return c;
}

В xkb не уверен что такое возможно, тк если делать это через модификаторы как в примере выше, то нужно 6 различных модификаторов, по одному на каждую префиксную клавишу ERSFXC. В X11 штатных модификаторов ровно 8 (Shift, Lock, Control, Mod1, Mod2, Mod3, Mod4, Mod5) и как минимум 4 из них заняты под реально нужные функции которые переназначать не следует. Можно пойти другим путём: Функциональность, которой вы хотите добиться, в терминологии XKB называется Compose Keys - замена одного предопределённого ввода на другой, ввод и вывод могут быть из нескольких символов. Именно через Compose в XKB делается ввод диакритики, æ, и т.д., можно вывести хоть "Hello world". Но если во вводе количество символов (не модификаторов) более одного, то все символы кроме последнего введённого должны являться т.н. "Dead keys" - клавишами, не вводящими никакого реального символа, тк в XKB нет такой вещи как дерево решений и стирание/изменение предыдущего ввода. Соответственно невозможно на чистом XKB сделать так, что просто в процессе ввода какого-то текста на латинице на 1м слое вводится секретная последовательность символов и она транслируется в æ.

Можно сделать клавиши ERSFXC "Dead keys" на другом слое и тогда описанное мной сработает - можно будет создать 6 Compose-последовательностей. Но на этот другой слой надо будет вначале переключиться для набора начального Dead key.

Вам судя по всему в высокоуровневые клавиатурные скриптеры наподобие Autohotkey (есть под Linux)

1
23 ...

Information

Rating
4,090-th
Location
Россия
Registered
Activity