Inlägg

Inlägg som anon362173 har skrivit i forumet
Av anon362173

KDE fungerar generellt bättre och stabilare än Gnome/GTK-baserade fönsterhanterare. Så där slog du huvudet på spiken!

Fedora är rätt najs med, men PopOS lär ha bättre stöd i övrigt om du gillar att gamea och sånt. Det går att installera KDE i PopOS med.

Arch Linux med KDE är svårslaget dock, när man blivit en lite mer avancerad användare.

Av anon362173

Finns en regel inom utveckling rent generellt; Ju kraftigare hårdvara vi får tillgång till, desto latare blir utvecklarna.

Av anon362173
Skrivet av Ingetledigtnamn:

Nu skall vi vara noga med vad _du vill kunna_ göra och vad _man måste_ göra. Baserat på 80/20-regeln vågar jag påstå att för minst 80% av all programvara spelar det ingen som helst roll om du har kört minneshanteringen via STLs make_shared/make_unique eller via en noggrant uttänkt modell där du hanterar minnet själv med new och delete. Du kommer spendera mer tid väntandes på nätverket, disk I/O eller user input än du kör din kod så du kommer inte märka av den overhead STL introducerar. I de fall där du kan märka någon skillnad är det fortfarande 80% av koden som är helt irrelevant att optimera. Enligt mina uppskattningar är det 4% av koden där du kan få brilliera med dina kunskaper

De kvarvarande 96% av koden måste inte skrivas supereffektiv. Ute i den bistra verkligheten är ofta utvecklingstiden långt viktigare än prestanda och smarta pekare hjälper till att korta utvecklingstiden genom att avlasta utvecklarhjärnorna. Du skriver "väldigt brett spann på kodkvalitet", vad menar du med kodkvalité? För de flesta företag är kodkvalité a) korrekt kod och b) enkel och lättförståelig kod som är lätt (för andra) att göra ändringar i. Skulle tro att topprestanda kommer ganska långt ner på listan, det är nog mer en nice-to-have. Smarta pekare gör även språket mer tillgängligt för mindre erfarna utvecklare och hjälper dem göra färre misstag. Jag har svårt att se hur världen skulle vara bättre utan smarta pekare.

Jag förstår din poäng, men du missar en detalj: Många bäckar små.

Windows 95 rekommenderade specifikationer var en ancient singlecore 386 på 12.5MHz, 4MB arbetsminne, och 50MB diskutrymme.

Windows 11 rekommenderade specifikationer är modern dualcore 2000 MHz, 4000MB arbetsminne, och 64000MB diskutrymme.

Nog finns det vissa förbättringar här som befogar dom ökade kraven, men om 80% av koden är skriven slappt som du säger, så är det inte jättekonstigt att tänka sig att en majoritet av dessa ökade krav kommer från slappt skriven kod.

Detta är inte bara tillämpbart för Windows såklart, detta gäller nästan all mjukvara idag. Desto kraftfullare hårdvara vi får, desto slappare blir utvecklare. Och jag hatar det!

Tänk vad mycket prestanda som ligger på bordet här, som blir helt bortslösat på slappt kodhantverk.

Är programmering bara ens dagjobb och inget mer, dvs. man vill bara få arbetsdagen klar, man skiter i kvalitet på denna nivå, ja då är säkert (o-)"smart" minneshantering jättebra.

Men bryr man sig det minsta om hantverket man utför så ger man mer effort än såhär, tycker jag. Tänk om alla utvecklare var lika mycket neuropatiska autister som jag själv, och la 15% mer arbetskraft på att alltid göra saker ordentligt? Kan du tänka dig hur mycket processeringskraft, minne osv. vi hade haft idag? All mjukvara hade varit sinnessjukt snabb i jämförelse med skräpet som finns idag.

Utopiskt, javisst. Men jag tycker ändå man kan försöka bryta denna lathetstrend.

Tillägg: Och skiter man i detta, ja men använd C# eller Java istället. C++ ger dig ingenting i dessa fall!

Av anon362173

Mitt bästa tips är att skapa något praktiskt, med ett syfte. Sen googlar du dig igenom varje hinder på vägen. Ett bra sätt att lära sig!

Exempel: ett python skript som laddar ner alla bilder från en webbaddress och zippar ihop dom.

