Так себе программист
97 subscribers
184 photos
7 videos
1 file
183 links
Меня зовут Александр Троценко. Разработчик, преподаватель, к.т.н. Пишу о программировании и профессии.

10 лет в разработке desktop на C/С++

Контент: https://taplink.cc/atrotsenko
Download Telegram
This media is not supported in your browser
VIEW IN TELEGRAM
Так или иначе осознание начинается с кризиса "все пропало" 😁
❤5👍1🤯1
Закончилось моё обучение на курсе по реверс-инжинирингу.

Крайне смелое начинание (при полной то занятости). И повод поговорить про потолок возможностей и выгорание.

👇
👍4🙏3
Одна из причин выгорания - чрезмерная нагрузка.

Желая быть хорошими, успешными и эффективными, мы берем на себя много забот. Мы же профессионалы и у нас все получится. Так ведь?

Конечно получится. На короткой дистанции уж точно. Вдолгую же такое приключение не вывезет даже самый фанатичный трудоголик. Проблемы начнутся либо внутри (здоровье), либо снаружи (близкие).

Как быть? Не брать на себя много забот.

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

Мой пример.

На время курса я отказался от личных проектов. Все встало на паузу, за исключением блога 😉
А на время сессии в универе встал на паузу и сам курс. Я не ходил на занятия и не делал домашки целых 2 месяца. Вместо курса - проверки работ, код-ревью и консультации в универе. Нон-стоп. Как только сессия закончилась, я вернулся к курсу и за месяц догнал программу.

Изначально я ни от чего не собирался отказываться. Потолок возможностей подкрался незаметно. Пришлось убирать все, что можно убрать. Мы же профессионалы и знаем, что долго находиться в режиме аврала не получится. Кто-то сгорит быстро, кто-то продержится дольше, кто-то будет страдать вечно. Там нет ничего хорошего. Лучшие умения и навыки перестанут быть такими. Больше ничего не захочется.

Я никогда серьезно не сталкивался с выгоранием. Хотя всю свою карьеру работал на два фронта: университет и работа. Может так удачно совпало. А может повлияли близкие и друзья, с которыми всегда можно спрыгнуть с забот и отдохнуть. Может быть.

В общем, берегите себя и не грузитесь чрезмерно) Вокруг столько интересного, а времени у нас с гулькин нос. Выгорать - непозволительная роскошь.

-

Кому интересно, что было на курсе по реверсу, посмотрите мои домашки на GitHub.

P.S. Я бы точно сгорел, если бы не ИИ. Но об этом - позже.
❤7🤔1
Вы слушаете музыку, когда работаете?
Anonymous Poll
29%
Да
33%
В основном да
17%
В основном нет
21%
Нет
Я уже пару лет не слушаю музыку во время работы.

Хотя раньше как надевал наушники в начале рабочего дня, так и сидел в них до вечера 🎶

Не помню, почему перестал слушать. Но по ощущениям без музыки работается лучше. Сосредоточеннее, что ли.

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

Сейчас слушаю музыку только в дороге. И то время от времени. Подкасты, знаете ли, сами себя не послушают 😁

—

Читать еще:
-
Дефицит внимания: кто виноват
Please open Telegram to view this post
VIEW IN TELEGRAM
🤯4👍1🤔1
Когда обучение по реверсу закончилось, ребенок отдыхает у бабушки, а универ - на каникулах, наблюдается повышенная активность на GitHub 🤭

Только не думайте, что я сумасшедший и пашу без отпусков. Отпуск у меня был.
❤6😁4
Please open Telegram to view this post
VIEW IN TELEGRAM
Нижнее выравнивание выглядит красиво. Но я выбрал верхний вариант, потому что при правках будет чище git diff.

Представьте, если новый элемент enum окажется длиннее остальных. В нижнем варианте придется выравнивать все строки и, как следствие, становиться их автором по git blame.

А вы из чего исходили при выборе?
🤔6👍2
Учение. Увлечение. Время. Воля. Вера в себя. Умственный труд. Труд души. Внимание. Память. Уроки в школе. Уроки дома. Чтение.

Это главы из книги Симона Соловейчика "Учение с увлечением" (1979).

Звучит как рецепт 😉
👍6❤2
Так себе программист
Ни тот, ни другой вариант ответа не набрал абсолютное большинство голосов. Почему? Потому что "вкусовщина".

Вкусовщина - это субъективное, личное отношение к чему-либо.

Здесь есть о чем поспорить. В основном спорят за стиль. У каждого свое понимание "красоты". Но сколько не спорь, делу не поможешь. Вообще никак. Ноль. Зеро.

Что же тогда делать? Вижу два варианта:

1. Забить. Кто как хочет, так и делает. Нравится, не нравится - пофиг. 

2. Зарегулировать. На уровне соглашений: делаем только так. А отклонения не пускать. Хочешь делать по-другому? Ок, собирай аргументы, оценивай последствия, назначай дату, время и место обсуждения вопроса.

