Pull to refresh
15
0.1

Software Engineer

Send message

Как разработчик модальной раскладки, я не разделяю всеобщих восторгов по поводу Xah Fly Keys. Анализ частности и одиночных клавиш, и биграмм автор вроде бы и проводил, судя по крайне удачному взаимному расположению некоторых групп команд, но выводы он из этого анализа сделал какие-то странные:

  • j (лучшая клавиша ever) забита под весьма редкое действие ←.

  • ↑↓ - действия, которые часто выполняются подряд, - оба выполняются одним и тем же пальцем.

  • Вешать на одну руку посимвольные команды ←→ и пословные ←w →w - плохая идея, посимвольное движение часто следует за пословным, во fly keys многие такие пары команд выполняются одним и тем же пальцем.

  • Достаточно редкому действию ⌫() отведена одни из лучших клавиш d?????

  • Если это модальная раскладка, где модальные команды c, d (в нотации vim)?

  • Не вижу некоторых важных модальных команд: ←W →W o O a A (в нотации vim)

  • На эти и другие вопросы автор возможно мог бы дать ответ, написав design document на раскладку, которого увы нет.

Я сидел на ббсках, управление у них конечно дико неудобное из-за того, что можно делать только то, что зашито в меню BBS. Хочешь поиска по борде, а нет его. При том что были например более стандартизованные Gopher и Usenet, где в клиенте можно было делать типовые действия, например закачивать новости из юзнета локально и читать их в Emacs как почту, с тредами, поиском итд.

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

ЯННП, может кто-нибудь объяснить, что имелось в виду под "записью" и "копированием узла при записи" и при чём тут потребление памяти, когда речь идёт о быстродействии?

Псст, хотите немного уличной магии!

// main.cpp
template <typename T> void foo();

int main() {
    foo<int>();
}

// foo.cpp
template <typename T> void foo();

template<>
void foo<int>() {}
g++ main.cpp foo.cpp && ./a.out

У std function проблема не только в аллокации памяти, а ещё и в том, что компилятор не может её инлайнить, в отличие от лямбд.

https://godbolt.org/z/W8zWYW5Gc - lambda
https://godbolt.org/z/E1WadnfGj - std::function

Но да, луддизм зачётный.

Поле может быть и больше высоты 20.

что sin10x хорошо так растягивается вверх, он и синусом всех убьёт

От sin10x можно спрятаться выше и ниже 1. А вот y = 1 / (4(x - 0.5 - [x])) убьёт всё живое...

Самый быстрый форматер кода

соревноваться в скорости будем c prettier.

С одним из самых медленных форматировщиков, написанных на js))))
Погоняйтесь с jsonformat что ли на json, или с rustfmt для Rust, а затем пишите кликбейтные заголовки про самый быстрый форматировщик.

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

за счёт своего собственного алгоритма форматирования

Универсального для всех языков и вызываемых парсеров? Как это работает?

Неканонично собираете ядро, голый "make install" чего бы то ни было в дистрибутивах с пакетным менеджером строго запрещён, тк установленные файлы не будут им контролироваться. В сборочных скриптах, поставляемых с исходниками ядра Linux, есть специальный makefile для сборки ядра и сопутствующих компонентов в виде deb пакетов, make deb-pkg. Подробнее https://debian-handbook.info/browse/stable/sect.kernel-compilation.html

Блочное чтение и печать сделайте (fgets/puts), Грета Тунберг негодует.

Назначение жёлтых клавиш на thumb pad:

− Скастовать 1 пчелу
− Скастовать соты с мёдом
− Скастовать мёд в банке
− Вернуть всё в улей

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

PgUp / PgDn?

Вам по факту не поддержка Scroll Lock нужна, а наличие команды скроллинга вверх/вниз и возможность привязывать её к произвольной клавише. Scroll Lock здесь ничем не уникальна, это просто кнопка на клавиатуре со своим сканкодом и с исторически сложившимся соглашением выделять ей отдельный модификатор. Можно точно так же вешать команды прокрутки на Alt + ↓↑, а не на ScrollLock, ↓↑. Если же вы хотите чтобы ↓↑ при включенном ScrollLk действовали как WheelUp/WheelDn универсально во всех приложениях, то вам в клавиатурный ремапер.