Sedan ett webb backend (typ django?) som kan ta requests på webbadresser att ladda ner bilder från, och skickar tillbaks ett token. Detta token kan sen användas för ytterligare requests för att se om arbetet är klart eller få progress, samt få en nedladdningslänk till zippen med bilderna när det är klart.

Detta är bara ett random exempel, det bästa är om du hittar ett exempel som hjälper dig själv i vardagen.

Av anon362173
Skrivet av Ingetledigtnamn:

Skriver du idiomatisk modern C++-kod behöver du inte kunna hantera minnet själv. Standardbiblioteket sköter det åt dig! Det går sedan 14 år alldeles utmärkt att skriva C++-program med dynamiskt minne utan att använda new och delete. På vilket sätt blir det bättre kodkvalité om man envisas med att själv hantera minnet med new och delete?

Vill du faktiskt dra nytta av att du använder ett native språk så _vill du_ hantera minnet själv. Du vill kunna göra det för att hantera minneslokalitet, undvika onödigt frekventa eller små allokeringar, optimera minnesaccess för cache coherency/locality och så vidare. Det finns ett väldigt brett spann på kodkvalitet när det kommer till C/C++, och du kommer _aldrig_ att uppnå dom högsta nivåerna om du är lat med din minneshantering. Du _VILL_ veta precis hur var och när ditt minne allokeras, läses, skrivs, fetchas till cache på olika trådar och så vidare. Bra eller dåligt skriven kod här kan vara skillnaden på flera storleksordningar i exekveringstider/prestanda.

Om du inte gör det kan du lika gärna använda C# eller ett annat högnivå-språk med GC, runtime/AOT/JIT osv. istället. Men oavsett blir du ju också kvar med usel prestanda i jämförelse som resultat.

Av anon362173

Multimonitor kommer fungera med flera grafikkort, däremot fungerar billigare lösningar också, som till exempel DisplayPort splitters som faktiskt fungerar för att uttöka antalet skärmar (utan att bara mirrora).

Med det sagt, du kommer förmodligen inte få högre prestanda, om detta är något du är ute efter. Dom valen som finns för att få högre prestanda med två kort är:

1. NVLink, men detta fungerar bara mellan två grafikkort av samma modell.
2. Spel har support för att använda sig av mer än ett grafikkort samtidigt (till exempel, köra fysik simulationer på ett och rendera på ett). I praktiken är det en försvinnande liten del av spel som faktiskt stödjer detta.
3. Du kan assigna specifika grafikkort till specifika applikationer, dvs köra AI modeller på ett medans du gamear på ett annat.

Av anon362173
Skrivet av Ingetledigtnamn:

Nu blir jag besviken, har du sagt A får du väl lov att säga B också? Jag väntar fortfarande på att få veta vilka negativa effekter smarta pekare har på kodkvalité. Nu vill jag veta hur orsakssambanden ser ut. Är det så att man använder smarta pekare om man är slö, lat och inkompetent eller är det så man blir slö, lat och inkompetent av att använda smarta pekare?

Jag håller med om att kompetens hos utvecklarna är ett problem. Men beaktande att vi har horder med medelbegåvade programmerare, på vilket sätt skulle världen bli bättre om de inte hade smarta pekare till hjälp? Skulle de automatiskt bli bättre programmerare om du tog bort stödhjulen eller skulle vi bara få ännu längre utvecklingstid och ännu fler buggar i släppt programvara? På vilket sätt blir programvara mer robust av att man, som du, envisas med att skriva boilerplate-kod själv? Tar det inte bara längre tid och introducerar fler buggar? Bibliotekskoden brukar vara ganska välskriven och vältestad.

Jag har programmerat yrkesverksamt i C och C++ sedan examen från KTH 1990, så jag tror jag kvalar in i kategorin "kodat ett tag". Ja, jo, new och delete, precis som malloc och free, sitter nog i ryggmärgen, men jag tar tacksamt emot allting som gör att jag slipper skriva kod. Du får tycka att jag är lat, själv tycker jag att det är smart. Jag ägnar mina hjärncykler till att lösa det verkliga problemet, snarare än att lösa problem som programspråket skulle hantera åt dig om du bara tog ett steg in i framtiden, om nu C++11 kan ses som framtiden