Еще лучше - авторегулирование. Форматтеры, линтеры и прочее. С кем там будешь спорить, с машиной?

Вообще, чем больше растешь профессионально, тем меньше беспокоят эти вопросы. Как принято в проекте, так и делаешь. Никак не принято? Помогаешь принять и делаешь как принято.

Красота.
👍7
YouTube Analyzer 6.0

Мы выпустили новую версию YouTube Analyzer - анализатора поисковой выдачи YouTube.

Все было готово еще 8 месяцев назад. Оставалось шлифануть, проверить и отдать. Всего-то... 🤦‍♂️
Ну, лучше поздно, чем слишком поздно.

Из интересного в коде по сравнению с предыдущей версией:

- Создан новый закрытый плагин для анализа видео по конкретному каналу. Плагин не попал в открытый код, но, благодаря ему, развилась система плагинирования. Реализовано дерево связей между плагинами, а также каждый плагин теперь может иметь свой собственный текст лицензии.

- Улучшена обработка ошибок от YouTube API. Ибо чего только YouTube не возвращает... То есть поля, то нет полей. В общем, все как у всех 😁

В следующей версии поработаем над экспортом данных. Ютуб-менеджеры уже не хотят анализировать "глазками". Они хотят отдать все ИИ.

—

YouTube Analyzer - это desktop-приложение на Python / PySide (Qt).
Его решения можно использовать как шаблон для своих приложений на Python / PySide или на C++ / Qt
.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥7👍3
Поняли, да? Мало попросить показывать превью. Надо еще уточнить, кому именно показывать.

Себе он показывал, умник...
😁8🤡2
Эксперимент с ИИ-разработкой

Кто не знает, моя специализация - desktop. В основном на C++/Qt. Хотя пробую разное.

Пробовать разное полезно для профессионального кругозора. Понятно, что везде специалистом не станешь. Но на качество принятия решений повлияешь.

Я давно хотел сделать desktop-приложение на TypeScript. Новый для меня стек, но концепция известна, так как теми же VS Code и Obsidian я пользуюсь каждый день. Они написаны на TypeScript, и они работают.

Поэтому в августе, как только завершился курс, я начал экспериментальную разработку desktop-приложения в связке Rust / TypeScript. 

Это не поделка "в стол", а персональный софт для учёта финансов (доходы, расходы, банковские и фондовые инструменты). Навязчивая идея, на реализацию которой никогда не было ресурсов. Проще вести табличку в Excel.

В рукопашную я бы никогда за это не взялся. Слишком много неизвестных. Но ИИ-агенты открыли окно возможностей.

Спустя месяц есть результаты и есть выводы. Ставьте 👍, а я в следующих постах все расскажу.
👍14
Так себе программист
Эксперимент с ИИ-разработкой Кто не знает, моя специализация - desktop. В основном на C++/Qt. Хотя пробую разное. Пробовать разное полезно для профессионального кругозора. Понятно, что везде специалистом не станешь. Но на качество принятия решений повлияешь.…
Почему, собственно, это эксперимент?

Потому что нет уверенности в средствах достижения результата. Понятия не имею, как далеко можно уйти в разработке исключительно на ИИ-агентах. Есть только гипотеза.

Итак, цели эксперимента.

1. Изучить новый стек технологий. Возможно ли вообще в чем-то разобраться, если код вместо тебя будет писать ИИ-агент?

2. Перевести учёт финансов из Excel в новое приложение. С моим количеством данных таблички уже не удобны. Получится ли создать приложение без особых усилий?

3. Оценить потенциал агентной разработки для чего-то большего, чем простой MVP. Стоит ли вообще рассматривать ответственную коммерческую разработку на этих принципах?

4. Оценить потенциал агентной разработки в незнакомом стеке. Что будет с продуктом в долгосроке при условии, что я не владею его стеком?

Это не исчерпывающий список, но общее направление передаёт точно. Я никогда так не работал, нужен опыт.

👇👇👇

И что же получилось после месяца работы.

1. Стек изучен крайне поверхностно. Да, освоен воркфлоу, освоены архитектурные принципы, есть хорошее понимание модулей на высоком уровне. Но непосредственно по языкам программирования - ноль. До сих пор не знаю, что там за конструкции.

2. Уйти от Excel получилось практически полностью и очень быстро. Кто бы сомневался. Остались графики и кое-какие мелочи. Это 100% будет сделано. Считаю цель достигнутой.

3. С полноценной разработкой ИИ-агентами пока не понятно. Есть ощущение, что все возможно при аккуратных процессах. Знаний в сети уже много, можно перенимать.

4. Да, сделать поделку в незнакомом стеке реально. Особенно если есть сильный инженерный бэкграунд. Это будет работать, это будет выполнять задачу пользователя. Но уверенности в поделке мало. Непривычно не знать, что у тебя там внутри. На длинной дистанции это ещё предстоит оценить.