Безотносительно смыслового наполнения статьи, по которому тут уже прошлись все кому не лень, одна из фраз выглядит очень странно:

"в гостях у умного, деятельного человека, который жизнь положил на крутое и важное Дело, а теперь смотался в другую страну, всё бросил и похерил, и стремительно дотрачивает накопленные двадцать тысяч долларов"

Т.е. положив всю жизнь на крутое важное дело, человек заработал сумму примерно равную стоимости автомобиля, и теперь сжигает эту не побоюсь этого слова огромную сумму в чаду кутежа?

Честно говоря в происходящее не верится.

По сути, этого достаточно, чтобы выучить Swift и фреймворки: есть и доступные видео, и документация. Нужен только английский

Некоторых тем по Свифту на русском вообще не найти — целых разделов документации. Иногда я искал и понимал, что половины информации нет.

Штирлиц написал фразу "Нужен только английский" в промо-пост, вздохнул и сел гуглить доки на русском...

Очень странно, что упомянута мишура вроде видео и не упомянута необходимость рабочего ноута и среды. Там всё как бы не очень бесплатно и не очень очевидно. У меня вообще впечатление, что по крайней мере первое время вкатывание заключалось в просмотре книжек и видео, без компа, урывками. Как при этом можно что-то изучить на тему программирования я с трудом представляю.

Я работаю так 4 дня в неделю, 32 часа. А параллельно сейчас удалённо кожу для компании знакомого — по 30 часов в неделю, получая новые знания.

Итого 62 часа в неделю это примерно 5 рабочих дней по 12 часов или 7 дней по 9 часов без выходных. Мне слабо верится в возможность существования в таком режиме. К этому добавляется ещё "Я посещаю конференции, читаю книги". Дааа, ещё есть время и на конфы ходить и читать книги.

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

Т.е. взял того, который примерно первые полгода будет тратить время коллег и преимущественно что-то ломать, и при этом получать зп? Какая мотивация двигала этим человеком, при том что он делец и ему надо не джунов учить, а рабочий продукт делать здесь и сейчас? Сотни джунов (а в нынешнее нелёгкое время лейоффов и прочего - тысячи) с курсов, да и студентов с профильным образованием, мечутся в поисках компании, которая их возьмёт за еду и опыт, а тут всё так легко - "ты изучаешь программирование, ну иди к нам на боевой проект".

в первую очередь заходить на Swift.org. Потом — Apple Developer. Потом — Stack Overflow

Хороший рецепт для умных книжек, читать сначала документацию а потом гуглить проблему. К сожалению, в реальном мире он работает только при наличии определённого опыта в разработке (когда чтение доков приближает решение больше чем гуглёж) и далеко не во всех ситуациях. Джуны с вопросами бегут или к коллегам или на SO, ну или к чатгпт в современных реалиях. Человек, который пишет "в первую очередь заходить на Swift.org", вряд ли так делает в жизни. Что ещё больше подрывает доверие к статье.

потом Хабр

Хабр Хабр Хабр через слово, а дата регистрации январь 2023.

аллокатор памяти std::vector выделяет память в куче

Выделяет в куче, и потом если выделенного не хватает для добавления следующего элемента, то реаллоцирует, давая в 2 раза больше памяти от прежнего значения. Это может стриггерить копирование всего содержимого вектора в новую область памяти.

Так что если знаете кол-во элементов заранее, то перед заполнением советую сделать что-то вроде .reserve(MAX_SIZE), это избавит от копирований и реаллоакаций, прирост производительности может быть весьма неплохой.

Во втором flamegraph видно, что большая часть времени тратится на обработку паник в trampoline-inner. Вы случайно всеми этими оптимизациями не поломали поведение программы? Или там модуль написан в стиле panic driven execution flow?

Она есть в публичном доступе? Есть веб версия?

Information

Rating
3,174-th
Location
Россия
Registered
Activity