feb15
This commit is contained in:
1
.gitignore
vendored
Normal file
1
.gitignore
vendored
Normal file
@@ -0,0 +1 @@
|
|||||||
|
.html
|
||||||
@@ -1,216 +0,0 @@
|
|||||||
19.01: 40
|
|
||||||
|
|
||||||
* создать заготовку компонента budget в iOS
|
|
||||||
* реализовать budgetReportedDate()
|
|
||||||
* реализовать budgetReportedWeekday()
|
|
||||||
|
|
||||||
18.01: 30
|
|
||||||
|
|
||||||
* собрать проект с подключенной либой gb
|
|
||||||
* вызвать simplyPrint в iOS
|
|
||||||
* перенести функции в gb
|
|
||||||
|
|
||||||
18.01: 50
|
|
||||||
|
|
||||||
* досоздать заготовку build.gradle.kts
|
|
||||||
* создать заготовку ver-sdkios
|
|
||||||
* переименовать ver-sdkios -> sdk-ios
|
|
||||||
* сделать скрипт util/gen-ios
|
|
||||||
√ сборка
|
|
||||||
√ архивирование
|
|
||||||
|
|
||||||
17.01: 40
|
|
||||||
|
|
||||||
* доверстать заготовку интерфейса
|
|
||||||
два поля ввода
|
|
||||||
текстовый результат
|
|
||||||
кнопки для буфера
|
|
||||||
|
|
||||||
17.01: 35
|
|
||||||
|
|
||||||
* сверстать поле ввода spent с кнопкой
|
|
||||||
|
|
||||||
16.01: 40
|
|
||||||
|
|
||||||
* долг:
|
|
||||||
entities.yml: удалить copyResult
|
|
||||||
это didClickCopy ведь уже
|
|
||||||
* создать заготовку приложения на iOS по примеру песочницы
|
|
||||||
* оформить ЗС
|
|
||||||
https://github.com/kornerr/git-budget/pull/7
|
|
||||||
* влить ЗС
|
|
||||||
|
|
||||||
16.01: 35
|
|
||||||
|
|
||||||
* создать ЗС
|
|
||||||
[GigaIDE AI version]
|
|
||||||
до изменений paste
|
|
||||||
* повторить копирование в буфер через Giga IDE
|
|
||||||
не удалось
|
|
||||||
ибо не работает агент
|
|
||||||
|
|
||||||
15.01: 45
|
|
||||||
|
|
||||||
* уведомить о факте копирования
|
|
||||||
на моём Samsung это и так происходит
|
|
||||||
ГигаЧат сказал, что и многие другие производители отображают уведомление на копирование в буфер
|
|
||||||
итог: не надо ничего показывать дополнительно
|
|
||||||
* создать новую ветку для ЗС с помощью Cursor
|
|
||||||
* продублировать копирование в буфер с помощью Cursor
|
|
||||||
* оформить ЗС cursor
|
|
||||||
* оформить ЗС ручной
|
|
||||||
* влить ЗС ручной
|
|
||||||
* скачать Giga IDE
|
|
||||||
|
|
||||||
15.01: 35
|
|
||||||
|
|
||||||
* оформить ЗС ручной
|
|
||||||
* влить ЗС ручной
|
|
||||||
* включить запись
|
|
||||||
* добавить кнопку копирования в буфер
|
|
||||||
* сделать копирование результата в буфер руками
|
|
||||||
https://stackoverflow.com/questions/19253786/how-to-copy-text-to-clipboard-in-android
|
|
||||||
|
|
||||||
14.01: 40
|
|
||||||
|
|
||||||
* оформить ветку, но не сливать её
|
|
||||||
https://github.com/kornerr/git-budget/pull/2
|
|
||||||
* сделать руками вставку в буфер
|
|
||||||
тоже под запись
|
|
||||||
замерить время
|
|
||||||
вышло 40 минут
|
|
||||||
а с cursor AI было 40 минут второй части + сколько в первой
|
|
||||||
т.е. никак не быстрее
|
|
||||||
как минимум то же время
|
|
||||||
но в голове меньше мыслей было
|
|
||||||
а по факту было больше review
|
|
||||||
и меньше внимательности
|
|
||||||
ибо я пропустил в review, что нужно было didClickPaste вместо pasteSpent
|
|
||||||
|
|
||||||
14.01: 40
|
|
||||||
|
|
||||||
* исправить работу с inputSpent, pastedSpent
|
|
||||||
надо ввести shouldResetSpent
|
|
||||||
spent на основе inputSpent и pastedSpent
|
|
||||||
после чего убрать из shouldResetResult весь блок if с вызовом budgetCtrl()
|
|
||||||
ибо внутри should нельзя вызывать эффекты вроде budgetCtrl()
|
|
||||||
* исправить задание значения для vm.inputSpent из spent при отличии
|
|
||||||
cursor неверно выбрал поле и не так написал эффект
|
|
||||||
* проверить отображение pasted spent в поле ввода
|
|
||||||
и что нет цикла после задания inputSpent руками
|
|
||||||
цикла нет
|
|
||||||
отображение есть
|
|
||||||
вставка из буфера произошла успешно
|
|
||||||
|
|
||||||
13.01: 40
|
|
||||||
|
|
||||||
* оформить ЗС
|
|
||||||
https://github.com/kornerr/git-budget/pull/1
|
|
||||||
* влить ЗС
|
|
||||||
перед Cursor AI
|
|
||||||
обязательно
|
|
||||||
иначе потом ничего не видно будет по комитам
|
|
||||||
* сделать вставку из буфера
|
|
||||||
|
|
||||||
13.01: 45
|
|
||||||
|
|
||||||
* сделать budgetReportedWeekday()
|
|
||||||
использовать LocalDate
|
|
||||||
оно больше подходит, чем Calendar
|
|
||||||
https://stackoverflow.com/questions/38739983/calendar-set-day-of-week-not-correct
|
|
||||||
* передавать значения по умолчанию
|
|
||||||
* сделать подсчёт строки результата
|
|
||||||
* (практически) сравнять функциональность W и A
|
|
||||||
|
|
||||||
12.01: 45
|
|
||||||
|
|
||||||
* добавить Scaffold
|
|
||||||
как-будто из-за его отсутствия может быть чёрная штука вверху при выборе поля
|
|
||||||
не использовать modifier из Scaffold
|
|
||||||
использовал - помогло
|
|
||||||
* сделать два поля ввода
|
|
||||||
* сделать budgetReportedDate()
|
|
||||||
|
|
||||||
12.01: 40
|
|
||||||
|
|
||||||
* переименовать Playground -> Budget
|
|
||||||
* сверстать интерфейс с двумя полями ввода и одним выводом
|
|
||||||
|
|
||||||
11.01: 35
|
|
||||||
|
|
||||||
* влить ветку budget на сайте
|
|
||||||
чтобы можно было добавить cv/ files
|
|
||||||
* запустить заготовку в Android Studio
|
|
||||||
запустилось
|
|
||||||
* создать util/do-tmux
|
|
||||||
* вернуть и перегенерить cld/*
|
|
||||||
|
|
||||||
11.01: 40
|
|
||||||
|
|
||||||
* обработать файлы первого уровня
|
|
||||||
* обработать уровень app
|
|
||||||
* обработать уровень app/src/main
|
|
||||||
* обработать уровень app/src/main/res
|
|
||||||
* обработать уровень app/src/main/kotlin
|
|
||||||
|
|
||||||
10.01: 25
|
|
||||||
|
|
||||||
* найти репозиторий старого git budget
|
|
||||||
https://github.com/kornerr/git-budget
|
|
||||||
его и возьму
|
|
||||||
* найти эталон по UI для бюджета
|
|
||||||
вот этот сайт плюс-минус на мой уровень
|
|
||||||
https://costtrack.app/
|
|
||||||
общий список прилложений по бюджетированию
|
|
||||||
https://t-j.ru/short/all-budget-apps
|
|
||||||
итог
|
|
||||||
эталона нет
|
|
||||||
почти все приложения уродливые
|
|
||||||
так что я могу делать свою уродливую версию
|
|
||||||
а там уже посмотрим
|
|
||||||
|
|
||||||
09.01: 35
|
|
||||||
|
|
||||||
* определять weekday / weekend
|
|
||||||
* считать перерасход
|
|
||||||
* считать 'осталось Р/д' для будней
|
|
||||||
|
|
||||||
09.01: 30
|
|
||||||
|
|
||||||
* обдумать создание отдельного приложения
|
|
||||||
уже без JS
|
|
||||||
либо забить на буфер пока что
|
|
||||||
но потом всё равно хочется его иметь
|
|
||||||
либо всё-таки приложение
|
|
||||||
тогда и гит чисто для бюджета будет смотреться логичнее
|
|
||||||
да и просто как пример приложения-доказательства выглядит лучше
|
|
||||||
создать надо, но в следующей итерации
|
|
||||||
прямо сейчас мне полезнее подсчёт, а не форма
|
|
||||||
итог:
|
|
||||||
потом -да, сейчас - нет
|
|
||||||
* убрать pre
|
|
||||||
кнопки буфера можно оставить, они ведь в браузере работают
|
|
||||||
* считать целевой утренний баланс
|
|
||||||
|
|
||||||
08.01: 45
|
|
||||||
|
|
||||||
* изучить отсутствие вставки из буфера в WebView
|
|
||||||
Uncaught (in promise) NotAllowedError: Failed to execute 'readText' on 'Clipboard': Read permission denied.
|
|
||||||
после ввода WebCC ничего не изменилось
|
|
||||||
onPermissionRequest не вызывается
|
|
||||||
короче, это прям проблема на WebView
|
|
||||||
так что аналог электрона - это прям сильно упорото будет
|
|
||||||
в JS стопицот вещей иначе работают
|
|
||||||
их тупо невозможно поддержать
|
|
||||||
гораздо проще КМП
|
|
||||||
|
|
||||||
08.01: 45
|
|
||||||
|
|
||||||
* добавить кнопку быстрой вставки из буфера в поле ввода
|
|
||||||
* добавить кнопку быстрого копирования результата
|
|
||||||
* сделать вставку из буфера
|
|
||||||
|
|
||||||
07.01: 15
|
|
||||||
|
|
||||||
* исправить форматирование даты 3.1 -> 03.01
|
|
||||||
* учитывать отрицательный баланс
|
|
||||||
93
budget/2026-01_article.md
Normal file
93
budget/2026-01_article.md
Normal file
@@ -0,0 +1,93 @@
|
|||||||
|
Title: Что нам стоит на КМП построить?
|
||||||
|
URL: https://habr.com/ru/articles/989286/
|
||||||
|
|
||||||
|
Может ли Kotlin Multiplatform сократить трудозатраты при разработке одного продукта под несколько платформ? Мои вычисления говорят, что да, на 21%. Покажу это на примере своего хобби-проекта GitBudget для Android + iOS.
|
||||||
|
|
||||||
|
# Текущее положение дел
|
||||||
|
|
||||||
|
Одним из популярных способов разработки под несколько платформ является схема «одна платформа - одна команда разработки». Например, взглянем на известный мессенджер, заточенный под парковки. Некоторое время назад я словил следующую багу исчезновения сообщений:
|
||||||
|
<cut/>
|
||||||
|
<iframe src="https://kornerr.ru/vid/max-msg-disappear_2026-01-28.mp4"></iframe>
|
||||||
|
|
||||||
|
Как следует из видео, в ходе переписки с GigaChat у меня пропадали сообщения: на Android бага проявилась лишь раз (4-я секунда видеозаписи), на Web бага повторялась стабильно. Разное поведение на разных платформах свидетельствует о том, что продукт под разные платформы делают разные команды разработки. У каждой команды свой язык программирования, своя архитектура, свой процесс code review, свой уникальный набор порождаемых багов, своя команда тестирования, свой ФОТ и т.д..
|
||||||
|
|
||||||
|
Таким образом, чем больше мы дублируем в коде, тем больше мы вынуждены дублировать организационно. КМП может помочь сократить дублирование части кода, но, конечно, не полностью, а лишь на определённый процент. Каков этот процент? Посчитаем на примере моего хобби-проекта GitBudget.
|
||||||
|
|
||||||
|
# Обзор GitBudget
|
||||||
|
|
||||||
|
GitBudget - это крошечный хобби-проект для упрощения ведения собственных трат. На текущий момент нет истории трат, поддержки Git и прочего запланированного. Тем не менее, я пользуюсь этим приложением не первый месяц для упрощения ежедневного подсчёта двух важных для меня цифр:
|
||||||
|
|
||||||
|
1. Перерасход: Насколько на текущий день траты превышают план (бюджет)
|
||||||
|
2. Осталось ₽/д: Сколько можно потратить сегодня и в последующие дни текущей недели средств, чтобы не превысить недельный план (бюджет)
|
||||||
|
|
||||||
|
Углубляться в формулу и в архитектуру сейчас не буду, т.к. они не предмет данной статьи. Пытливый читатель всё это найдёт сам [на GitHub](https://github.com/kornerr/git-budget).
|
||||||
|
|
||||||
|
Ознакомимся с внешним видом приложения на Android и iOS:
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
Никакой фантастики в UI/UX нет, все элементы интерфейса стандартные (и даже не везде выровненные). Использование приложения на текущий момент сводится к трём действиям пользователя:
|
||||||
|
|
||||||
|
1. Вставить из буфера обмена траты за вчера (Spent)
|
||||||
|
2. Вставить из буфера обмена остаток баланса на вчерашний день (Morning balance)
|
||||||
|
3. Скопировать итоговый расчёт в буфер обмена (Result)
|
||||||
|
|
||||||
|
# Трудозатраты на разработку
|
||||||
|
|
||||||
|
Для удобства подсчёта условимся о разделении всего кода приложения на три группы:
|
||||||
|
|
||||||
|
| № | Группа | Пример | Файлы Android | Файлы iOS |
|
||||||
|
| --- | --- | --- | --- | --- |
|
||||||
|
| 1 | UI | Jetpack Compose, SwiftUI | MainActivity.kt, VM.kt | AppView.swift, VM.swift |
|
||||||
|
| 2 | Платформа | ClipboardManager, UIPasteboard | budget.kt, main.kt, other-android.kt, registerOneliners.kt | budget.swift, cld-ios.swift, other-ios.swift |
|
||||||
|
| 3 | Логика | budgetShouldResetMorningBalance | budgetFun.kt, entities.yml | budgetFun.kt, entities.yml |
|
||||||
|
|
||||||
|
КМП в GitBudget я использую лишь для логики, а UI и платформенный код нативные. Почему так? Потому что логика полностью под моим контролем, она обновляется по моему усмотрению. С UI и платформенным кодом ситуация иная - это собственность корпораций Apple и Google, они задают правила игры и обновляют UI с платформой по своему усмотрению (например, придумывают [Liquid Glass](https://habr.com/ru/articles/956116/), от которого не увернуться).
|
||||||
|
|
||||||
|
Считать будем два объективных показателя - количество строк кода и время, затраченное на реализацию какой-либо функциональности. На каждый из этих показателей посмотрим в разрезе вышеобозначенных трёх групп - UI, платформа, логика - и двух платформ - Android, iOS.
|
||||||
|
|
||||||
|
## Первый показатель: Количество строк кода
|
||||||
|
|
||||||
|
| № | Платформа | Всего | UI | Платформа | Логика |
|
||||||
|
| --- | --- | --- | --- | --- | --- |
|
||||||
|
| 1 | Android | 692 | 160 (23%) | 221 (32%) | 311 (45%) |
|
||||||
|
| 2 | iOS | 540 | 90 (16%) | 139 (26%) | 311 (58%) |
|
||||||
|
|
||||||
|
**Вывод-1**: 311 строк логики для iOS я **не писал повторно** благодаря КМП, это **58%** всего кода iOS.
|
||||||
|
|
||||||
|
**Вывод-2**: 311 ненаписанных повторно строк кода для iOS с точки зрения обеих платформ (692 + 540 = 1232) означают, что **25%** кода всего проекта я не писал повторно.
|
||||||
|
|
||||||
|
## Второй показатель: Время реализации функциональности
|
||||||
|
|
||||||
|
Под запись я добавил кнопку `Paste` для поля ввода `Morning balance` как для Android:
|
||||||
|
<iframe src="https://kornerr.ru/vid/git-budget-balance-android_800_2026-01-28.mp4"></iframe>
|
||||||
|
|
||||||
|
Так и для iOS:
|
||||||
|
<iframe src="https://kornerr.ru/vid/git-budget-balance-ios_800_2026-01-28.mp4"></iframe>
|
||||||
|
|
||||||
|
В итоге получились такие цифры:
|
||||||
|
|
||||||
|
| № | Платформа | Тип реализация | Особенности реализации | Время |
|
||||||
|
| --- | --- | --- | --- | --- |
|
||||||
|
| 1 | Android | Первичная | Создаём новую функциональность, которой не было, собираем почти все грабли | 17:34 |
|
||||||
|
| 2 | iOS | Вторичная | Подключаем готовую логику, дописываем лишь UI, граблей практически нет | 07:33 (43%) |
|
||||||
|
|
||||||
|
**Вывод-3**: Повторение функциональности на iOS с готовой логикой заняло на **57% меньше времени**, т.е. произошло **в 2 раза быстрее**
|
||||||
|
|
||||||
|
**Вывод-4**: Если принять, что без КМП функциональность на каждой из двух платформ делали бы в сумме 17:34 * 2 = 35:08 минут, то сэкономленные 10 минут при повторении функциональности для iOS означают, что для всего проекта я **сэкономил 21% времени**.
|
||||||
|
|
||||||
|
# Выводы
|
||||||
|
|
||||||
|
Итак, экономия с КМП в цифрах выглядит так:
|
||||||
|
|
||||||
|
1. Количество строк для iOS снизилось на **58%**
|
||||||
|
2. Суммарно количество строк кода по всему проекту снизилось на **25%**
|
||||||
|
3. Время, необходимое на повторение функциональности для iOS, снизилось на **57%**
|
||||||
|
4. Суммарно затраченное время по всему проекту на реализацию функциональности снизилось на **21%** (эту цифру я использовал в самом начале статьи)
|
||||||
|
|
||||||
|
# Вопросы читателю
|
||||||
|
|
||||||
|
1. Суммарная экономия в 21% по времени проекта - это много или мало?
|
||||||
|
2. Окупает ли экономия в 21% явно не однодневный переход команд на новый процесс разработки?
|
||||||
|
3. Насколько важен синхронный выпуск функциональности на обе платформы, причём работающей одинаково на каждой платформе?
|
||||||
|
|
||||||
22
budget/2026-01_email.md
Normal file
22
budget/2026-01_email.md
Normal file
@@ -0,0 +1,22 @@
|
|||||||
|
Title: КМП как альтернатива сокращению
|
||||||
|
|
||||||
|
Кому: Зуев Игорь, Корнюшин Пётр, Сухов Сергей, Терентьев Евгений, Петров Виктор
|
||||||
|
|
||||||
|
|
||||||
|
Привет, коллеги,
|
||||||
|
|
||||||
|
завтра состоится серия созвонов по поводу сокращения троих человек из
|
||||||
|
команды iOS Connect.
|
||||||
|
|
||||||
|
У меня есть встречное предложение по повышению эффективности
|
||||||
|
команд разработки с помощью Kotlin Multiplatform. Предлагаю перевести
|
||||||
|
сокращаемых троих человек в новую команду КМП, которую я готов возглавить
|
||||||
|
без отрыва от руководства командой iOS Connect.
|
||||||
|
|
||||||
|
КМП может сэкономить около 21% времени разработки, подробно я это расписал
|
||||||
|
в статье на Хабре: https://habr.com/ru/articles/989286/
|
||||||
|
|
||||||
|
Если предложение заинтересовало, буду рад обсудить детали данной спецоперации.
|
||||||
|
|
||||||
|
С уважением,
|
||||||
|
Михаил.
|
||||||
539
budget/2026-Q1.md
Normal file
539
budget/2026-Q1.md
Normal file
@@ -0,0 +1,539 @@
|
|||||||
|
14.02: 35
|
||||||
|
|
||||||
|
* продумать структуру проекта KD
|
||||||
|
не является ли он корнем всего проекта?
|
||||||
|
т.е. не должно ли в корне репы быть директории ver-nodejs?
|
||||||
|
а в отдалённом будущем, может, даже и ver-macos?
|
||||||
|
т.е. являются ли KDController+KDContext самостоятельными продуктами без транслятора?
|
||||||
|
как-будто нет
|
||||||
|
ведь транслятор может поставлять и эти файлы тоже
|
||||||
|
типа зачем в принципе руками делать скрипты под каждый проект
|
||||||
|
пусть транслятор это и делает?
|
||||||
|
транслятор ли это тогда? или уже нечто большее?
|
||||||
|
а файл YML - это файл проекта, выходит
|
||||||
|
с другой стороны, есть же тесты как раз контроллера и контекста
|
||||||
|
да и registerOneliners тоже как-будто являются продуктом
|
||||||
|
хотя для работы в C++ нужно будет сделать ведь какой-то аналог как Ctrl, так и registerOneliners
|
||||||
|
и для Swift тоже
|
||||||
|
т.е. всё-таки биндинги на разные языки тоже часть продукта
|
||||||
|
хотя эти биндинги как-будто тоже могут и должны поставляться вот эти инструментом kd
|
||||||
|
выходит, это всё-таки комплексное решение
|
||||||
|
для каждого языка - свой набор файлов
|
||||||
|
может, не только файлов, но и примеров аля Hello World
|
||||||
|
выходит, есть три продукта:
|
||||||
|
1. KD Generator
|
||||||
|
по файлу yml генерит в нужные места нужные файлы
|
||||||
|
если это утилитарная функция то вроде как нет смысла делать что-либо отличное от Node.js
|
||||||
|
оно просто удобнее всего
|
||||||
|
а поддерживать разные варианты - это как-будто уже излишнее
|
||||||
|
2. KD Controller, Context, registerOneliners, тесты контроллера и контекста
|
||||||
|
тесты нужны чисто для меня самого
|
||||||
|
но теоретически их может запускать и генератор
|
||||||
|
хотя зачем? они нужны чисто для разработки
|
||||||
|
кстати, тестов registerOneliners как-будто нет
|
||||||
|
хотя это как раз HW могут осуществлять по факту
|
||||||
|
3. Обёртки для Swift, C++, JS?
|
||||||
|
есть ли смысл класть их куда-либо по раздельным папкам?
|
||||||
|
как-будто можно сделать корневую директорию src
|
||||||
|
а оттуда линковать уже как в HW, так и в другие места
|
||||||
|
хотя их по сути надо встраивать в KD Generator
|
||||||
|
ибо Node.js будет отдельно поставляться без репы исходников
|
||||||
|
* создать src/ с KDController/Context
|
||||||
|
* создать test/
|
||||||
|
для начала с проверкой Controller/Context
|
||||||
|
|
||||||
|
14.02: 40
|
||||||
|
|
||||||
|
* обдумать будущее своего проекта + котлин
|
||||||
|
нужно делать Kotlin Dialect / Диалект Котлина
|
||||||
|
ПСКОВ будет продуктом KD
|
||||||
|
Git Budget будет продуктом KD
|
||||||
|
* переименовать репу cross-language-dialect в kotlin-dialect
|
||||||
|
* сделать ревизию текущего состояния проекта CLD
|
||||||
|
* переместить swift/js глубже в history-2025
|
||||||
|
* Канал Диалект Котлина:
|
||||||
|
написать хвалу C++ за его строгость и некоторую аутсайдерность
|
||||||
|
Несмотря на то, что данный канал посвящён Котлину и тому, как правильно на нём писать код под несколько платформ, помощь языка C++ в определении правил написания этого самого кода трудно переоценить. Именно благодаря C++, в котором практически невозможно написать то, что без проблем пишется на Kotlin и Swift, приходится выкручиваться и находить третий путь. Спасибо C++ за несгибаемость.
|
||||||
|
|
||||||
|
13.02: 50
|
||||||
|
|
||||||
|
* вызвать заготовку oneliners напрямую
|
||||||
|
без связи с CLDController
|
||||||
|
* (последнее) поддержать синтаксис oneliners для эффектов
|
||||||
|
удалось!
|
||||||
|
|
||||||
|
12.02: 50
|
||||||
|
|
||||||
|
* сделать привычную обёртку над CLDController
|
||||||
|
хотя по факту нас интересует ровно один вызов: budgetCtrl().set(...)
|
||||||
|
возможно, это должен быть класс, да
|
||||||
|
просто для удобство ссылки на этот класс и хранения его экземпляра
|
||||||
|
это просто привычно? хотя хранить его смысла нет, он как бы отсутствует
|
||||||
|
ведь теперь это всё будет синглтоном внутри KT
|
||||||
|
пример шаблонной функции:
|
||||||
|
https://stackoverflow.com/a/44469314/3404710
|
||||||
|
итог: ввести функцию шаблонную, чтобы она вызывала разные typeToAny() из KT
|
||||||
|
ввести функцию в KT?
|
||||||
|
ввёл шаблонную функцию budgetCtrlSet(k, v)
|
||||||
|
работает
|
||||||
|
* сделать пример обёртки над didLaunch для BudgetContext
|
||||||
|
удалось с помощью функций const
|
||||||
|
|
||||||
|
11.02: 50
|
||||||
|
|
||||||
|
* зарегистрировать шуд?
|
||||||
|
на самом деле, это не нужно
|
||||||
|
эти шуды должны остаться внутри fun.kt
|
||||||
|
тогда этот код регистрации тоже не будет иметь смысл дублировать
|
||||||
|
шуды же всё равно крутятся сами по себе без эффектов внешних
|
||||||
|
т.е. их безопасно регать сразу в fun.kt
|
||||||
|
итог: ввести константу со списоком функций для регистрации и отдельно функцию регистрации стандартного списка
|
||||||
|
|
||||||
|
10.02: 45
|
||||||
|
|
||||||
|
* проверить вызов KT.budgetControllerContext для получения текущего значения Context
|
||||||
|
это работает
|
||||||
|
* прибраться в коде
|
||||||
|
* выводить все ключи
|
||||||
|
|
||||||
|
09.02: 50
|
||||||
|
|
||||||
|
* проверить передачу контекст через шуд
|
||||||
|
* проверить получение значения поля из шуда
|
||||||
|
всё вспотыкается об крайне неудобно сделанные типы
|
||||||
|
|
||||||
|
08.02: 100
|
||||||
|
|
||||||
|
* изучить NodeGui?
|
||||||
|
как-будто это подрывает смысл весь нативности
|
||||||
|
ведь пусть хоть Qt и нативный, но приложение-то уже ненативное
|
||||||
|
поэтому пока нет смысла изучать, я этим не продвину нативность
|
||||||
|
а мне как раз надо доказать нативность
|
||||||
|
* спросить у команды Kotlin показать, как callback передать
|
||||||
|
https://youtrack.jetbrains.com/issue/KT-84169/How-to-register-a-C-C-callback-into-Kotlin-dynamic-library
|
||||||
|
* изучить использование С в KMP
|
||||||
|
https://kotlinlang.org/docs/mapping-primitive-data-types-from-c.html
|
||||||
|
возможно, тут будет ответ на callback
|
||||||
|
https://youtrack.jetbrains.com/issue/KT-43978/koltin-native-Dynamic-Library-how-to-override-a-fun
|
||||||
|
нашёл тут наводку
|
||||||
|
удалось вызвать простой callback
|
||||||
|
* вернуть void()
|
||||||
|
* добавить registerFieldCallbackC без параметров
|
||||||
|
* ввести CLDController.currentContext и достать значение Context
|
||||||
|
не удалось: segfault
|
||||||
|
|
||||||
|
07.02: 100
|
||||||
|
|
||||||
|
* создать заготовку BudgetComponent
|
||||||
|
* ввести data class Item и попробовать достучаться до него
|
||||||
|
или функцию вызвать свободную вызвать для начала
|
||||||
|
вроде createBudgetContext()
|
||||||
|
удалось получить доступ к Item.x (как get_x)
|
||||||
|
* достучаться до CLDController
|
||||||
|
* бегло ознакомиться с NodeGui
|
||||||
|
|
||||||
|
06.02: 55
|
||||||
|
|
||||||
|
* не удаётся создать экземпляр CLDController
|
||||||
|
|
||||||
|
05.02: 60
|
||||||
|
|
||||||
|
* установить доппакеты
|
||||||
|
bzip2 tar gcc make perl git
|
||||||
|
* установить guest additions
|
||||||
|
не получилось с первого раза
|
||||||
|
может, и нафиг?
|
||||||
|
но тогда я ключи не передам без SharedFolders
|
||||||
|
итог: установил после установки доппакетов
|
||||||
|
* скопировать ключи проекта
|
||||||
|
доступа до git.hi-tech.org нет
|
||||||
|
так что ключи не помогли
|
||||||
|
* установить java
|
||||||
|
sudo apt install default-jdk
|
||||||
|
* склонировать проект
|
||||||
|
Android Studio не нужно
|
||||||
|
скопировал архив tar руками через Shared folders
|
||||||
|
* изучить ошибку запуска kom/util/gen-entities
|
||||||
|
исправил двумя правками
|
||||||
|
|
||||||
|
04.02: 35
|
||||||
|
|
||||||
|
* сделать sdk-mac-x64
|
||||||
|
|
||||||
|
03.02: 50
|
||||||
|
|
||||||
|
* сделать ver-mac-x64 hw gbmac
|
||||||
|
|
||||||
|
02.02: 40
|
||||||
|
|
||||||
|
не сделал для статьи:
|
||||||
|
* ответить на критику из статьи Flutter vs KMP
|
||||||
|
https://habr.com/ru/companies/friflex/articles/839646/
|
||||||
|
* ответить на страхи
|
||||||
|
я останусь без работы, если кто-то сможет делать мою работу
|
||||||
|
* пример статьи со схлопыванием куска кода
|
||||||
|
* страхи
|
||||||
|
надо ж переходить
|
||||||
|
а это тоже не просто
|
||||||
|
да, надо, это не палочка выручалочка
|
||||||
|
* узнать версию Qt свою
|
||||||
|
6.9.1
|
||||||
|
* установить Qt 6.10.1
|
||||||
|
brew install qt
|
||||||
|
* исправить ошибку AGL not found на Xcode 26
|
||||||
|
установка Qt 6.10.1 помогла
|
||||||
|
* запустить qt-kt
|
||||||
|
|
||||||
|
28.01: 230
|
||||||
|
|
||||||
|
* написать статью
|
||||||
|
для тех кто в танке
|
||||||
|
КМП?
|
||||||
|
архитектура
|
||||||
|
шаблон проектирования CSE
|
||||||
|
как выглядит процесс
|
||||||
|
расчёты
|
||||||
|
ускорение вторичного написания кода
|
||||||
|
единые баги логики на разные платформы
|
||||||
|
единое поведение на все платформы
|
||||||
|
* посчитать объём общего кода и разного
|
||||||
|
* посчитать скорость дублирования функциональности из Android в iOS
|
||||||
|
первичный код - запись: 17 мин
|
||||||
|
дублированный код - запись: 7 мин
|
||||||
|
это около 41% от времени
|
||||||
|
т.е. экономия времени - 59%, т.е. в два раза тупо эффективнее
|
||||||
|
для того человека, который уже писал этот код и знает его досконально
|
||||||
|
для новичка, думаю, результат будет иной
|
||||||
|
* посчитать разницу в объёмах кода первоначального и дублированного
|
||||||
|
* подготовить статью на основе видеозаписей по git-budget
|
||||||
|
|
||||||
|
* добавить спойлер в вводную
|
||||||
|
можно сэкономить X времени
|
||||||
|
* описать GitBudget
|
||||||
|
√ описать кратко проект
|
||||||
|
√ сделать фотку внешнего вида на Android + iOS
|
||||||
|
√ описать UX
|
||||||
|
показать картинку со структурой мобильного приложения из презентации
|
||||||
|
перейти на GitBudget
|
||||||
|
* занести в таблицу объём кода по группам
|
||||||
|
* показать реализацию фичи кнопки вставки на Android и iOS
|
||||||
|
* аналитику расписать
|
||||||
|
время
|
||||||
|
строк кода
|
||||||
|
и т.п.
|
||||||
|
* выводы написать
|
||||||
|
* завести репозиторий для видео сайта
|
||||||
|
чтобы не потерять их через несколько лет
|
||||||
|
ведь я их просто кладу на хостинг
|
||||||
|
а в какой-нибудь год просто забуду заплатить
|
||||||
|
* убрать ссылку в GitHub на kornerr.ru/git-budget
|
||||||
|
* обновить README GB
|
||||||
|
надо убрать старое описание
|
||||||
|
и вставить новую фотку Android + iOS
|
||||||
|
* повторно прочитать статью
|
||||||
|
* опубликовать на хабре
|
||||||
|
https://habr.com/ru/articles/989286/
|
||||||
|
* подготовить письмо
|
||||||
|
* отправить письмо
|
||||||
|
* уведомить всех получателей о письме
|
||||||
|
|
||||||
|
28.01: 90
|
||||||
|
|
||||||
|
* создать проект с видеофайлами
|
||||||
|
https://github.com/kornerr/ruvid
|
||||||
|
* обрезать видео инцидента с MAX
|
||||||
|
00:53
|
||||||
|
|
||||||
|
28.01: 30
|
||||||
|
|
||||||
|
* переписать вводную
|
||||||
|
|
||||||
|
27.01: 55
|
||||||
|
|
||||||
|
* переименовать статью
|
||||||
|
Что нам стоит на КМП построить?
|
||||||
|
* описать текущее положение дел
|
||||||
|
|
||||||
|
26.01: 60
|
||||||
|
|
||||||
|
* найти статьи про КМП на хабре
|
||||||
|
понять наполнение
|
||||||
|
* создать первую версию вводной
|
||||||
|
https://habr.com/ru/articles/989286/
|
||||||
|
|
||||||
|
25.01: 55
|
||||||
|
|
||||||
|
* повторить вставку morning balance с Cursor для Android
|
||||||
|
вставляет в поле
|
||||||
|
но логика не пересчитывается
|
||||||
|
* повторить вставку morning balance с Cursor для iOS (без кода до)
|
||||||
|
вставляет в поле
|
||||||
|
но логика не пересчитывается
|
||||||
|
* повторить morning balance c Cursor для iOS именно с промптом продубировать функциональность, которую добавил для Android с пояснением про вставку
|
||||||
|
это получилось как-будто 1-в-1
|
||||||
|
типа Cursor чего-то может понять про копии
|
||||||
|
это даёт какую-то надежду
|
||||||
|
* конвертнуть записанные видео с ИИ в MP4
|
||||||
|
|
||||||
|
24.01: 30
|
||||||
|
|
||||||
|
* оформить ЗС
|
||||||
|
https://github.com/kornerr/git-budget/pull/9
|
||||||
|
* влить ЗС
|
||||||
|
* продублировать копирование из буфера в morning balance для iOS под запись
|
||||||
|
* оформить ЗС
|
||||||
|
https://github.com/kornerr/git-budget/pull/10
|
||||||
|
* влить ЗС
|
||||||
|
* видео ios: ~/gbart
|
||||||
|
|
||||||
|
23.01: 30
|
||||||
|
|
||||||
|
* оформить ЗС
|
||||||
|
https://github.com/kornerr/git-budget/pull/8
|
||||||
|
* влить ЗС
|
||||||
|
* сделать копирование из буфера в morning balance для Android под запись
|
||||||
|
видео: ~/gbart
|
||||||
|
|
||||||
|
22.01: 40
|
||||||
|
|
||||||
|
* README: Long, Double
|
||||||
|
* обновить версию до 1.3.0
|
||||||
|
* обновить changelog
|
||||||
|
* оформить ЗС
|
||||||
|
https://github.com/OGStudio/cross-language-dialect/pull/12
|
||||||
|
* влить ЗС
|
||||||
|
* сделать копирование из буфера в spent
|
||||||
|
* сделать копирование из result в буфер
|
||||||
|
* подключить функциональность из gb в iOS
|
||||||
|
|
||||||
|
21.01: 30
|
||||||
|
|
||||||
|
* сделать Swift extension для возможности вызвать budgetCtrl().set(x, y) без label
|
||||||
|
работает
|
||||||
|
* заполнить setupShoulds
|
||||||
|
* передать inputSpent
|
||||||
|
* передать inputMorningBalance
|
||||||
|
* передавать result
|
||||||
|
* заполнить setupEffects заготовкой
|
||||||
|
|
||||||
|
20.01: 30
|
||||||
|
|
||||||
|
* исправить weekday, чтобы reportedWeekday был 7, а не 1
|
||||||
|
* добавить registerCallback для отладки
|
||||||
|
|
||||||
|
19.01: 40
|
||||||
|
|
||||||
|
* создать заготовку компонента budget в iOS
|
||||||
|
* реализовать budgetReportedDate()
|
||||||
|
* реализовать budgetReportedWeekday()
|
||||||
|
|
||||||
|
18.01: 30
|
||||||
|
|
||||||
|
* собрать проект с подключенной либой gb
|
||||||
|
* вызвать simplyPrint в iOS
|
||||||
|
* перенести функции в gb
|
||||||
|
|
||||||
|
18.01: 50
|
||||||
|
|
||||||
|
* досоздать заготовку build.gradle.kts
|
||||||
|
* создать заготовку ver-sdkios
|
||||||
|
* переименовать ver-sdkios -> sdk-ios
|
||||||
|
* сделать скрипт util/gen-ios
|
||||||
|
√ сборка
|
||||||
|
√ архивирование
|
||||||
|
|
||||||
|
17.01: 40
|
||||||
|
|
||||||
|
* доверстать заготовку интерфейса
|
||||||
|
два поля ввода
|
||||||
|
текстовый результат
|
||||||
|
кнопки для буфера
|
||||||
|
|
||||||
|
17.01: 35
|
||||||
|
|
||||||
|
* сверстать поле ввода spent с кнопкой
|
||||||
|
|
||||||
|
16.01: 40
|
||||||
|
|
||||||
|
* долг:
|
||||||
|
entities.yml: удалить copyResult
|
||||||
|
это didClickCopy ведь уже
|
||||||
|
* создать заготовку приложения на iOS по примеру песочницы
|
||||||
|
* оформить ЗС
|
||||||
|
https://github.com/kornerr/git-budget/pull/7
|
||||||
|
* влить ЗС
|
||||||
|
|
||||||
|
16.01: 35
|
||||||
|
|
||||||
|
* создать ЗС
|
||||||
|
[GigaIDE AI version]
|
||||||
|
до изменений paste
|
||||||
|
* повторить копирование в буфер через Giga IDE
|
||||||
|
не удалось
|
||||||
|
ибо не работает агент
|
||||||
|
|
||||||
|
15.01: 45
|
||||||
|
|
||||||
|
* уведомить о факте копирования
|
||||||
|
на моём Samsung это и так происходит
|
||||||
|
ГигаЧат сказал, что и многие другие производители отображают уведомление на копирование в буфер
|
||||||
|
итог: не надо ничего показывать дополнительно
|
||||||
|
* создать новую ветку для ЗС с помощью Cursor
|
||||||
|
* продублировать копирование в буфер с помощью Cursor
|
||||||
|
* оформить ЗС cursor
|
||||||
|
* оформить ЗС ручной
|
||||||
|
* влить ЗС ручной
|
||||||
|
* скачать Giga IDE
|
||||||
|
|
||||||
|
15.01: 35
|
||||||
|
|
||||||
|
* оформить ЗС ручной
|
||||||
|
* влить ЗС ручной
|
||||||
|
* включить запись
|
||||||
|
* добавить кнопку копирования в буфер
|
||||||
|
* сделать копирование результата в буфер руками
|
||||||
|
https://stackoverflow.com/questions/19253786/how-to-copy-text-to-clipboard-in-android
|
||||||
|
|
||||||
|
14.01: 40
|
||||||
|
|
||||||
|
* оформить ветку, но не сливать её
|
||||||
|
https://github.com/kornerr/git-budget/pull/2
|
||||||
|
* сделать руками вставку в буфер
|
||||||
|
тоже под запись
|
||||||
|
замерить время
|
||||||
|
вышло 40 минут
|
||||||
|
а с cursor AI было 40 минут второй части + сколько в первой
|
||||||
|
т.е. никак не быстрее
|
||||||
|
как минимум то же время
|
||||||
|
но в голове меньше мыслей было
|
||||||
|
а по факту было больше review
|
||||||
|
и меньше внимательности
|
||||||
|
ибо я пропустил в review, что нужно было didClickPaste вместо pasteSpent
|
||||||
|
|
||||||
|
14.01: 40
|
||||||
|
|
||||||
|
* исправить работу с inputSpent, pastedSpent
|
||||||
|
надо ввести shouldResetSpent
|
||||||
|
spent на основе inputSpent и pastedSpent
|
||||||
|
после чего убрать из shouldResetResult весь блок if с вызовом budgetCtrl()
|
||||||
|
ибо внутри should нельзя вызывать эффекты вроде budgetCtrl()
|
||||||
|
* исправить задание значения для vm.inputSpent из spent при отличии
|
||||||
|
cursor неверно выбрал поле и не так написал эффект
|
||||||
|
* проверить отображение pasted spent в поле ввода
|
||||||
|
и что нет цикла после задания inputSpent руками
|
||||||
|
цикла нет
|
||||||
|
отображение есть
|
||||||
|
вставка из буфера произошла успешно
|
||||||
|
|
||||||
|
13.01: 40
|
||||||
|
|
||||||
|
* оформить ЗС
|
||||||
|
https://github.com/kornerr/git-budget/pull/1
|
||||||
|
* влить ЗС
|
||||||
|
перед Cursor AI
|
||||||
|
обязательно
|
||||||
|
иначе потом ничего не видно будет по комитам
|
||||||
|
* сделать вставку из буфера
|
||||||
|
|
||||||
|
13.01: 45
|
||||||
|
|
||||||
|
* сделать budgetReportedWeekday()
|
||||||
|
использовать LocalDate
|
||||||
|
оно больше подходит, чем Calendar
|
||||||
|
https://stackoverflow.com/questions/38739983/calendar-set-day-of-week-not-correct
|
||||||
|
* передавать значения по умолчанию
|
||||||
|
* сделать подсчёт строки результата
|
||||||
|
* (практически) сравнять функциональность W и A
|
||||||
|
|
||||||
|
12.01: 45
|
||||||
|
|
||||||
|
* добавить Scaffold
|
||||||
|
как-будто из-за его отсутствия может быть чёрная штука вверху при выборе поля
|
||||||
|
не использовать modifier из Scaffold
|
||||||
|
использовал - помогло
|
||||||
|
* сделать два поля ввода
|
||||||
|
* сделать budgetReportedDate()
|
||||||
|
|
||||||
|
12.01: 40
|
||||||
|
|
||||||
|
* переименовать Playground -> Budget
|
||||||
|
* сверстать интерфейс с двумя полями ввода и одним выводом
|
||||||
|
|
||||||
|
11.01: 35
|
||||||
|
|
||||||
|
* влить ветку budget на сайте
|
||||||
|
чтобы можно было добавить cv/ files
|
||||||
|
* запустить заготовку в Android Studio
|
||||||
|
запустилось
|
||||||
|
* создать util/do-tmux
|
||||||
|
* вернуть и перегенерить cld/*
|
||||||
|
|
||||||
|
11.01: 40
|
||||||
|
|
||||||
|
* обработать файлы первого уровня
|
||||||
|
* обработать уровень app
|
||||||
|
* обработать уровень app/src/main
|
||||||
|
* обработать уровень app/src/main/res
|
||||||
|
* обработать уровень app/src/main/kotlin
|
||||||
|
|
||||||
|
10.01: 25
|
||||||
|
|
||||||
|
* найти репозиторий старого git budget
|
||||||
|
https://github.com/kornerr/git-budget
|
||||||
|
его и возьму
|
||||||
|
* найти эталон по UI для бюджета
|
||||||
|
вот этот сайт плюс-минус на мой уровень
|
||||||
|
https://costtrack.app/
|
||||||
|
общий список прилложений по бюджетированию
|
||||||
|
https://t-j.ru/short/all-budget-apps
|
||||||
|
итог
|
||||||
|
эталона нет
|
||||||
|
почти все приложения уродливые
|
||||||
|
так что я могу делать свою уродливую версию
|
||||||
|
а там уже посмотрим
|
||||||
|
|
||||||
|
09.01: 35
|
||||||
|
|
||||||
|
* определять weekday / weekend
|
||||||
|
* считать перерасход
|
||||||
|
* считать 'осталось Р/д' для будней
|
||||||
|
|
||||||
|
09.01: 30
|
||||||
|
|
||||||
|
* обдумать создание отдельного приложения
|
||||||
|
уже без JS
|
||||||
|
либо забить на буфер пока что
|
||||||
|
но потом всё равно хочется его иметь
|
||||||
|
либо всё-таки приложение
|
||||||
|
тогда и гит чисто для бюджета будет смотреться логичнее
|
||||||
|
да и просто как пример приложения-доказательства выглядит лучше
|
||||||
|
создать надо, но в следующей итерации
|
||||||
|
прямо сейчас мне полезнее подсчёт, а не форма
|
||||||
|
итог:
|
||||||
|
потом -да, сейчас - нет
|
||||||
|
* убрать pre
|
||||||
|
кнопки буфера можно оставить, они ведь в браузере работают
|
||||||
|
* считать целевой утренний баланс
|
||||||
|
|
||||||
|
08.01: 45
|
||||||
|
|
||||||
|
* изучить отсутствие вставки из буфера в WebView
|
||||||
|
Uncaught (in promise) NotAllowedError: Failed to execute 'readText' on 'Clipboard': Read permission denied.
|
||||||
|
после ввода WebCC ничего не изменилось
|
||||||
|
onPermissionRequest не вызывается
|
||||||
|
короче, это прям проблема на WebView
|
||||||
|
так что аналог электрона - это прям сильно упорото будет
|
||||||
|
в JS стопицот вещей иначе работают
|
||||||
|
их тупо невозможно поддержать
|
||||||
|
гораздо проще КМП
|
||||||
|
|
||||||
|
08.01: 45
|
||||||
|
|
||||||
|
* добавить кнопку быстрой вставки из буфера в поле ввода
|
||||||
|
* добавить кнопку быстрого копирования результата
|
||||||
|
* сделать вставку из буфера
|
||||||
|
|
||||||
|
07.01: 15
|
||||||
|
|
||||||
|
* исправить форматирование даты 3.1 -> 03.01
|
||||||
|
* учитывать отрицательный баланс
|
||||||
@@ -1,3 +1,7 @@
|
|||||||
|
ознакомитья с другой статьёй про AI
|
||||||
|
https://kean.blog/post/experiencing-claude-code
|
||||||
|
возможно, толковая
|
||||||
|
|
||||||
плюсы:
|
плюсы:
|
||||||
хорошо описывает стуртуру кода и шаблоны используемые
|
хорошо описывает стуртуру кода и шаблоны используемые
|
||||||
хоть сам Cursor и не умеет им следовать
|
хоть сам Cursor и не умеет им следовать
|
||||||
@@ -7,7 +11,9 @@
|
|||||||
а в самом начале их и использовать не будешь, т.к. вроде и не нужны
|
а в самом начале их и использовать не будешь, т.к. вроде и не нужны
|
||||||
но Cursor их проставил, т.к. они могут понадобиться
|
но Cursor их проставил, т.к. они могут понадобиться
|
||||||
можно тренироваться делать review и оценивать эффективность своих советов по правкам
|
можно тренироваться делать review и оценивать эффективность своих советов по правкам
|
||||||
писать действительно можно, но динамика не положительная
|
писать действительно можно, но скорее в момент изучения
|
||||||
|
когда хорошо представляешь себе результат
|
||||||
|
но плохо представляешь себе код
|
||||||
|
|
||||||
минусы:
|
минусы:
|
||||||
часто ошибается и пишет код не туда, т.е. нарушает архитектуру
|
часто ошибается и пишет код не туда, т.е. нарушает архитектуру
|
||||||
@@ -39,7 +45,20 @@
|
|||||||
т.к. одна строка и сравнение на самом деле не нужно
|
т.к. одна строка и сравнение на самом деле не нужно
|
||||||
цикла ведь нет
|
цикла ведь нет
|
||||||
а это можно увидеть и почувствовать лишь при записи руками
|
а это можно увидеть и почувствовать лишь при записи руками
|
||||||
|
при поиске, как сделать какую-то штуку ты НЕ наткнёшься на интересное
|
||||||
|
например, вот я искал про Binding
|
||||||
|
https://www.hackingwithswift.com/quick-start/swiftui/how-to-create-custom-bindings
|
||||||
|
а там ссылка была сюда
|
||||||
|
https://www.revenuecat.com/blog/engineering/apple-retention-messaging-api/
|
||||||
|
из этой ссылки я уже узнал, что в Apple есть стандарт на ответ от бэка
|
||||||
|
700мс
|
||||||
|
теперь я могу трясти с команды бэка ответы до 700мс, ибо вот так делает Apple
|
||||||
|
если бы мне ИИ написал решение, я бы всего этого не получил
|
||||||
|
и остался бы менее просвещённым
|
||||||
|
|
||||||
|
ИИ-чат бот в FF
|
||||||
|
Gemini
|
||||||
|
Недоступен in your country, stay tuned!, лол
|
||||||
видео:
|
видео:
|
||||||
~/cursorai
|
~/cursorai
|
||||||
|
|
||||||
@@ -48,7 +67,12 @@
|
|||||||
реклама
|
реклама
|
||||||
фотки с Грокс от 14.01
|
фотки с Грокс от 14.01
|
||||||
реклама GigaIDE с 25% приростом производительности
|
реклама GigaIDE с 25% приростом производительности
|
||||||
|
наливатор коктейлей: https://habr.com/ru/companies/yandex/articles/985556
|
||||||
|
routerai: якобы x10 скорость прототипирования
|
||||||
|
ох, прям аккуратно вставили слово "прототипирования"
|
||||||
|
|
||||||
|
ответы по теме AI
|
||||||
|
1. https://www.linkedin.com/feed/update/urn:li:activity:7426127984128036864?commentUrn=urn%3Ali%3Acomment%3A%28activity%3A7426127984128036864%2C7427564907996278786%29&dashCommentUrn=urn%3Ali%3Afsd_comment%3A%287427564907996278786%2Curn%3Ali%3Aactivity%3A7426127984128036864%29
|
||||||
|
|
||||||
Философские вопросы
|
Философские вопросы
|
||||||
Если всё так радужно, то почему преподаватели курсов волшебного ИИ
|
Если всё так радужно, то почему преподаватели курсов волшебного ИИ
|
||||||
@@ -72,6 +96,14 @@
|
|||||||
за 5 минут напишет ИИ? Или за 5 минут не напишет? А за 50 минут разве
|
за 5 минут напишет ИИ? Или за 5 минут не напишет? А за 50 минут разве
|
||||||
тоже не напишет? А за 50 дней тоже не напишет? Вопросы, вопросы...
|
тоже не напишет? А за 50 дней тоже не напишет? Вопросы, вопросы...
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
лиды:
|
||||||
|
из статьи про KMP сделать ссыку на AI
|
||||||
|
из статьи про AI сделать ссылка на KMP
|
||||||
|
статья KMP
|
||||||
|
PS: Если вы в своей компании хотите внедрить KMP для повышения производительности, то пишите в личку ;)
|
||||||
|
|
||||||
заметки с телефона
|
заметки с телефона
|
||||||
[ ] ИИ: Восхваление: https://habr.com/ru/companies/redmadrobot/articles/978112/
|
[ ] ИИ: Восхваление: https://habr.com/ru/companies/redmadrobot/articles/978112/
|
||||||
[ ] Вопрос по ИИ: иногда пишет не тот код, а ктоттогда этот ИИ попрпвит, если разработчик сам не знает, насколько сгенеренный код соответствует архитектуре?
|
[ ] Вопрос по ИИ: иногда пишет не тот код, а ктоттогда этот ИИ попрпвит, если разработчик сам не знает, насколько сгенеренный код соответствует архитектуре?
|
||||||
@@ -1,21 +1,82 @@
|
|||||||
|
|
||||||
НАДО:
|
НАДО:
|
||||||
* исправить weekday, чтобы reportedWeekday был 7, а не 1
|
* создать generator
|
||||||
в iOS monday == 2
|
тут будет лишь ver-nodejs
|
||||||
* добавить registerCallback для отладки
|
тогда, возможно, даже и смысла в ver-nodejs нет
|
||||||
* заполнить setupShoulds
|
да, смысла нет, это слишком важный инструмент, чтобы иметь несколько вариаций
|
||||||
* заполнить setupEffects
|
* создать helloworld/
|
||||||
* подключить функциональность из gb в iOS
|
тут уже будут ver-nodejs, ver-android, ver-ios, ver-macos-x64/arm64, ver-linux-x64, ver-windows-x64
|
||||||
* исправить -0%
|
|
||||||
* сделать Swift extension для возможности вызвать budgetCtrl().set(x, y) без label
|
далее сначала нужно перевести на nodejs
|
||||||
|
затем уже наварганить генерацию обёрток для C++
|
||||||
|
и функций в KT для получения готовых экземпляров всего
|
||||||
|
сделать геренацию полей F по аналогии со спецструктурой YML
|
||||||
|
т.е. генерить спецструктуру со статическими полями?
|
||||||
|
это после C++ генерации станет ясно, как лучше оформить
|
||||||
|
* отдельно сделать версию CLDController для cinterop
|
||||||
|
ибо по умолчанию не компилится не для C++
|
||||||
|
либо это отдельный файл должен быть в CLD
|
||||||
|
формат надо обдумать
|
||||||
|
|
||||||
* оформить ЗС
|
* оформить ЗС
|
||||||
https://github.com/kornerr/git-budget/pull/8
|
https://github.com/OGStudio/kotlin-dialect/pull/13
|
||||||
|
* влить ЗС
|
||||||
|
* обновить ссылку на git clone в проекте KOM для подтягивания новой версии CLDController
|
||||||
|
теперь это KDController
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
* проверить ответ на YouTrack
|
||||||
|
в итоге я могу туда дать ссылку на свой пример
|
||||||
|
|
||||||
|
* переключиться на CLD
|
||||||
|
можно сделать пока перевод на NodeJS
|
||||||
|
заодно подумать недельку о NodeGui
|
||||||
|
|
||||||
|
|
||||||
|
* перейти на NodeGui?
|
||||||
|
или найти движок внутри C++/JS?
|
||||||
|
* изучить QML + JS
|
||||||
|
можно ли загрузить код на Kotlin?
|
||||||
|
|
||||||
|
* передать в QML budgetCtrl
|
||||||
|
чтобы в QML вызывать что-то вроде budgetCtrl.set("key", value)
|
||||||
|
хотя не факт, что можно Any передать из QML
|
||||||
|
* оформить ЗС
|
||||||
|
https://github.com/kornerr/git-budget/pull/16
|
||||||
* влить ЗС
|
* влить ЗС
|
||||||
|
|
||||||
* CLD:
|
* после исправления CLD:
|
||||||
обновить до 1.3.0
|
удалить iso установочный
|
||||||
влить подвисший ЗС
|
|
||||||
|
|
||||||
|
* поделитья статьёй по KMP-1 с Гришей
|
||||||
|
* исправить -0%
|
||||||
|
* Android
|
||||||
|
* iOS
|
||||||
|
* ответить на вопросы Олега и Ильи к статье
|
||||||
|
|
||||||
|
|
||||||
|
ПСКОВ
|
||||||
|
добавить recent files
|
||||||
|
где-нибудь вместо File: /path
|
||||||
|
или сделать это выпадашкой
|
||||||
|
прям надо переключаться между файлами последними
|
||||||
|
|
||||||
|
|
||||||
|
преимущество off-line
|
||||||
|
никакой рекламы и отвлечения от записи мысли
|
||||||
|
просто запиши и не будь отвлечён
|
||||||
|
в отличие от записи мысли в готовящейся статье на хабре
|
||||||
|
там реклама отвлечёт
|
||||||
|
потеряешь время
|
||||||
|
|
||||||
|
* iOS:
|
||||||
|
проверить настройку отключения вопроса вставки из буфера
|
||||||
|
Настройки
|
||||||
|
Приложение
|
||||||
|
Вставка из других приложений
|
||||||
|
|
||||||
* оформить ЗСы с ИИ
|
* оформить ЗСы с ИИ
|
||||||
https://github.com/kornerr/git-budget/pull/2
|
https://github.com/kornerr/git-budget/pull/2
|
||||||
@@ -23,7 +84,9 @@
|
|||||||
добавить ссылки на статью
|
добавить ссылки на статью
|
||||||
добавить ссылки на видеозаписи
|
добавить ссылки на видеозаписи
|
||||||
|
|
||||||
|
* записать видео процесса переноса с Android на iOS
|
||||||
|
копируем код как есть
|
||||||
|
подправяем синтаксис и вызовы API
|
||||||
|
|
||||||
* восстановить страницу kornerr.ru/git-budget
|
* восстановить страницу kornerr.ru/git-budget
|
||||||
её же на своём сайте добавить в примеры
|
её же на своём сайте добавить в примеры
|
||||||
@@ -66,7 +129,8 @@
|
|||||||
тогда всё лучше сходится
|
тогда всё лучше сходится
|
||||||
* тысячи форматировать доппробелами
|
* тысячи форматировать доппробелами
|
||||||
|
|
||||||
|
* изучить планировщики задач 2025 (топ для iPhone)
|
||||||
|
https://dzen.ru/a/ZshWUWbMiXuc-VFd
|
||||||
* сделать вставку из буфера
|
* сделать вставку из буфера
|
||||||
* сделать кнопку копирования результата
|
* сделать кнопку копирования результата
|
||||||
показывать уведомление о факте копирования
|
показывать уведомление о факте копирования
|
||||||
|
|||||||
@@ -1,60 +0,0 @@
|
|||||||
11.01: 30
|
|
||||||
|
|
||||||
* пройти тест по Инглишу на HH
|
|
||||||
попробовал C1
|
|
||||||
не удалось
|
|
||||||
повторить 11 февраля
|
|
||||||
* прочитать MKCV-Brief_2019-11
|
|
||||||
чтобы сопоставить с полной версией
|
|
||||||
там лишь примеры и технологии
|
|
||||||
без лишних описаний, самое то
|
|
||||||
* прочитать МКР_2019-11
|
|
||||||
* прочитать МКР_2021-03
|
|
||||||
* создать заготовку нового МКР 2026-03
|
|
||||||
https://docs.google.com/document/d/1DKlY6ObDF278sRKj138eget5NwQek-O7irH0_mlFeXI/edit?tab=t.0
|
|
||||||
|
|
||||||
11.01: 35
|
|
||||||
|
|
||||||
* написать первичный список нужных полномочий
|
|
||||||
* прочитать MKCV_2019-10
|
|
||||||
|
|
||||||
10.01: 60
|
|
||||||
|
|
||||||
* изучить потенциал Cursor AI
|
|
||||||
может ли оно заменить слабого программиста
|
|
||||||
т.е. того, кому надо максимально описать задачу, чтобы получить нужный результат
|
|
||||||
да, слабого может, но надо дотошно описывать желаемые изменения
|
|
||||||
* расписать первичный план КМП грубо
|
|
||||||
дублирование на Android
|
|
||||||
дублирование на iOS
|
|
||||||
сделать ГТО по разработке для Android: Compose (Input, Text, Button, Row, Column)
|
|
||||||
сделать ГТО по CSE
|
|
||||||
сделать ГТО по КМП
|
|
||||||
заготовление списка контактов на Web
|
|
||||||
заготовление информации о контакте на Web
|
|
||||||
дублирование на Android
|
|
||||||
дублирование на iOS
|
|
||||||
комбинация для iOS Ucim
|
|
||||||
комбинация для Android Ucim
|
|
||||||
* составить план по КОТу для первого квартала
|
|
||||||
|
|
||||||
07.01: 10
|
|
||||||
|
|
||||||
* расписать R, T цели по SMART-2
|
|
||||||
|
|
||||||
06.01: 110
|
|
||||||
|
|
||||||
* расписать цель по SMART-1
|
|
||||||
Научиться команде за два квартала выдавать фичи сразу и для iOS, и для Android
|
|
||||||
Specific: не указано
|
|
||||||
Measurable: не указано
|
|
||||||
Achievable: не указано
|
|
||||||
Relevant: не указано
|
|
||||||
Time-bound: два квартала
|
|
||||||
* расписать S и M цель по SMART-2
|
|
||||||
Изменить процесс разработки в команде на КМП так, чтобы в 2026-м году выдавать фичи сразу и для iOS, и для Android
|
|
||||||
* расписать A цели по SMART-2
|
|
||||||
|
|
||||||
05.01: 25
|
|
||||||
|
|
||||||
* подготовить и отправить КП-3: Мария Сарафанова
|
|
||||||
38
business/2026-02-12_Собес-ИсходныйКод.md
Normal file
38
business/2026-02-12_Собес-ИсходныйКод.md
Normal file
@@ -0,0 +1,38 @@
|
|||||||
|
Title: Первичное собеседование
|
||||||
|
Company: Исходный код (mos.ru, Моя Москва)
|
||||||
|
Date: 2026-02-12
|
||||||
|
URL: https://zoom.us/j/92528151011?pwd=CEmahrxZya91kYz6F0bIcQOECrntPc.1
|
||||||
|
|
||||||
|
√ В какую команду ищете руководителя?
|
||||||
|
Надо командами разработки
|
||||||
|
√ Какие команды есть?
|
||||||
|
25 человек - это все-все
|
||||||
|
11 всего на android, ios, web команды
|
||||||
|
SRUM
|
||||||
|
спринты 3 недели
|
||||||
|
daily 11:30 ежедневно
|
||||||
|
техрадар: обмен знаниями
|
||||||
|
performance review: раз в полгода
|
||||||
|
матрица компетенций
|
||||||
|
360
|
||||||
|
раз в год
|
||||||
|
√ Сколько в командах человек?
|
||||||
|
√ Есть ли отдел аналитики?
|
||||||
|
√ Есть ли отдел тестирования?
|
||||||
|
√ ДМС со стоматологией
|
||||||
|
√ Офис: ст. м. Пролетарская
|
||||||
|
√ Время работы: 10:00-19:00
|
||||||
|
|
||||||
|
* Как выглядит процесс от постановки задачи до приёмки?
|
||||||
|
* Какая ситуация по срокам?
|
||||||
|
* Какие сейчас есть проблемы?
|
||||||
|
* Какие цели надо достичь мне как руководителю?
|
||||||
|
* По ГПХ работаете?
|
||||||
|
|
||||||
|
Потенциальные вопросы ко мне
|
||||||
|
как предотвратить выгорание команд?
|
||||||
|
|
||||||
|
Прочитать про
|
||||||
|
матрицу компетенции
|
||||||
|
360
|
||||||
|
сигнальная таблица
|
||||||
195
business/2026-Q1.md
Normal file
195
business/2026-Q1.md
Normal file
@@ -0,0 +1,195 @@
|
|||||||
|
14.02: 40
|
||||||
|
|
||||||
|
* ответить Еремееву и Lycett на LinkedIn
|
||||||
|
* спросить у Анастасии (Исходный код), что именно привело к отказу
|
||||||
|
чтобы, как она выразилась на созвоне, этот созвон был не зря
|
||||||
|
и чтобы я тоже понял, что надо поменять на своей стороне
|
||||||
|
|
||||||
|
13.02: 25
|
||||||
|
|
||||||
|
* освежить часть вопросов по iOS
|
||||||
|
остановился: 18. 🟢 В чем разница между if let и guard let?
|
||||||
|
|
||||||
|
12.02: 15
|
||||||
|
|
||||||
|
* проверить отклики на почте и в HH
|
||||||
|
|
||||||
|
11.02: 35
|
||||||
|
|
||||||
|
* обновить резюме на LinkedIn
|
||||||
|
|
||||||
|
10.02: 45
|
||||||
|
|
||||||
|
* частично обновить резюме на LinkedIn
|
||||||
|
|
||||||
|
09.02: 20
|
||||||
|
|
||||||
|
* проверить почту и отклик
|
||||||
|
* пн: откликнуться
|
||||||
|
исходный код
|
||||||
|
https://hh.ru/vacancy/129040090
|
||||||
|
отметить в таблице
|
||||||
|
|
||||||
|
07.02: 30
|
||||||
|
|
||||||
|
* завершить Английскую версию резюме
|
||||||
|
|
||||||
|
06.02: 40
|
||||||
|
|
||||||
|
* составить таблицу по собесам
|
||||||
|
уже двоим отправил
|
||||||
|
надо упростить отслеживание
|
||||||
|
https://docs.google.com/spreadsheets/d/17nzM6tuQFQ-t1nAEQGn4UBcj5yLa9F5vzcmmF-UdjAM/edit?gid=311411124#gid=311411124
|
||||||
|
* перевести половину резюме на Ангийский
|
||||||
|
|
||||||
|
05.02: 20
|
||||||
|
|
||||||
|
* добавить Redux-like arch в CV
|
||||||
|
* почта
|
||||||
|
* откликнуться на ООО Корпу
|
||||||
|
https://hh.ru/vacancy/129305916?hhtmFrom=vacancy_search_list
|
||||||
|
откликнулся
|
||||||
|
|
||||||
|
04.02: 30
|
||||||
|
|
||||||
|
* перепроверить резюме на HH
|
||||||
|
* проверить почту GMail
|
||||||
|
чтобы там не было лишнего
|
||||||
|
отписаться
|
||||||
|
|
||||||
|
03.02: 40
|
||||||
|
|
||||||
|
* перенести в HH опыт разработчика-2
|
||||||
|
* перенести в HH опыт руководителя-1
|
||||||
|
* перенести в HH опыт разработчика-1
|
||||||
|
|
||||||
|
02.02: 30
|
||||||
|
|
||||||
|
* перенести в HH опыт руководителя-2
|
||||||
|
|
||||||
|
01.02: 15
|
||||||
|
|
||||||
|
* написать пункт про ускорение на основе данных таблицы?
|
||||||
|
с двузначных на однозначное по превышению сроков выпуска перешли
|
||||||
|
лучше про создание команды
|
||||||
|
* записать усиление команды в момент шторма
|
||||||
|
|
||||||
|
31.01: 35
|
||||||
|
|
||||||
|
* изучить правила ПЭ
|
||||||
|
* бегло ознакомиться с ПЭ: Заработок
|
||||||
|
* бегло посмотреть ПЭ: Нетворкинг: 10%
|
||||||
|
остановился на https://t.me/c/2431091628/48/1985
|
||||||
|
это около 30/300, 10%
|
||||||
|
|
||||||
|
30.01: 30
|
||||||
|
|
||||||
|
* досчитать цифры по Android, iOS за 2020
|
||||||
|
|
||||||
|
29.01: 30
|
||||||
|
|
||||||
|
* сократить техники
|
||||||
|
* описать технологии
|
||||||
|
* заполнить заготовками интересное
|
||||||
|
* досчитать цифры по Android, iOS за 2021
|
||||||
|
|
||||||
|
27.01: 25
|
||||||
|
|
||||||
|
* описать возврат к управлению
|
||||||
|
сделать самой большой секцией
|
||||||
|
это текущее
|
||||||
|
* описать техники
|
||||||
|
|
||||||
|
26.01: 35
|
||||||
|
|
||||||
|
* описать возврат к разработке
|
||||||
|
|
||||||
|
25.01: 40
|
||||||
|
|
||||||
|
* дописать до первого руководства включительно
|
||||||
|
|
||||||
|
24.01: 30
|
||||||
|
|
||||||
|
* vps: влить ветку 25K4
|
||||||
|
* vps: создать ветку 26k1
|
||||||
|
* vps: продублировать файлы cv из github на сайт
|
||||||
|
в www/cv
|
||||||
|
а потом в publish.prod сделать symlink
|
||||||
|
* сделал новую заготовку дя резюме
|
||||||
|
|
||||||
|
23.01: 40
|
||||||
|
|
||||||
|
* заполнить ios за 2024, 2023
|
||||||
|
* заполнить android за 2024, 2023
|
||||||
|
|
||||||
|
22.01: 30
|
||||||
|
|
||||||
|
* заполнить desktop 25
|
||||||
|
https://wiki.iva.ru/spaces/IVCS/pages/165708340/IVCS+Desktop.+Version+25.0
|
||||||
|
* заполнить desktop за 2024, 2023
|
||||||
|
|
||||||
|
21.01: 30
|
||||||
|
|
||||||
|
* составить таблицу дат выпусков по фронтам за 2025-й
|
||||||
|
сделал android, ios, web
|
||||||
|
|
||||||
|
11.01: 30
|
||||||
|
|
||||||
|
* пройти тест по Инглишу на HH
|
||||||
|
попробовал C1
|
||||||
|
не удалось
|
||||||
|
повторить 11 февраля
|
||||||
|
* прочитать MKCV-Brief_2019-11
|
||||||
|
чтобы сопоставить с полной версией
|
||||||
|
там лишь примеры и технологии
|
||||||
|
без лишних описаний, самое то
|
||||||
|
* прочитать МКР_2019-11
|
||||||
|
* прочитать МКР_2021-03
|
||||||
|
* создать заготовку нового МКР 2026-03
|
||||||
|
https://docs.google.com/document/d/1DKlY6ObDF278sRKj138eget5NwQek-O7irH0_mlFeXI/edit?tab=t.0
|
||||||
|
|
||||||
|
11.01: 35
|
||||||
|
|
||||||
|
* написать первичный список нужных полномочий
|
||||||
|
* прочитать MKCV_2019-10
|
||||||
|
|
||||||
|
10.01: 60
|
||||||
|
|
||||||
|
* изучить потенциал Cursor AI
|
||||||
|
может ли оно заменить слабого программиста
|
||||||
|
т.е. того, кому надо максимально описать задачу, чтобы получить нужный результат
|
||||||
|
да, слабого может, но надо дотошно описывать желаемые изменения
|
||||||
|
* расписать первичный план КМП грубо
|
||||||
|
дублирование на Android
|
||||||
|
дублирование на iOS
|
||||||
|
сделать ГТО по разработке для Android: Compose (Input, Text, Button, Row, Column)
|
||||||
|
сделать ГТО по CSE
|
||||||
|
сделать ГТО по КМП
|
||||||
|
заготовление списка контактов на Web
|
||||||
|
заготовление информации о контакте на Web
|
||||||
|
дублирование на Android
|
||||||
|
дублирование на iOS
|
||||||
|
комбинация для iOS Ucim
|
||||||
|
комбинация для Android Ucim
|
||||||
|
* составить план по КОТу для первого квартала
|
||||||
|
|
||||||
|
07.01: 10
|
||||||
|
|
||||||
|
* расписать R, T цели по SMART-2
|
||||||
|
|
||||||
|
06.01: 110
|
||||||
|
|
||||||
|
* расписать цель по SMART-1
|
||||||
|
Научиться команде за два квартала выдавать фичи сразу и для iOS, и для Android
|
||||||
|
Specific: не указано
|
||||||
|
Measurable: не указано
|
||||||
|
Achievable: не указано
|
||||||
|
Relevant: не указано
|
||||||
|
Time-bound: два квартала
|
||||||
|
* расписать S и M цель по SMART-2
|
||||||
|
Изменить процесс разработки в команде на КМП так, чтобы в 2026-м году выдавать фичи сразу и для iOS, и для Android
|
||||||
|
* расписать A цели по SMART-2
|
||||||
|
|
||||||
|
05.01: 25
|
||||||
|
|
||||||
|
* подготовить и отправить КП-3: Мария Сарафанова
|
||||||
@@ -1,3 +1,12 @@
|
|||||||
|
|
||||||
|
Простая экономика
|
||||||
|
20-е марта
|
||||||
|
about:config
|
||||||
|
dom.event.clipboardevents.enabled
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
* Могу придумывать систему
|
* Могу придумывать систему
|
||||||
Пример: задание оценить способность Cursor AI ускорить разработку
|
Пример: задание оценить способность Cursor AI ускорить разработку
|
||||||
|
|
||||||
|
|||||||
@@ -1,24 +1,76 @@
|
|||||||
|
|
||||||
|
|
||||||
НАДО:
|
НАДО:
|
||||||
* продублировать файлы cv из github на сайт
|
|
||||||
* переиначить текущую заготовку про прошлое
|
|
||||||
схлопнуть в секции
|
|
||||||
управление (ещё нет, надо написать)
|
|
||||||
разработка
|
|
||||||
управление
|
|
||||||
разработка
|
|
||||||
|
|
||||||
* освежить SCRUM
|
* на LinkedIn ответить, что мне интереснее управление командой
|
||||||
https://habr.com/ru/articles/825354/
|
√ Сергею Еремееву
|
||||||
|
√ Robert Lycett
|
||||||
|
Anastasiya Sundeeva
|
||||||
|
|
||||||
* составить таблицу дат выпусков по фронтам за 2025-й
|
* написать копию статьи про КМП на English в LinkedIn
|
||||||
чтобы понять, на каком мы месте были
|
сделать на неё ссылку с хабра для тех, кому нужен English
|
||||||
* составить таблицу дат выпусков за 2024-й
|
сделать из статьи LinkedIn ссылку на статью на Хабре
|
||||||
* составить таблицу дат выпусков за 2023-й?
|
из неё сделать ссылку на ТГ канал @kotlindialect
|
||||||
|
* написать Леониду Слепхину (LinkedIn)
|
||||||
|
после публикации статьи KMP на Английском в LinkedIn
|
||||||
|
|
||||||
|
* освежить крупными мазками с вопросами-ответами по iOS
|
||||||
|
https://github.com/vyachesIavskiy/iOS-Interview-Questions
|
||||||
|
продолжить: 18. 🟢 В чем разница между if let и guard let?
|
||||||
|
|
||||||
|
после 11 февраля:
|
||||||
|
повторить тест по Инглишу на C1
|
||||||
|
|
||||||
|
* ознакомиться отдельно со structured concurrency
|
||||||
|
actor
|
||||||
|
Sendable
|
||||||
|
найти статью исчерпывающую
|
||||||
|
* ознакомиться с
|
||||||
|
Big-O notation
|
||||||
|
как оптимизировать время компиляции программы
|
||||||
|
как оптимизировать время запуска программы
|
||||||
|
|
||||||
|
* проверить отклики на почте и в HH
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
* перепроверить задание от Сани Некрасова от 2020-го?
|
||||||
|
уже нет смысла
|
||||||
|
я ж не прогером хочу быть
|
||||||
|
* ответить Сане на его публикацию об ИИ своей
|
||||||
|
https://www.linkedin.com/posts/aleksandr-nekrasov_2025-key-takeaways-ai-still-cant-reliably-activity-7425753210319036416-u2sn?utm_source=share&utm_medium=member_desktop&rcm=ACoAAAdqeucBN55Ve2Lq5eMSZiIkc_pDn270344
|
||||||
|
* спросить у Сани о вакансиях development team lead
|
||||||
|
|
||||||
|
* отклинуться
|
||||||
|
sber user
|
||||||
|
https://hh.ru/vacancy/130219025?hhtmFromLabel=suitable_vacancies&hhtmFrom=negotiation_list
|
||||||
|
|
||||||
|
* записаться на семинар Liquid Glass
|
||||||
|
https://developer.apple.com/events/view/QGV7T9L3L8/dashboard
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
* посмотреть ПЭ: Нетворкинг
|
||||||
|
продолжить c https://t.me/c/2431091628/48/1985
|
||||||
|
|
||||||
|
* подготовить текст о себе в ПЭ: Нетворкинг
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
* написать текст для потенцильного техсобеса, почему нет особого смысла, почему вопросы технические имеют мало смысла
|
||||||
|
предложить определиться здесь, подходим ли мы друг другу
|
||||||
|
для этого надо немного скорректировать формат собеса
|
||||||
|
что скажешь?
|
||||||
|
прежде всего факты
|
||||||
|
убрал созвоны daily - ничего не ухудшилось
|
||||||
|
убрал обязательное review - тоже
|
||||||
|
но это сильно радикально, только в крайнем случае рассказывать
|
||||||
|
цель не в том, чтобы никого не пущать
|
||||||
|
цель в том, чтобы сделать работу эффективнее
|
||||||
|
а для надо и пущать, и быть гибче
|
||||||
|
не отвергать по своему мнению,
|
||||||
|
а делать пилотные проекте и принимать решение лишь с цифрами в руках
|
||||||
|
привести пример с представителями гибдд
|
||||||
|
|
||||||
* составить CV
|
* составить CV
|
||||||
выкладки по пользе от KMP в цифрах не писать
|
выкладки по пользе от KMP в цифрах не писать
|
||||||
@@ -26,9 +78,21 @@
|
|||||||
сначала не публичить своё резюме
|
сначала не публичить своё резюме
|
||||||
попробовать пару собесов по своему таймингу
|
попробовать пару собесов по своему таймингу
|
||||||
перешёл на Android для понимания среды
|
перешёл на Android для понимания среды
|
||||||
|
добавить ссылки на 2 статьи хабра (будущие)
|
||||||
|
пример работы с ИИ с аналитикой
|
||||||
|
пример KMP с аналитикой
|
||||||
|
|
||||||
11 февраля:
|
|
||||||
повторить тест по Инглишу на C1
|
* освежить SCRUM
|
||||||
|
https://habr.com/ru/articles/825354/
|
||||||
|
|
||||||
|
* освежить знания про архитектуру
|
||||||
|
см личку в ТГ
|
||||||
|
has_a, is_a
|
||||||
|
|
||||||
|
* дополнить таблицу дат выпусков по фронтам за 2025-й
|
||||||
|
* заполнить web за 2024, 2023
|
||||||
|
* заполнить ios, desktop за 2022
|
||||||
|
|
||||||
* составить план по Бюджету и ПСКОВу для первого квартала
|
* составить план по Бюджету и ПСКОВу для первого квартала
|
||||||
* составить план по Делу для первого квартала
|
* составить план по Делу для первого квартала
|
||||||
|
|||||||
@@ -19,4 +19,23 @@
|
|||||||
После конкретного вопроса про CLD исправися
|
После конкретного вопроса про CLD исправися
|
||||||
Не смог найти ответ на вопрос "How to run the project"
|
Не смог найти ответ на вопрос "How to run the project"
|
||||||
Но смог на "How to launch PSKOV"
|
Но смог на "How to launch PSKOV"
|
||||||
|
Психологически не ты сам пишешь код, а машина
|
||||||
|
хотя по факту времени тратишь столько же
|
||||||
|
т.е. выигрыша по времени нет
|
||||||
|
а проигрышь по ownership есть
|
||||||
|
ownership очень важно для собственнго развития
|
||||||
|
чтобы не быть арендатором лишь
|
||||||
|
Скептицизм
|
||||||
|
> Configure project :app
|
||||||
|
w: file:///Volumes/MOE/p/kom/ver-android/app/build.gradle.kts:24:9: 'jvmTarget: String' is deprecated. Please migrate to the compilerOptions DSL. More details are here: https://kotl.in/u1r8ln
|
||||||
|
Если все умеют в суперумный ИИ, то чего же он не может такую простую ошибку исправить?
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Философия
|
||||||
|
ИИ - это проекция собственных знаний и ошибок
|
||||||
|
ИИ - это просто классный автомобиль, не более, он не знает, не хочет и ему не нужно
|
||||||
|
никуда ехать без водителя
|
||||||
|
это не замена человека
|
||||||
|
|
||||||
|
|
||||||
406
kmp/2026-Q1.md
Normal file
406
kmp/2026-Q1.md
Normal file
@@ -0,0 +1,406 @@
|
|||||||
|
https://jira.iva.ru/browse/VCSMOB-13473
|
||||||
|
[KMP] Отображать аватарки
|
||||||
|
|
||||||
|
12.02: 155
|
||||||
|
|
||||||
|
* изучить про AsyncImage
|
||||||
|
https://swiftwithmajid.com/2021/07/07/mastering-asyncimage-in-swiftui/
|
||||||
|
нет возможности задать заголовки HTTP
|
||||||
|
хотя я ведь могу для всех сессию задать!!
|
||||||
|
нет, в shared URLSession нет возможности настройки
|
||||||
|
возможно, это намеренно
|
||||||
|
* изучить Kingfisher вместо AsyncImage
|
||||||
|
https://stackoverflow.com/a/79837058/3404710
|
||||||
|
kingfisher может конфликтовать
|
||||||
|
попробую сначала Nuke
|
||||||
|
он очеть похож на то, что можно делать на Android
|
||||||
|
* изучить библиотеку для отображения картинок в One
|
||||||
|
Nuke
|
||||||
|
вроде есть возможность задать заголовки
|
||||||
|
* проверить текущее состояние приложений
|
||||||
|
заметил лишь добавление вёрстки экрана информации о контакте на Android
|
||||||
|
* проверить изменения в ava* с моего влития
|
||||||
|
onPainterLoaded
|
||||||
|
спросил у Дениса, зачем нам это надо
|
||||||
|
видимо, опять какая-то неясная экономия и оптимизация
|
||||||
|
* добавить зависимость Nuke
|
||||||
|
* отображать квадратные изображения в iOS
|
||||||
|
* привести изображение к круглому виду
|
||||||
|
* завязать на состояние загрузки
|
||||||
|
* починить расширение изображения
|
||||||
|
|
||||||
|
11.02: 105
|
||||||
|
|
||||||
|
* отобразить заготовки аватарок в iOS
|
||||||
|
* отобразить заглушки в iOS
|
||||||
|
* вынести contUI.swift
|
||||||
|
после подлития main
|
||||||
|
ибо сильно крупный шаг
|
||||||
|
* оформить ЗС
|
||||||
|
https://git.hi-tech.org/ivasdk/kom/-/merge_requests/37
|
||||||
|
* сообщить о ЗС
|
||||||
|
Сливаю ЗС об отображении заглушек аватарок на iOS: https://git.hi-tech.org/ivasdk/kom/-/merge_requests/37
|
||||||
|
√ 583, main, >=2
|
||||||
|
* влить ЗС
|
||||||
|
* записать в таблицу
|
||||||
|
|
||||||
|
10.02: 190
|
||||||
|
|
||||||
|
* переиспользовать ЗС
|
||||||
|
https://git.hi-tech.org/ivasdk/kom/-/merge_requests/27
|
||||||
|
* ввести mutableState для ав
|
||||||
|
чтобы из VM получать флаг для отображения заглушки в нужный момент
|
||||||
|
avaShouldResetPlaceholderVisibility
|
||||||
|
* отображать заглушку
|
||||||
|
лишь до успешной загрузки
|
||||||
|
лишь на неудачную загрузку изображения
|
||||||
|
* сделать цветовую заглушку по известным функциям
|
||||||
|
* сделать инициалы
|
||||||
|
* починить отображение авы в списке чатов
|
||||||
|
нужна Session? ибо 403 возвращает сервер
|
||||||
|
поправил
|
||||||
|
* проверить iOS
|
||||||
|
* оформить ЗС
|
||||||
|
https://git.hi-tech.org/ivasdk/kom/-/merge_requests/27
|
||||||
|
* сообщить о ЗС
|
||||||
|
Сливаю ЗС об отображении заглушек аватарок на Android: https://git.hi-tech.org/ivasdk/kom/-/merge_requests/27
|
||||||
|
√ 262, main, >=2
|
||||||
|
* влить ЗС
|
||||||
|
* добавить в таблицу
|
||||||
|
|
||||||
|
09.02: 150
|
||||||
|
|
||||||
|
* починить загрузку аватарок после изменений Ильи
|
||||||
|
что-то поменялось сильно
|
||||||
|
теперь нихера нет контактов именно в моей сборке
|
||||||
|
у Ильи есть
|
||||||
|
надо сделать заново на основе последних изменений
|
||||||
|
это как-будто дешевле всего
|
||||||
|
т.е. нужен новый ЗС
|
||||||
|
этот позже переиспользую
|
||||||
|
* повторить частичный накат
|
||||||
|
√ util/other
|
||||||
|
√ README
|
||||||
|
√ ava.kt
|
||||||
|
√ avaUI.kt
|
||||||
|
√ const.kt
|
||||||
|
√ other.kt
|
||||||
|
√ gradle
|
||||||
|
~ entities.yml
|
||||||
|
* восстановить иконку в списке контактов
|
||||||
|
* проверить работопособность в iOS
|
||||||
|
* оформить ЗС
|
||||||
|
√ описать изменения gen-entities
|
||||||
|
√ упомянуть о рассмотрении Glide
|
||||||
|
√ упомнять об avaUI
|
||||||
|
https://git.hi-tech.org/ivasdk/kom/-/merge_requests/16
|
||||||
|
* сообщить о ЗС
|
||||||
|
Сливаю ЗС об отображении аватарок в списке контактов на Android: https://git.hi-tech.org/ivasdk/kom/-/merge_requests/16
|
||||||
|
√ 219, main, >=2
|
||||||
|
* влить ЗС
|
||||||
|
* отметить ЗС в таблице
|
||||||
|
* сообщить Денису о починке cld translator и необходимости ручных изменений для этого
|
||||||
|
* восстановить иконку в инфе о выбранном контакте
|
||||||
|
* вынести contUI.kt
|
||||||
|
* подлить main
|
||||||
|
* оформить ЗС
|
||||||
|
~ сообщить Олегу убрать шуды на каждое поле контакта
|
||||||
|
https://git.hi-tech.org/ivasdk/kom/-/merge_requests/28
|
||||||
|
* сообщить о ЗС
|
||||||
|
Сливаю ЗС об отображении аватарки в инфе о контакте на Android: https://git.hi-tech.org/ivasdk/kom/-/merge_requests/28
|
||||||
|
√ 278, main, >=2
|
||||||
|
* влить ЗС
|
||||||
|
* отметить ЗС в таблице
|
||||||
|
|
||||||
|
07.02: 90
|
||||||
|
|
||||||
|
* ввести в VM contInfoItem
|
||||||
|
* добавить аву в инфу о контакте
|
||||||
|
* добавить аву в список чатов
|
||||||
|
|
||||||
|
06.02: 190
|
||||||
|
|
||||||
|
* проверить запуск KOM на Xcode 13 на 10.12.2.184
|
||||||
|
kotlin 2.1.21
|
||||||
|
json 1.8.0
|
||||||
|
xcodegen 2.35.0
|
||||||
|
не удалось в Package.swift сослаться на zip xcframework
|
||||||
|
хотя вроде как должно было бы работать в Xcode 13
|
||||||
|
не выгорело: 1.5 часа потратил
|
||||||
|
* починить CLD tr на Linux
|
||||||
|
1. надо поменять руками для CLD tr версию java version с 8 на 21
|
||||||
|
сделать патч по версии java?
|
||||||
|
да не, пусть руками, это один раз же
|
||||||
|
в будущем надо переделать translator на nodejs
|
||||||
|
но это потом
|
||||||
|
написать в README KOM заметку для CLD в Linux
|
||||||
|
2. далее sed -i.backup + rm $file.backup
|
||||||
|
* ознакомиться с примером AvatarLoader + Compose от Дениса
|
||||||
|
не очень понятно
|
||||||
|
смущает @OptIn и странная ситуация с API в Glide
|
||||||
|
итог: попробую Coil
|
||||||
|
* изучить загрузку картинок в Compose по URL
|
||||||
|
тут вся суть Session на сервер отправить
|
||||||
|
без него не будет картинки
|
||||||
|
Coil выглядит приятнее, чем Glide
|
||||||
|
хотя по факту работает и так
|
||||||
|
* добавить зависимость Coil
|
||||||
|
* отобразить картинку в Compose
|
||||||
|
https://ivcs.hi-tech.org/services/resource?resourceId=e64bf0bf-442b-4370-894a-8f7f827c7866&width=100
|
||||||
|
* закруглить изображение
|
||||||
|
* сделать заглушки-изображения?
|
||||||
|
это уже можно не мне
|
||||||
|
хотя у нас же заглушка-текст по ivac!
|
||||||
|
тогда мне
|
||||||
|
* заменить ContItem.avaId -> avaURL
|
||||||
|
* отследить неудачную загрузку авы
|
||||||
|
onError
|
||||||
|
* улавливать состояние загрузки
|
||||||
|
onState
|
||||||
|
* создать компонент аватарок
|
||||||
|
|
||||||
|
05.02: 140
|
||||||
|
|
||||||
|
* создать ветку по авам
|
||||||
|
* изучить Glide и Coil
|
||||||
|
https://bumptech.github.io/glide/int/compose.html
|
||||||
|
https://coil-kt.github.io/coil/compose/
|
||||||
|
* узнать URL запроса в Ucim/Ava
|
||||||
|
ИГР Shortcuts.loadRI url: 'https://ivcs.hi-tech.org/services/resource?resourceId=e64bf0bf-442b-4370-894a-8f7f827c7866&width=100'
|
||||||
|
ИГР ImageCS.retrieve url/token: 'Optional(https://ivcs.hi-tech.org/services/resource?resourceId=e64bf0bf-442b-4370-894a-8f7f827c7866&width=100)'/'8ccabf0b-73ed-43c3-add7-969b9c727f05'
|
||||||
|
* определиться с заголовками
|
||||||
|
Серёга сказал, что Session нужно отправлять
|
||||||
|
* скачать Ubuntu 25.10
|
||||||
|
|
||||||
|
===
|
||||||
|
|
||||||
|
https://jira.iva.ru/browse/VCSMOB-13464
|
||||||
|
[KMP] Создать заготовку информации о контакте для Android
|
||||||
|
|
||||||
|
04.02: 130
|
||||||
|
|
||||||
|
* создать ветку
|
||||||
|
andinf
|
||||||
|
сделал
|
||||||
|
* добавить /* 1 */ в if своих шудах в контактах
|
||||||
|
забыл первоначально
|
||||||
|
* восстановить упущенные Ильёй поля в
|
||||||
|
стоп, подлить от Ильи сначала ветку
|
||||||
|
да, Илья исправил
|
||||||
|
мне не надо восстанавливать
|
||||||
|
* улавливать выбор контакта
|
||||||
|
* отображать экран-заглушку
|
||||||
|
* возвращаться назад
|
||||||
|
* переименовать ContactInfo -> Info
|
||||||
|
* локализовать confInfoTitle
|
||||||
|
как раз в эффекте contLocalize
|
||||||
|
* отображать имя выбранного контакта
|
||||||
|
* оформить ЗС
|
||||||
|
https://git.hi-tech.org/ivasdk/kom/-/merge_requests/10
|
||||||
|
* сообщить о ЗС
|
||||||
|
Сливаю ЗС об отображении заготовки информации о контакте: https://git.hi-tech.org/ivasdk/kom/-/merge_requests/10
|
||||||
|
√ 163, main, >=2
|
||||||
|
* влить ЗС
|
||||||
|
* отметить ЗС в таблице
|
||||||
|
|
||||||
|
===
|
||||||
|
|
||||||
|
https://jira.iva.ru/browse/VCSMOB-13334
|
||||||
|
[KMP] Создать заготовку списка контактов
|
||||||
|
|
||||||
|
03.02: 270
|
||||||
|
|
||||||
|
* создать ветку
|
||||||
|
paste
|
||||||
|
* сделать значения по умолчанию для хоста для Android
|
||||||
|
чтобы достаточно было нажать на кнопки Далее без ввода
|
||||||
|
делать по аналогии с вводом в GitBudget через Paste
|
||||||
|
* переименовать DBGFillHostInput -> DBGHost
|
||||||
|
* продублировать для iOS
|
||||||
|
надо замутить свой Binding как-будто, чтобы разделить getter и setter
|
||||||
|
https://www.hackingwithswift.com/quick-start/swiftui/how-to-create-custom-bindings
|
||||||
|
* оформить ЗС
|
||||||
|
√ фотки переделать
|
||||||
|
√ записать видео
|
||||||
|
https://git.hi-tech.org/ivasdk/kom/-/merge_requests/6
|
||||||
|
* сообщить о ЗС
|
||||||
|
Сливаю ЗС об отладочной кнопке заполнения поля ввода хоста: https://git.hi-tech.org/ivasdk/kom/-/merge_requests/6
|
||||||
|
√ 127, main, >=2
|
||||||
|
* влить ЗС
|
||||||
|
* отметить в таблице КЗС
|
||||||
|
* Илья:
|
||||||
|
выдать кнопку заполнения username/password
|
||||||
|
* создать ветку
|
||||||
|
* разобраться с двойной передачей login из AC в CC
|
||||||
|
два раза был вызов MainComponent.setupEffects
|
||||||
|
закомментировал
|
||||||
|
* сделать запрос контактов
|
||||||
|
* разобраться с ошибкой запроса контактов
|
||||||
|
loadURL без установки заголовков ещё
|
||||||
|
добавить
|
||||||
|
* разбирать контакты
|
||||||
|
* отображать заглушки контактов
|
||||||
|
* отображать список контактов с настоящими именем и почтой
|
||||||
|
* оформить ЗС
|
||||||
|
https://git.hi-tech.org/ivasdk/kom/-/merge_requests/8
|
||||||
|
* сообщить о ЗС
|
||||||
|
Сливаю ЗС об отображении заготовки списка контактов на Android: https://git.hi-tech.org/ivasdk/kom/-/merge_requests/8
|
||||||
|
√ 193, main, >=2
|
||||||
|
* влить ЗС
|
||||||
|
* отметить в таблице КЗС
|
||||||
|
|
||||||
|
02.02: 130
|
||||||
|
|
||||||
|
* отображать заглушку списка контактов на Android
|
||||||
|
* продублировать заглушку списка контактов на iOS
|
||||||
|
* оформить ЗС
|
||||||
|
https://git.hi-tech.org/ivasdk/kom/-/merge_requests/5
|
||||||
|
* сообщить о ЗС
|
||||||
|
Сливаю ЗС о создании заглушки списка контактов: https://git.hi-tech.org/ivasdk/kom/-/merge_requests/5
|
||||||
|
√ 473, main, >=2
|
||||||
|
* влить ЗС
|
||||||
|
* отметить в таблице КЗС
|
||||||
|
|
||||||
|
===
|
||||||
|
|
||||||
|
https://jira.iva.ru/browse/VCSMOB-13302
|
||||||
|
[KMP] Создать заготовку авторизации для iOS
|
||||||
|
|
||||||
|
27.01: 170
|
||||||
|
|
||||||
|
* создать заготовку экрана логина
|
||||||
|
* сообщать об ошибке логина/пароля
|
||||||
|
* добавить Starscream
|
||||||
|
* добавить websocket на основе Starscream
|
||||||
|
https://dev.to/fassko/websockets-in-ios-using-swift-276l
|
||||||
|
* подключиться к WS
|
||||||
|
* ознакомитья с Task
|
||||||
|
https://habr.com/ru/articles/762148
|
||||||
|
* восстановить пинги
|
||||||
|
тут как раз нужен Task sleep
|
||||||
|
* A: вынести resetWebSocket в эффекты
|
||||||
|
* продублировать авторизацию для iOS
|
||||||
|
* README: отметить авторизацию iOS
|
||||||
|
* обдумать внутреннюю статью про KOM
|
||||||
|
хотя внутреннюю статью как-будто публиковать-то и нельзя
|
||||||
|
ведь на KOM добро не все давали
|
||||||
|
можно ли рассмотреть этой статьёй основные моменты с тем,
|
||||||
|
чтоб потом быстрее написать про git-budget?
|
||||||
|
итог: нет смысла, лучше время на код потратить
|
||||||
|
* сделать видеозапись
|
||||||
|
ввести неверный хост
|
||||||
|
увидим алёрт
|
||||||
|
ввести верный хост
|
||||||
|
передём на логин пароль
|
||||||
|
ввести неверные логин и пароль
|
||||||
|
увидим алёрт
|
||||||
|
ввести верные логин и пароль
|
||||||
|
увидим пустое окно
|
||||||
|
* подготовить видеодемонстрацию
|
||||||
|
* оформить ЗС
|
||||||
|
https://git.hi-tech.org/ivasdk/kom/-/merge_requests/4
|
||||||
|
* влить ЗС
|
||||||
|
|
||||||
|
26.01: 185
|
||||||
|
|
||||||
|
* создать заготовку sdk-ios
|
||||||
|
* сделать заготовку скрипта gen-ios
|
||||||
|
* создать заготовку ver-ios
|
||||||
|
* сделать видеодемонстрацию
|
||||||
|
показать util/gen-ios
|
||||||
|
* оформить ЗС
|
||||||
|
https://git.hi-tech.org/ivasdk/kom/-/merge_requests/3
|
||||||
|
* влить ЗС
|
||||||
|
* создать заготовку экрана хостов
|
||||||
|
* придать вид карточки
|
||||||
|
* добавить тень
|
||||||
|
* делать запрос
|
||||||
|
* сообщать об ошибке хоста
|
||||||
|
* скрывать экранр хоста после успешного ввода
|
||||||
|
|
||||||
|
===
|
||||||
|
|
||||||
|
https://jira.iva.ru/browse/VCSMOB-13212
|
||||||
|
[KMP] Создать заготовку авторизации для Android
|
||||||
|
|
||||||
|
24.01: 100
|
||||||
|
|
||||||
|
* перенести UI авторизации
|
||||||
|
* перенести VM авторизации
|
||||||
|
* перенести auth/Fun.kt
|
||||||
|
* исправить невозможность сделать запрос
|
||||||
|
вернуть serialization plugin
|
||||||
|
* перенести авторизацию для Android
|
||||||
|
* записать видео авторизации
|
||||||
|
ввести неверный хост
|
||||||
|
увидим алёрт
|
||||||
|
ввести верный хост
|
||||||
|
передём на логин пароль
|
||||||
|
ввести неверные логин и пароль
|
||||||
|
увидим алёрт
|
||||||
|
ввести верные логин и пароль
|
||||||
|
увидим пустое окно
|
||||||
|
* подготовить видео с титрами
|
||||||
|
* оформить ЗС
|
||||||
|
https://git.hi-tech.org/ivasdk/kom/-/merge_requests/2
|
||||||
|
добавить видео
|
||||||
|
* влить ЗС
|
||||||
|
|
||||||
|
23.01: 45
|
||||||
|
|
||||||
|
* исправить генерацию entities.kt
|
||||||
|
обновить и пересобрать cld
|
||||||
|
* копировать CLDController/Context из CLD в Android
|
||||||
|
* перенести CLD
|
||||||
|
entities.yml
|
||||||
|
√ отметить /*@JsExport*/
|
||||||
|
√ добавить клонирвание translator куда-нибудь в ~/iva-smth
|
||||||
|
√ сделать запуск translator из ~/iva-smth
|
||||||
|
√ заменить generate-entities на какой-либо один скрипт в util/
|
||||||
|
причём его надо будет вызывать всегда для всех платформ
|
||||||
|
* кратко описать CLD translator в README
|
||||||
|
* оформить ЗС
|
||||||
|
https://git.hi-tech.org/ivasdk/kom/-/merge_requests/1
|
||||||
|
* влить ЗС
|
||||||
|
|
||||||
|
22.01: 75
|
||||||
|
|
||||||
|
* создать репозиторий KOM
|
||||||
|
* описать в таблице README готовую функциональность
|
||||||
|
* генерить entities.kt в корень проекта временно
|
||||||
|
* создать заготовку Android HW
|
||||||
|
на основе git-budget
|
||||||
|
* генерить entities.kt в ver-android
|
||||||
|
|
||||||
|
===
|
||||||
|
|
||||||
|
https://jira.iva.ru/browse/VCSMOB-13190
|
||||||
|
[KMP] Описать движение данных в архитектуре CSE
|
||||||
|
|
||||||
|
21.01: 180
|
||||||
|
|
||||||
|
* создать динамический пример движения данных архитектуры CSE
|
||||||
|
~/m/p/svg
|
||||||
|
выдал Ване KaiSD проверить 21.01.26
|
||||||
|
* от Вани получил следующий отзыв
|
||||||
|
Выглядит как пошаговый визуализатор исполнения кода,
|
||||||
|
но при этом разделение на блоки не очень понятно.
|
||||||
|
И логика движения кружка тоже.
|
||||||
|
Можно увидеть куда он двигался, но нельзя понять куда он должен двигаться.
|
||||||
|
Возможно, нужны точки соединения и линии между ними.
|
||||||
|
|
||||||
|
|
||||||
|
20.01: 90
|
||||||
|
|
||||||
|
* ознакомитья с SVG
|
||||||
|
https://www.w3schools.com/graphics/svg_animation.asp
|
||||||
|
* от руки нарисовать схему с авториацией текущей
|
||||||
|
слева - контроллер / контекст
|
||||||
|
справа-вверху - шуды
|
||||||
|
справа-внизу - эффекты
|
||||||
|
полоски должны путешествовать ctx -> should -> ctx, effect -> ctx, ctx -> effect
|
||||||
|
полоски и будут отображать движение данных
|
||||||
|
* найти редактор SVG
|
||||||
|
https://freesvgeditor.com/en/svg-editor-online
|
||||||
|
* набросать пример
|
||||||
|
~/c/svg(4).svg
|
||||||
76
kmp/now.md
Normal file
76
kmp/now.md
Normal file
@@ -0,0 +1,76 @@
|
|||||||
|
13.02: 17:15-18:45 90
|
||||||
|
|
||||||
|
* проверить тормоза без использования VM
|
||||||
|
для начала просто проверить тормоза без Ava.View полностью в ячейках
|
||||||
|
да, без lazy image то же самое еле заметно подёргивание
|
||||||
|
* изучить изменения в ava после !34
|
||||||
|
* подлить main
|
||||||
|
* сделать видеозапись
|
||||||
|
* оформить ЗС
|
||||||
|
https://git.hi-tech.org/ivasdk/kom/-/merge_requests/39
|
||||||
|
* сообщить о ЗС
|
||||||
|
Сливаю ЗС по отображению изображений аватарок на iOS: https://git.hi-tech.org/ivasdk/kom/-/merge_requests/39
|
||||||
|
√ 57, main, >=2
|
||||||
|
* влить ЗС
|
||||||
|
* записать в таблицу
|
||||||
|
* сделать отчёт в чат КМП
|
||||||
|
√ подготовить видео
|
||||||
|
√ посчитать количество сэкономленных строк кода
|
||||||
|
√ ввести скрипт
|
||||||
|
|
||||||
|
НАДО:
|
||||||
|
* подготовить документ с графом связей между сущностями
|
||||||
|
* оформить ЗС
|
||||||
|
https://git.hi-tech.org/ivasdk/kom/-/merge_requests/43
|
||||||
|
тут дока больше
|
||||||
|
* сообщить о ЗС
|
||||||
|
* влить ЗС
|
||||||
|
* таблица
|
||||||
|
|
||||||
|
* добавить ссылки на API endpoints рядом с сущностями в YML
|
||||||
|
* попутно удалить shouldResetInfo и соответствующие поля из ContContext
|
||||||
|
* ввести <PRE>_ACTIVE_SHOULDS и регистрацию отладки сразу внутри <PRE>Fun.kt
|
||||||
|
* проверить гипотезу кэширования второй Ava одного запроса
|
||||||
|
чтобы не было двух запросов одной картинки
|
||||||
|
|
||||||
|
* сделать комбинацию на Android
|
||||||
|
|
||||||
|
|
||||||
|
* подготовить шпаргалку по Redux / CSE
|
||||||
|
|
||||||
|
* ввести линтер с запретом @State и @Binding вне VM.swift
|
||||||
|
ввести аналогию для Android
|
||||||
|
* проверить замену на Glide
|
||||||
|
именно после полной реализации на Coil
|
||||||
|
чтобы функционально всё удовлетворяло
|
||||||
|
в Android Connect ведь Glide
|
||||||
|
чтобы меньше трения было при добавлении
|
||||||
|
и без увеличения размера
|
||||||
|
https://bumptech.github.io/glide/int/compose.html
|
||||||
|
|
||||||
|
|
||||||
|
* улавливать изменения в имени контакта по WS
|
||||||
|
это важно сделать для задания пути работы с WS
|
||||||
|
|
||||||
|
* доработать локализацию до генерации нативных файлов Android
|
||||||
|
* доработать локализацию до генерации нативных файлов iOS
|
||||||
|
|
||||||
|
* добавить ширину авы в параметры Ava()
|
||||||
|
сейчас в инфе о контакте фотка размытая выходит
|
||||||
|
но тогда будет загрузка вторая
|
||||||
|
т.е. при переходе на контакт будет сначала видна заглушка
|
||||||
|
тут прям не так просто
|
||||||
|
надо подумать
|
||||||
|
|
||||||
|
* продулировать авторизацию на Desktop
|
||||||
|
|
||||||
|
для Пети:
|
||||||
|
* описать архитектуру
|
||||||
|
* кто за что отвечает
|
||||||
|
|
||||||
|
* iOS input 2026-01-27:
|
||||||
|
переключаться на Return с поля username на password
|
||||||
|
сейчас не надо, ибо SwiftUI поднимает вьюху в свободное пространство при показе клавы
|
||||||
|
* iOS input 2026-01-27:
|
||||||
|
скрывать клавиатуру на Return в поле password
|
||||||
|
сейчас не надо, ибо SwiftUI поднимает вьюху в свободное пространство при показе клавы
|
||||||
Reference in New Issue
Block a user