В общем, вроде бы все работает, но на эти "вроде бы" пальцев рук не хватит. В сети транслируют разный опыт: от катастрофы до пушка-гонки. А раз так, то большой шанс оказаться где-то посередине.

Буду разбираться и вам рассказывать. Скоро покажу скриншоты с программой.
👍7🔥3❤1
Не знаю, как у вас, но меня отладка багов безумно утомляет. Скучно. Если не поймал с нескольких заходов, то все, поплыл. Прямо в рабочем кресле 😴😅
😁5❤3
Сколько раз нужно нажать на стрелочку рядом с «Заметки», чтобы раскрыть спойлер и увидеть список заметок по видеоконференции?

Ответ: бесконечно много.

Потому что это не спойлер, а кнопка сворачивания боковой панели. Жмак, и панель закрылась вбок. Я несколько раз попался. А заметок там нет и не было. Но почему-то очень хотелось, чтобы были 🤭

Все таки боковые панели обычно сворачиваются немного по-другому. Хороший пример - сворачивание в десктопе Telegram.

—

С натяжкой, но кейс становится 14 частью рубрики «Путаница в интерфейсах».
👍7
- Чем отличается сеньор от джуна?
- Взглядом... Взглядом на проблему.
😁7🤔2💯2❤1
Нужен ли в репозитории файл AUTHORS?

AUTHORS - это файл, где по именам перечислены все разработчики, когда-либо коммитившие в репозиторий. Например, файл AUTHORS есть у cppcheck.

Хорошая идея взять и перечислить всех контрибьюторов проекта. Всем весело и приятно. Это раз. А два: проще сделать копирайт в лицензии проекта. Мол, авторы - это все люди из файла и все права принадлежат им.

И все бы ничего, когда у проекта десяток авторов. А если больше? У того же cppcheck четыре с лишним сотни имен в списке. Хотя проект небольшой.

Иду смотреть другие проекты и обнаруживаю интересную вещь. У крупных репозиториев nodejs и golang файл AUTHORS когда-то был, но сейчас его нет. То есть вели-вели, а потом отказались.

Почему?

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

В nodejs удалили файл на три с лишним тысячи авторов, а в golang - на полторы тысячи. Теперь в этих проектах история git стала единственным авторитетным источником списка (пример go).

С юридической точки зрения получается даже меньше вопросов. Файл AUTHORS, как правило, забывают обновлять, а история git, напротив, автоматически все фиксирует. На странице проекта в GitHub есть удобные инструменты для просмотра контрибьюторов: информация всегда актуальна.

Поддерживать файл AUTHORS или нет - выбор авторов. На своих проектах я решил, что не буду этим заниматься. Хотя изначально хотел. Но есть понимание, что однажды я точно забуду обновить этот файл. Кому-то из соавторов будет все равно, а кто-то расстроится, что его вклад не замечен.

Что думаете по этому поводу?
Как контрибьютор, хотели бы вы оказаться в файле AUTHORS или записи в истории git вам достаточно?
👍6❤1
Компьютер - детская мечта! Я так хотел компьютер.

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

Бойтесь своих желаний - они имеют свойство сбываться.
❤7👍2😁2👾1
SDD: когда агент спас

Наверное, всем знакома ситуация, когда начал что-то кодить, а через какое-то время осознал, что двигался немного не туда. Ну или не немного 🤭
При рефакторинге вообще милое дело вляпаться в блокер на полпути. Всегда бесило до чёртиков.

И винить обычно некого. Сам проморгал, сам вляпался, сам выкручиваешься.

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

Это уже большой плюс. Но может быть ещё лучше. Ниже живой пример.

Один из своих проектов я с самого начала веду в парадигме SDD (Spec Driven Development): сначала спеки, потом код.
Во время проработки одной из фич случился примерно такой диалог:

Я: Хочу сделать турбо-мега-фичу

ИИ: Эта фича противоречит правилу 2 из спеки А003

Я: Ты что-то не понял. Там работает вот так и вот так. Все ложится нормально.

ИИ: (долго думает)

ИИ: Я посмотрел код. Он соответствует спеке А003. Если ты решишь делать фичу, то придется менять правило 2 и переделывать это и это (перечисляет половину проекта)

Я: (уже не смешно, смотрю внимательнее и осознаю)

Я: А, точно, я забыл про это. Тогда сделаем по-другому...


Понимаете? Уже по спеке агент понял, что фича тяжело ложится. А я не понял: забыл, не уточнил, поспешил. Так ещё и не поверил сначала 😄

Приятно, что есть инструмент, который помогает меньше косячить. Не супер-пупер таблетка, конечно, но при правильном окружении получается очень интересно. Мне нравится, как работает SDD с агентами. Многие проблемы либо отлавливаются на ранних этапах, либо вообще не возникают. Своих тонкостей там тоже хватает, ещё предстоит разобраться. Но даже базовый уровень впечатляет.

А вы создавали что-нибудь через SDD?
👍4❤1