Vet inte vad du förväntar dig att jag ska svara på sådant här dravel? Själv kodar jag en blandning av C++17/20.

Av anon362173
Skrivet av Ingetledigtnamn:

men jag slipper komma ihåg att göra saker och jag slipper minnesfel

precis så här. uppmuntrar slappa lata och ibland inkompetenta utvecklare, tror du verkligen att den resulterade koden blir gedigen med denna approach? skill issue att få minnes problem för att man inte använder smarta pekare dessutom, sånt sitter i ryggmärgen när man kodat ett tag.

låter denna kommentar sätta punkt på denna diskussionen för mig. vill du vara lat så kör hårt själv föredrar jag att göra saker ordentligt. enda sättet att få robust kod påriktigt..

Av anon362173
Skrivet av Ingetledigtnamn:

Jag tror du tar i när du skriver "det är så det är tänkt från början". Det är nog inte så att Bjarne tänkte att C++ skulle ha raw pointers och att det var så man skulle jobba. De ärvdes helt enkelt från C. De smarta pekarna handlar om att göra det svårare att göra fel och där fyller till och med unique_ptr ett syfte. Det är solklart vem som äger objektet och det kommer automatiskt deallokeras när det går ut scope.

Färre saker jag slipper tänka på som programmerare gör livet enklare. Är implementationen av de smarta pekarna komplexare än att köra raw pointers, javisst, men det är ett pris de flesta av oss är villiga att betala för att vi slipper göra delete och ingen kommer oavsiktligt accessa ett dött objekt. Är det så prestandakritiskt att du inte vill betala det priset finns get() så är det precis lika snabbt och (o)säkert som din kod med raw pointers.

Du kan fortsätta att använda new och delete. Det funkar fortfarande

Hade bjarne haft något annat i åtanke så hade bjarne implementerat det.

Jag förstår syftet med unique_ptr's, jag gillar det bara inte. Det uppmuntrar amatörmässig kod, och har således en kontraproduktiv effekt. Det är som sagt dessutom bara stödhjul. Nej, man behöver inte använda det, men det behöver faktiskt inte existera till att börja med.

Allt som hanterar minne i C och C++ arbetar med "råa pekare" på något lager. Allt ovanpå är helt enkelt extra komplexitet. Ibland är den komplexiteten en kostnad för funktionalitet som är befogad och bra, men i detta fallet är det en kostnad som kodmässigt inte tillför någon funktionalitet. Det tillför dock som du säger något till programmerare som väljer att vara lata och inkompetenta, men det är viktigt att komma ihåg att det har en kostnad för den resulterande kodkvaliteten också.

Av anon362173
Skrivet av Perkoff:

Extra lager implicerar inte högre komplexitet. En så pass trivial sak som inkapsling (OOP) innebär ett extra lager, men kan göra kod lättare att underhålla.

Bolaget har en medianlön på $135K, så nej, inte direkt låg konkurrens om platserna där.

Om det minskar antalet buggar tyder väl det på att det är bra för något…? Men visst, det är omaaanligt att använda sig av en modern style guide som minskar antalet buggar…

Jag tror att du saknar definitionen i ditt vokabulär av vad kodkomplexitet faktiskt betyder.

Vi tycks vara hyffsat oense om detta dock, och känner inte att vidare diskussion skulle tillföra mycket. Men råder dig att sätta dig in i C/C++ ordentligt, på hur det traditionellt används, och hur det används av veteraner inom spelindustrin till exempel. Nu låter jag säker inte jätte ödmjuk, men jag tror det kanske krävs mycket praktiskt erfarenhet av just C/c++ för att se poängen av jag försöker lyfta här.

Av anon362173
Skrivet av Moseby:

Senaste ~2 åren har jag upplevt tillfälliga episoder av trötthet/orklöshet, kroppen känns svag och jag blir väldigt trött. Kunde hänga i sig 10-40 minuter.

Nu senaste 2 månaderna har det eskalerat till den grad att 1-2 ggr i veckan får jag episoder av trötthet så pass att jag inte ens orkar hålla/lyfta någonting eller ens stå upp. Förra veckan fick jag lämna över dottern till min fru då jag trodde att jag skulle svimma. Det svartnar framför ögonen liksom och det känns som att kroppen ska klappa ihop bara. Ingen ork i armar eller knän.

