Pull to refresh
37
Виталий Новичков@Wohlstand

Инженер-Программист С++

0,1
Rating
3
Subscribers
Send message

Я вот сам работаю полный рабочий день и при этом умудряюсь разрабатывать примерно десяток собственных свободных проектов с открытым кодом. Большую часть приходится точить самому, а часть мне помогают либо случайные энтузиасты, или один со-разработчик. Все эти проекты пилю чисто как хобби, и потому что нужны самому. При этом за них тоже не получаю никого финансирования. Либо жалкие копейки эпизодически, либо 10 тысяч одноразово, чтобы поддержать разработку одной из моих библиотек.

В больших проектах я предпочитаю не использовать всякие менеджеры зависимостей (Conan, npm, pip, и т.п.), а делать копии выпусков используемых библиотек к себе на репы и собирать их исходников целиком как подмолули. Это надо затем, чтобы:

  • Ничего не сломалось, если вдруг основной проект что-то сделает не то или стухнет.

  • Возможность вносить свои правки. Например, исправить баг или применить заплатку сразу до следующего выпуска. Или починить сломанную совместимость (чаще всего с Windows XP и даже 98, ибо проекты целятся под работу на ретрокомпьютерах, а не только под современное).

  • Возможность собрать проект здесь на месте с минимумом установки внешних зависимостей. Но возможность стыковаться с системными аналогами я сохранил, чтобы собирать компактные DEB-выпуски, и как исключение, собираю свои, если в системе библиотеки слишком старые.

Есть Nextcloud, который можно развернуть на своём сервере и клиенты синхронизации под всевозможные платформы, сам пользуюсь параллельно. У меня домашний сервер, и через него работаю как дома в домашнй сети, так и находясь где-то в городе или на работе.

Я вообще делаю так:
- дома подключаю мобилку к домашней сети.
- мобилке назначаю статический IP-адрес.
- на мобилке гоняю SSH-сервер.
- на домашнем компьютере запускаю скрипт (у меня на bash, но можно и на питоне и на чём угодно написать), который скачивает файлы с мобилки по SFTP и сортирует по подпапкам в галлерее (у меня подпапки по датам съёмки, которые берутся из имён загруженных файлов).

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

WinForms это вовсе не WinAPI, это гигантская библиотека из набора .NET. Если говорить о чистом WinAPI, конечно же CreateWindowEx, GetMessage и DispatchMessage, ну и говоря о формах, максимум диалоговые окна через редактор ресурсов (.rc-скрипты) собрать, и потом хватать их через соответствующие функции. Но вот серьёзные окна лучше собирать динамически из кода.

Для крупных проектов использую Qt, первым делом потому, что точу кросс-платформенно, а не исключительно под Windows. Но вот мелочёвку в виде специфичных утилит, настроечников и т.п. пишу на чистом WinAPI, чтобы весило мало.

Понял, и я тут же накопал демку https://github.com/selastingeorge/Win32-Acrylic-Effect и описание того, как именно тот смог это повторить. И более того, заявлено, что оно будет работать даже на виндосемёрке/восьмёрке, но автор не проверял (могу потом по приколу проверить дома, виртуалки есть).

И кстати, я бы мог применить подобную штучку кое-где в своём проекте, чтобы окошко одно выглядело по красивее. На виндосемёрке с эффектом Aero оно у меня красивое, а на всём, кроме Vista и 7, используется базовый стиль, ибо фишка провоцирует глюки. Но сделать мне надо это так, чтобы не ломало совместимость с Windows XP (проект сам целится на ретрокомпьютеры в том числе).

В плане, чтобы создать инструмент для графического редактора, или интеграция с графическим планшетом и стилусом? Или тему оформления окна сделать?

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

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

Дополняю: лично я больше всего недолюбливаю Electron, из-за того, что приложения получаются крайне неповоротливыми и чрезвычайно прожорливыми, даже не смотря на то, что выполняют жалкий минимум, который легко запихнуть в исполняшку на Чистом Си весом несколько килобайт.

Вот вот, я тоже об этом подумал, вирусню так могут пропихивать по частям. Опасная фишка, однако.

Задумка прикольная, НО, с точки зрения ИБ очень мне кажется, что таким методом условно могут доставлять жертве вирусы-трояны, маскируя под всякие другие приколы.

Через Миранду сейчас можно лишь общаться через XMPP или IRC коих серверов пока до сих пор тьма.

Аська за всю историю ходила по рукам, и закончила свою жизнь как раз в руках прямого конкуретна - МылРу. Её изначально создали в Израиле, создав стартап Mirabilis, и потом они попали к жадной жабе AOL, которая также владела и Скайпом, и WinAMP они захавали, и когда WinAMP закрывалась, авторы высказались про то, что AOL мегазабюрократизированная компания, жаждущая деньги и прибыль. И вот на этом они и прогорели в итоге. Аську они продали нашему МылРу, потому что на тот момент аудитория из СНГ была крупнейшей в сети Аське, как я помню.

Я помню как-то пользовался то Miranda-IM, то тоже QIP-ом, а потом и вовсе Pidgin-ом, куда я повесил и Агента, и ICQ. На официальных клиентах ICQ я почти не гонял, ибо и реклама тогда была, и сами клиенты глючили у меня. У меня тогда вообще были либо исторический Pentium MMX 133 МГц 64 МБ ОЗУ, либо Pentium III 866 МГц и 512 МБ ОЗУ. Агент использовал старой версии 4.6, последняя какая работала из под Windows 98, а на WinXP потом гонял более новые версии. Потом и раздобыть себе "пни4", но оперативки поставил хотя бы гиг, ибо 512 уже мало стало.

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

Те, кто говорит, что "рекламная хрень", путают наверняка с "браузером Амиго" (навязчивость которого породила тьму мемов в своё время!), который в самом деле полз везде и всюду, когда его не просили. А вот Агент в своё время был во истину хорошим и годным продуктом от МылРу (и скорее всего единственным на мой взгляд годным программным продуктом). Потом он стух, когда решили переделать его полностью в районе 2013го года (версия 6.x), из-за чего многие тогда слиняли в другие мессенджеры.

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

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

По поводу снимков: у меня самого парк различной ретро-техники (6 системников разных годов стоят пирамидкой и воткнуты в KVM-переключатель), и я делаю разные эксперименты на железе, и вот сделал для себя я вот такой велосипед - крохотная программка, которая делает снимки экрана и сразу сохраняет их в PNG, и отправляет по FTP на основной компьютер.

Можете взять на вооружение, если интересно: https://github.com/Wohlstand/TinyScreenshoter

Штучка точилась с совместимостью под Windows 98, сначала сделав версию под Qt 4.4.3, а затем сделал отдельную WinAPI-версию, чтобы весила лишь 150 килобайт и не жрала оперативку, особенно если её мало на "подопытном".

Также пытаюсь создать вариант для Windows 3.x, ибо там тоже на железе делаю разные эксперименты.

1
23 ...

Information

Rating
4,565-th
Location
Москва, Москва и Московская обл., Россия
Registered
Activity

Specialization

Фулстек разработчик, Разработчик игр
Старший
C++
Git
Cmake
Linux
Bash
Unix
ООП
Базы данных