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

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

Send message

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

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

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

Дополняю ещё от себя: я сам лично проклинал всеми святыми ПО на Electron-е, пока я работал на AMD Athlon 64 2,4 ГГц и 4мя гигабайтами оперативной памяти (Во времена учёбы я не мог себе позволить современное железо, и пользовался тем, что есть, старое даже по тем временам). Это просто невыносимо, один какой-то мессенджер внезапно вешает всю систему, при том ниченго серьёзного не делающий под капотом. В итоге доходило до того, что я старался всегда закрывать браузер, когда он мне не нужен, и не держать открытыми мессенджеры на базе Electron, оставляя наименее прожорливых (например тот же Pidgin, хоть и не идеал, но не жрёт так много, как примитивный мессенджер на базе Electron).

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

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

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

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

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

Крупную и дорогую технику я покупаю в основном в живых магазинах, потому что первым делом это возможность проверить и гарантия возврата, и выше шанс, что подлинник (не подделка) (Хотя и были случаи подделок в DNS, например, друг жаловался, что ему досталася поддельная мышь Logitech). В интернет-магазинах покупаю в основном всякую мелочёвку или запчасти. Самый жирный плюс живых магазинов, что товар можно по большей части получить быстро и почти сразу (либо ждать совсем чуть-чуть), а через интернет-магазины чаще всего ждать доставку очень долго (в зависимости от того, что заказывать и через какого продавца, и от куда). Либо если того, что нужно, в магазинах нету, а есть только в интернет-магазинах. В некоторых случаях не брезгую и Б/У через Авито, если жаба душит покупать новое, либо ищу конкретно что-то историческое.

Вот ведь линуксоиды до бесплатного охочи!

Я линуксоид со СТАЖем с 2014го года, и с тех пор, как перешёл с Windows 7, использую по большей части либо СПО, либо купленное (или даное по бесплатной лицензии для разработки СПО) проприетарное ПО, если прям очень надо, либо нравится и удовлетворяет мои задачи. Я смотрю не на бесплатность, а на то, что подойдёт ли оно для моих нужд или нет. И говоря о платном ПО, очень важно, чтобы были т.н. усечённые демо-версии, которых можно, собственно, оценить и опробовать прежде чем делать вывод, покупать ли или нет.

У меня есть MikroTik, но он чисто проводной

whl-ppc-001-wohlnet-ru:~/Repos vitaly$ gcc nullstruct.c -o nullstruct
whl-ppc-001-wohlnet-ru:~/Repos vitaly$ ./nullstruct 
0xbffffb08 0xbffffb08 0xbffffb08
whl-ppc-001-wohlnet-ru:~/Repos vitaly$ uname -a
Darwin whl-ppc-001-wohlnet-ru.local 8.11.0 Darwin Kernel Version 8.11.0: Wed Oct 10 18:26:00 PDT 2007; root:xnu-792.24.17~1/RELEASE_PPC Power Macintosh powerpc
whl-ppc-001-wohlnet-ru:~/Repos vitaly$ 

Собрал кусок на старом маке с процессором PowerPC, и, внезапно, адреса одинаковые, и не важно, собираю я через древнючий gcc 4.0.1 или через более свежий gcc 7.3 - результат один - ноль байт.

В итоге, чутка подправил код и собрал на PPC ещё раз:

#include <stdio.h>

struct test
{
};

struct test2
{
    char notNull;
};

int main()
{
    struct test a, a1, a2;
    struct test2 b, b1, b2;
    struct test c, c1, c2;
    struct test2 d, d1, d2;
    printf("[%p %p %p] [%p %p %p] [%p %p %p] [%p %p %p]\n", &a, &a1, &a2, &b, &b1, &b2, &c, &c1, &c2, &d, &d1, &d2);
    printf("[%zu %zu %zu] [%zu %zu %zu] [%zu %zu %zu] [%zu %zu %zu]\n", sizeof(a), sizeof(a1), sizeof(a2), sizeof(b), sizeof(b1), sizeof(b2), sizeof(c), sizeof(c1), sizeof(c2), sizeof(d), sizeof(d1), sizeof(d2));
    return 0;
}

И в результате вот что стало:

whl-ppc-001-wohlnet-ru:~/Repos vitaly$ gcc-7 nullstruct2.c -O0 -o nullstruct2
whl-ppc-001-wohlnet-ru:~/Repos vitaly$ ./nullstruct2 
[0xbffffaf8 0xbffffaf8 0xbffffaf8] [0xbffffaf8 0xbffffaf9 0xbffffafa] [0xbffffafb 0xbffffafb 0xbffffafb] [0xbffffafb 0xbffffafc 0xbffffafd]
[0 0 0] [1 1 1] [0 0 0] [1 1 1]
whl-ppc-001-wohlnet-ru:~/Repos vitaly$