Nu har jag varit hos VC ett tag för det här men blodprover visar inget speciellt. Har några gånger fått svart på vitt att blodtrycket är svajigt men lyckas inte "framkalla" det alltid på VC utan det är bara om jag lyckas tajma med en sån episod som man ser att blodtrycket är otroligt lågt. Men inga tecken på diabetes eller några brister på något.

Har nu efter senaste besöket fått remiss för MR röntgen av hjärnan då läkaren vill utesluta tumörer. Har inte trott att det skulle vara något allvarligt förrän efter besöket. Finns liksom inga bra förklaringar på varför det här eskalerar eller sker över huvudtaget och läkaren verkade själv orolig. Tankarna spinner såklart iväg med 3 små barn hemma men jag hoppas att det finns någon rimligare förklaring till det hela.

Tror du kan vara lugn. Har själv 3 barn och känner igen mig. Får sådär i perioder, jag tror att det är stress helt enkelt. Människokroppen är inte designad alls för dagens vardag, vi är evolverade till något helt annat; Män är ute och röjer, jagar vilda djur, krigar och slåss mot andra, och kommer sedan hem och blir omhändertagna och omplåstrade av kvinnorna i stammen. Kvinnorna å sin sida tar hand om stammens barn, tar hand om männen, hemmen, matlagning och så vidare. Man kan säga att det jag skriver nu är "sexistiskt och omodernt!" men det är vad vi evolverat till att klara av.

Istället sitter männen idag framför kontorsarbete, med hjärnor som är byggda för att känna av och hantera inkommande hot. Vi får aldrig några hot och aldrig några utlopp för fysiskt våld osv. Så istället får vi ångest, stress och djävulskap. Till råga på allt ska vi vara "pappor" nuförtiden och ta allt från utvecklingssamtal till att leka i sandlådan, laga mat till barnen och allt annat som hör till. Vi är helt enkelt inte byggd för det, så därför blir vi stressade.

Mitt råd är att jobba på att stressa ner litegrann, och försöka hitta utlopp i livet som kan stimulera din grottmänniskohjärna. Jakt, styrketräning, lite mer adrenalinfyllda saker som att köra snabbt och vårdslöst med bilar (under hyffsat kontrollerade former), hänga med "grabbarna" och känna på mer traditionellt brödraskap.

Av anon362173
Skrivet av perost:

Drivrutinerna är bara delen som pratar med hårdvaran, det behövs även userspace-bibliotek som implementerar t.ex. OpenGL, Vulkan, och tillverkarnas GPGPU-lösningar som t.ex. CUDA och ROCm. Så oavsett vilken tillverkare du väljer så kommer du behöva installera extra paket. Men så länge som du installerar allt via pakethanteraren så uppdateras ju allt tillsammans oavsett.

En del av GPU drivrutinerna är en implementering av OpenGL, Vulkan osv. I Linux fall använder man Mesa för denna delen, som streamlinear stora delar av denna implementering. Men drivrutinen behöver ändå erbjuda en integration mot dessa lager.

Av anon362173
Skrivet av Perkoff:

Varför blir det mer komplext?
Jag skulle snarare säga att det blir *mindre* komplext eftersom ägandeskapet blir glasklart.

Rent kodmässigt blir det högre komplexitet. Det är ett extra lager ovanpå vanliga pekare, med tillhörande regler, rekommendationer osv. Det tillför dessutom ingen konkret funktionalitet, mer än ett påtvingande programmerarbeteende, som inte alltid är positivt.

Skrivet av Perkoff:

Detta är ett icke-argument. Varför tror du att Google C++ Style Guide uppmuntrar till användningen?

Google rekommenderar dessa stödhjul, eftersom att Google investerar mycket i billig arbetskraft i bulk, och som du säkert vet så får man vad man betalar för (inkompetenta programmerare). I google's fall så fungerar dessa stödhjul till att minska antalet buggar i koden, eftersom att en stor del av deras programmerare är inkompetenta techbros.

Smarta pekare finns endast till för att kompensera för osmarta utvecklare. Och dom gör i princip alltid kodbasen sämre, om inte annat för att det ökar komplexiteten i koden.