Адреса есть, а вот они сами полностью нулевые... и размер выдаётся за нулевой. Магия, не правда ли? Щас попробую на других архитектурах ещё...

На x86_64 адреса хоть и разные, по одному байту, но sizeof() всегда отаёт полный ноль, как и на PPC32:

vitaly@whl-pc-001l:~/Загрузки/tmp/auto-reinigung$ ./nullstruct2
[0x7fff8fcbc42c 0x7fff8fcbc42d 0x7fff8fcbc42e] [0x7fff8fcbc42f 0x7fff8fcbc430 0x7fff8fcbc431] [0x7fff8fcbc432 0x7fff8fcbc433 0x7fff8fcbc434] [0x7fff8fcbc435 0x7fff8fcbc436 0x7fff8fcbc437]
[0 0 0] [1 1 1] [0 0 0] [1 1 1]


На ARM64 адреса ведут себя похожим образом на x86_64, но как будто они идут в обратном порядке:

vitaly@whl-arm64-001 Repos % clang nullstruct2.c -o nullstruct2   
vitaly@whl-arm64-001 Repos % ./nullstruct2 
[0x16d6435fb 0x16d6435fa 0x16d6435f9] [0x16d6435f8 0x16d6435f7 0x16d6435f6] [0x16d6435f5 0x16d6435f4 0x16d6435f3] [0x16d6435f2 0x16d6435f1 0x16d6435f0]
[0 0 0] [1 1 1] [0 0 0] [1 1 1]
vitaly@whl-arm64-001 Repos % uname -a
Darwin whl-arm64-001.local 23.6.0 Darwin Kernel Version 23.6.0: Wed Jul 31 20:53:05 PDT 2024; root:xnu-10063.141.1.700.5~1/RELEASE_ARM64_T8112 arm64
vitaly@whl-arm64-001 Repos %

А вот на 32-битном x86 ведут себя также, как и на 64-битах:

vitaly@whl-pc-001l:~/Загрузки/tmp/auto-reinigung$ gcc -m32 nullstruct2.c -o nullstruct2-32
vitaly@whl-pc-001l:~/Загрузки/tmp/auto-reinigung$ ./nullstruct2-32
[0xfffed250 0xfffed251 0xfffed252] [0xfffed253 0xfffed254 0xfffed255] [0xfffed256 0xfffed257 0xfffed258] [0xfffed259 0xfffed25a 0xfffed25b]
[0 0 0] [1 1 1] [0 0 0] [1 1 1]



Ещё по приколу попытался собрать через Borland C++3.11 под 16-битный DOS, и вылетела ошибка:

Дай-ка соберу это же на разных архитектурах, и ARM64, и PPC32 тоже...

Я бы предпочёл железо, потому что это первым делом полный физический контроль и ощущение владения всеми данными, какие хранятся на железе. Если и размещать что в облаках, то только по минимуму, всякие морды для массовой доступности, и т.п. А критически важные данные и внутренние ресурсы хранить лучше у себя. Наличие железа в дополнение к облаку позволяет ещё делать свои личные резервные копии всего и вся независимо от провайдера (и что в случае чего можно взять и легко перейти к другому провайдеру или запустить у себя "дома" даже если первый возьмёт и внезапно унесёт все доверенные данные "в могилу").

Какой бы ни был провайдер облаков, ничто не защищает от того, что может случиться с самим провайдером (может взять и накрыться, или произойти какое-нибудь ЧП, например вспомните конфликт собственников МастерХоста, от куда я мигом сбежал, выкачав 27 гигабайт данных).

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

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

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

Добавлю и от себя. Я перешёл на Linux Mint в 2014м году, до этого у меня была Windows 7. Сначала поставил две системы параллельно и планировал так работать и дальше, переключаясь между двумя системами по разным нуждам, ну и приучать себя к Линуху. Но в один прекрасный момент, брат приносит из универа на флэшке вирус (Neshta), он пожирает все исполняшки там, а ещё оседает в запасах моего домашнего сервера, и винда ломается настолько, что даже после лечения, она глюкавая, и её только сносить. И потом отголоски этой Нешты всплывали периодически каждый раз, когда я находил заражённые файлы на сервере. Но с этим покончил раз и навсегда, когда провёл глобальную проверку сервера на вирусы. Но суть одна - "вендекапец!" пусть и из-за Нешты. "Спасибо" белорусу-автору этого вируса за то, что я теперь на Линухи перелез окончательно.

выпускаются дистрибутивы с поддержкой лишь 32-битных процессоров, они тоже обновляются.

Мне кажется или тут ошибочка... Linux-дистрибутивы выпускаются не только под 32-битные процессоры x86, но и под 64-битные, и более того, именно Linux-дистрибутивы доступы на архитектурах как ARM, PowerPC, MIPS, LoongArch, RISC-V, и др. Современный Windows поддерживает лишь x86 (до определённой версии), x86_64 и ARM64. И более того, даже если официальные Linux-дистрибутивы откажутся от какой-то архитектуры, всегда найдутся энтузиасты, которые продолжат неофициальный выпуск туда. Например, CentOS начиная с 7 выпускался только под 64-битные x86, но энтузиасты собирали и версию для 32-битных процессоров, чтобы на старом железе (что до 2006го года 32битные одноядерные Пни-4 и т.п. Или планшеты, у которых BIOS ломаный, который поддерживает только 32-битные загрузчики) взлетало тоже.

Про совет 7: Я так делаю только для заголовков, чтобы они корректно отображались в среде разработки. А что на счёт исходников, тут зависит от проекта и структуры папок. Бывают проекты, где исходники должны включаться в сборку условно, или какая-то фишка проекта включена или выключена, или в зависимости от операционной системы и аппаратной платформы, чтобы не включать всё и вся сразу бездумно. Я сам для своих дел использую среду разработки Qt Creator, и она прекрасно интегрируется с CMake, и прям отдельные проекты для разных платформ мне не нужно, исключение лишь Android, но CMake-проект прямо включён в сборку Gradle, и версия приложения читается скриптом через регулярку из CMake-файла (хотя сначала раздельно писал, но мне это уже надоело, потому что забывал версию обновить то тут, то там).

Я слыхал от разных людей, что произношение у британцев более внятное и чёткое, а американцы говорят бегло и всё сливается, и что сложно понять. Даже вот, мне знакомый американец сам посмеялся, что он сам часто переспрашивает собеседников, потому что не понял суть или не расслышал, что ему сказали. Также американцы по другому произносят согласные, грубее произносят слова с `R r`.

Сначала этим мессенджером начала пользоваться моя мама в начале нулевых, а потом и я сам, уже будучи подростком где-то во второй половине нулевых (2006 / 2007 годы). Мне этот мессенджер очень понравился, хорошо работал на старых компьютерах, какие у меня тогда были (а современных позволить и не могли тогда, семья после развода родителей тогда бедствовала) на Windows 98.

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

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

Дальше, в конце 2014го года я перехожу на Linux с концами, и Агент в основном у меня работал только через Pidgin, и со временем у меня там уже никого не осталось, все стали пользоваться другими месседжерами, а протокол Агента болтался просто так, пока на серверах не отключили потокол MRIM в 2018м году (все агенты версий 5.х и старее, а также сторонние клиенты все хором перестали работать).

С тех пор Агент уже вообще не использовал, пока не вышла ICQ New и новый Агент, который поставил просто так, чтобы изучить, что это такое. За всё это время лишь с одним-двумя товарищами обменялись тестовыми сообщениями и всё. А вся жизнь тем временем во всю кипела в Telegram и Discord.

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

Очень даже живой был! До начала 2010х был моим основным мессенджером и мессенджером моего детства. Мне он нравился в разы больше, чем ICQ, которая работала нестабильно (у меня конкретно), и был менее перегруженным. Все знакомые и друзья мои были именно в Агенте. Использовал тогда версию 4.6 на Windows 98 (на XP перешёл потом, когда нашёл способ гонять драйвер от NT4, чтобы гонять OPL3-чип на C-Media), а старые официальные ICQ-клиенты не работали, требовали обновиться. В итоге либо ломать приходилось клиент (чтобы обойти ругалку), либо ставить Miranda-IM, например. Где-то в конце 2014го года я перешёл на Linux, и дальше подключался к сети Mail-ru-агента через Pidgin, но со временем там уже почти ни с кем из моих уже не общаюсь, либо общался через XMPP, либо через Viber или Skype. К переписке через соц-сети у меня была сильная неприязнь, первым делом за то, что "это надо открывать целый браузер и сайт, и следить за обновлениями сообщений", я был и остаюсь ярым фанатом "родных" программ-месседжеров, которые работают независимо от браузера и имеют более гибкие возможности, чем Веб. И почта у меня только в "толстых" клиентах (первым делом за то, что не люблю лазать за почтой на сайт, а люблю почту гонять в программе-клиенте), раньше пользовался Outlook Express, потом M$ Outlook и сейчас Thunderbird.

Information

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