Av anon362173
Skrivet av Erik_T:

Embedded programmering täcker ju ett brett spektrum av system och problem. Allt från system utan några stora prestandakrav där man skulle kunna använda olika skriptspråk utan problem, till små system med minimalt minne och hårda realtidskrav där i stort sett bara C och assembler är realistiska alternativ.

För tunga beräkningar av olika slag så finns det ju en lång tradition av att använda Fortran, som i sina moderna inkarnationer (Fortran 90 och senare) inte är så dumt.

Embedded kännetecknas nästan alltid av begränsade systemresurser, men också möjligheter för hårdvaruspecifika optimeringar. Att använda något annat än ett native språk blir då ganska slössamt.

C och C++ hanterar tunga beräkningar precis lika bra som Fortran, som också är ganska nischat idag.

Av anon362173
Skrivet av Perkoff:

Vad är det i Modern C++ (säg version 17 eller 20) som du tycker är svårt / problematiskt / onödigt komplext?

T.ex. varför är raw pointers bättre än std::unique_ptr? (Vilket någon annan i tråden hävdade)

Dom försöker ändra C++ till något det absolut inte är; Ett högnivå språk. Det blir högre komplexitet, helt i onödan, och således ett sämre språk att jobba med.

Raw pointers (eller bara pekare) är vad C++ alltid har haft, och det finns inget fel med det. Det är lågnivå av en anledning och krävs en del kompetens för att inte göra misstag, men det är så det är tänkt från början. Unique_ptr är en krycka för n00bs som vill hävda sig vara grymma programmerare. Det tillför ingenting annat än onödig komplexitet och en inbillad prestige.

Istället för att fråga varför pekare är bättre än "smarta pekare", ställ dig frågan varför behövs ens "smarta" pekare? Bortsett från shared_ptr och weak_ptr som kan vara användbara (dock i min åsikt så bör man oftast själv implementera sådan funktionalitet om man behöver det, då shared/weak är extremt generiska implementationer).

Det finns också en mörk sanning kring utvecklingen av C++, som involverar en trend av mental ohälsa som påverkar hela industrin negativt (som även påverkar C++ consortium). Detta är dock inget jag vill vidareutveckla i tråden, men eftersök själv i ämnet om du är nyfiken.

Försök inte laga något som inte är trasigt, säger jag bara

Av anon362173
Skrivet av Rouge of Darkness:

så troligen är svaret som alltid allt EA tar i förvandlas till skit.

Tyvärr är det så. Har varit utvecklare i en spelstudio under EA, och kan säga att det är förmodligen 10x värre internt sett än vad man ser utåt. Corporate till 1000x, ingen själ tillåts i något spel.

Av anon362173
Skrivet av ehskha:

Vad menar du inte hade multiplayer? Går att spela upp till 8 pers både online och lokalt lan...

Tror dom stängt av online servrarna.

Av anon362173

Bra resurs!

Hur mäter sig RA3 mot RA1 och RA2? Vet att jag köpte Generals och Zero Hour men refundade när jag insåg att det inte hade multiplayer. Kanske köper det igen i och med detta

Av anon362173
Skrivet av dlq84:

Hur loggar du in på myndigheters webbsidor med ett fysiskt ID?

Det gör jag inte, jag använder BankID friskt. Min poäng är mer, hur loggar du in på myndigheters webbsidor, swish osv när Swedbank bestämmer sig för att ditt användningsmönster går i linje med penningtvätt och spärrar dig från att någonsin skaffa ett nytt BankID?

Gillar inte utvecklingen bara. Tycker att man bör gå tillbaka mer till det fysiska. Koddosa funkar bra för banken, vanliga inloggningsmetoder fungerade bra för myndigheter förr. Gör man alltid beroende av BankID så lämnar man väldigt mycket kontroll till myndigheter och banker, som på senare år även har gjort privatpersoner till måltavlor av rent politiska skäl (i Kanada till exempel). Det kommer till Sverige det med förr eller senare.

Av anon362173

Huvvaligen. Givet att vissa banker permanent spärrar helt vanliga användare från BankID (även från andra banker), så känns inte detta som en positiv utveckling.

Fysiska ID-kort och cash är vägen framåt.... Vill jag inbilla mig.