Portál AbcLinuxu, 30. dubna 2025 09:03
qDebug()ů
, než se zabývat breakpointy. Které taky QtCreator ani neumí nastavit dovnitř lambda funkce. Nebo si je nastavíte do template fce, ale můžete se pak smát, protože ačkoliv je jakoby nastaví, tak nastavené nejsou.
Tiskni
Sdílej:
git worktree
.
Není potřeba kompletní klon, od verze 2.5 máme git worktree
.
Hm, zajímavé, ale jaké to má výhody oproti tomu mít několikero klonů?
Pro mne především
git clone --reference
, ale není to úplně ono.
Zkus Javu. Dělám teď na projektu, který se celý kompiluje cca 1,5 minuty. Pokud to jsou drobné změny uvnitř metody a jsem připojený z IDE (Netbeans) debuggerem k serveru, tak se ani nic nekompiluje, změny se aplikují hned do běžícího programu (stačí si to pozastavit nad tím, kde jsem dělal změny, a pak už to pokračuje novým kódem). Navíc aplikace je modulární (asi třicet OSGi modulů) a dají se nasazovat samostatně, takže to je jen zlomek z těch 1,5 minuty (i když i to je tak málo, že to často nemá cenu řešit – do dvou minut je aplikace kompletně překompilovaná a nasazená).
Dělám teď na projektu, který se celý kompiluje cca 1,5 minuty.To hádám nebude nijak velký projekt... Jinak docela by mě zajímal tvůj postoj k novým JVM-based jazykům jako Clojure, Scala, Kotlin apod. Tahle aplikace nedávno přešla z Javy na Kotlin a ačkoli se mi to ze začátku moc nezdálo (hlavně protože to je neznámý, málo používaný jazyk), nakonec to není špatný. Compile-time null-safety se mi líbí a taky tenhle jazyk dost redukuje boilerplate kód oproti Javě. Autor chtěl původně Scalu, ale stěžoval si na příliš velký runtime.
To hádám nebude nijak velký projekt...
cca 60 služeb (hodně zjednodušeně řečeno: „HTTP API nad databází“) + dalších asi 10 přes protokol ISO 8583. Na počet řádek Java kódu je to celkem málo, nicméně jak tu padlo, samotná kompilace Javy je dost rychlá – jde spíš o tu režii kolem a to je kolem těch 30+ modulů v OSGi potažmo Mavenu, které se musí načít, pořešit jejich závislosti a sestavit (občas se tam generují javové třídy z XSD atd.).
Jinak docela by mě zajímal tvůj postoj k novým JVM-based jazykům jako Clojure, Scala, Kotlin apod.
Jsem za ně rád, líbí se mi, že JVM není vázané jen na jeden jazyk, že je to flexibilní, dá se to různě kombinovat a každý si ve světě JVM může najít to svoje. Nicméně na reálném projektu jsem zatím nic z toho nepoužil. Scala dávala větší smysl před příchodem Javy 8. Clojure resp. něco takhle funkcionálního mě láká, ale je to úplně jiné paradigma, které většině lidí nic neříká (těžko si dovedu představit, že doporučím zákazníkovi dělat projekt v Clojure a on pak bude muset shánět clojuristy, když už teď má problém sehnat dostatek běžných javistů). Kotlin je z nich takový nejstravitelnější, nicméně ani u něj jsem zatím nedošel k tomu, že by výhody byly tak zásadní, aby převážily použití „nestandardního“ jazyka. Mluvím teď o běžných týmových projektech. Něco jiného by byl sólový projekt, kde se nemusím na nikoho ohlížet; nebo týmový projekt (resp. produkt nebo posloupnost projektů) s takřka neomezeným rozpočtem, který umožňuje udržet dlouhodobě stabilní tým a investovat hodně do vzdělávání.
A hlavně: většinou není tím úzkým hrdlem jazyk/technologie, ale lidi…
dost redukuje boilerplate kód oproti Javě
To dělá i takový Lombok a je to jen malá knihovna (navíc potřebná jen v době kompilace, ne při běhu).
V cem buildis? Ant, Maven, Gradle, neco jineho?
Na tomhle projektu Maven. Jinak některé svoje věci mám v Antu.
Hot swapping je samozrejme parada a obvzlast pekny to je pri programovani nejakych grafickych blbosti - zmeny jsou videt ihned v bezicim programu.
Jako ve swingu nebo na webu? Stejně musíš aspoň obnovit stránku nebo zavřít a otevřít okno – že by se tam jen tak objevilo nové tlačítko, to snad nikde nefunguje, ne? Leda změna akce toho tlačítka, to ano. Obecně jde celkem v pohodě přepisovat vnitřky metod, které se pak dají pustit znova (nicméně následky předchozích běhů té metody to samozřejmě neovlivní).
Pri server-side programovani jsem to ale nikdy nevyuzil.
Já spíš hlavně tam. I když zase tak nutné to není – většinou je nejužitečnější debugger, abys věděl, co se tam děje (když už to není na první pohled vidět z kódu) a po opravě stačí přenasadit modul (což když trvá tak vteřinu, tak ani není nutné používat ten hot-swap kódu).
Jako ve swingu nebo na webu?OpenGL.
Stejně musíš aspoň obnovit stránku nebo zavřít a otevřít okno – že by se tam jen tak objevilo nové tlačítko, to snad nikde nefunguje, ne?Ale jo, objeví
Jenže takový Jenkins je pak dost na nic, protože když ta kompilace a testy doběhnou, lidi jsou už doma nebo na odchodu a pracovat na tom budou stejně až druhý den.
Snažil bych se to rozdělit – ať se GUI (GWT) kompiluje jen jednou denně, přes noc – a všechno ostatní (byznys logika a její jednotkové testy) pak bude hotové skoro hned a ta CI bude dávat smysl.
Ja som pomalú kompiláciu kedysi riešil vynútením flagov -O0 a použitím pch (také cca 100MB hovado obsahujúce Qt hlavičky). Nemám skúsenosti s qmake, kedysi som tiež písal projekt v Qt, ktorý sa celý kompiloval asi 15 minút, ale použival som CMake a pri zmene sa rekompilovalo len to, čo bolo nutné.
class A;
Nicméně projekt je potřeba takto vytvářet od samého začátku, zavádění fwd declarations později je pozdě. Je to stejné jako z const-correctness. Tu je také třeba začít hned a ne až později.
Kecy v kleci.
Pokud má být patologické to, že se nestydí, doporučuji se polít studenou vodou.
Pokud má být patologické to, že je (prý) panic, tak
According to the DSM-5, sexual dysfunction requires a person to feel extreme distress and interpersonal strain for a minimum of 6 months (excluding substance or medication-induced sexual dysfunction). (…) A thorough sexual history and assessment of general health and other sexual problems (if any) are very important.
podle je to patologicke
I can't even.
S nemoci
Kterou nemocí.
se vsak da uspesne zit cely zivot, ktery vsak neni plnohodnotny, ale dotycneho to ani nemusi trapit.
…a to má být důvod k opakovaným pokusům o vsugerování méněcennosti.
Bez potomku neni zivot uplny.
Non sequitur.
Řeč byla o panictví, nikoliv o plození potomků.
Jako elementarni soucast zivota je definovano i rozmnozovani, coz se s panictvim vicemene vylucuje.
Z evolučního hlediska je zásadní propagace genetické informace.
V různých společnostech není neobvyklé, že strýčkové de facto adoptují synovce/neteře, čímž zajišťují i propagaci vlastní genetické informace, čímž je vyvrácena souvislost s panictvím.
Takže znovu…
Hodny strycek sice pomuze castecne i sve geneticke informaci, ale jeho sverenec bude mit rozhodne vice ze svych rodicu nez z bezdetneho strycka. Z cehoz nam vyplyva, ze, jak jsi sam rekl zasadni, predani geneticke informace vyhrava rodic a ne hodny strycek. Sice preda genetickou informaci dale, ale ne tolik, pokud by mel vlastni potomky. Nu a z toho jasne plyne, ze opet ten strycek neni plnohodnotny.
Triviální kombinatorika. Strýček má stejný objem genetické informace rozložený mezi dvojnásobek potomků svého sourozence (mimochodem, heterosexuální ženy příbuzné s homosexuály mají více potomků, když už padla zmínka o těch homosexuálech). To se dá chápat i jako rozložení rizik.
Panictvim se clovek pripravuje o prijemne zazitky
Odkud se vzalo ono proslulé „zavři oči a mysli na Anglii“?
provozovani cinnosti, ktera je nasemu druhu a dalsim primatum vlastni - kopulace ne nutne vedouci k rozmnozeni
Appeal to nature.
OMG. To uz je imho patologicky stav.Může a nemusí.
Pochopil jsem, ze empatie je slabost.Jasně, proto taky ženský tak nesnášej, když je chlap empatickej. To jsou pak takový ty klasický ženský stížnosti jako Ty mě furt tak chápeš, to je hrozný, nemohl bys být trochu sebestřednější a trochu víc na mě kašlat? a podobně
Ale oznacit toto za patologicke?Opravdu nevím, co by ještě mělo k té patologičnosti chybět. Dělá to na mě dojem, že od nějakých závažnějších zvěrstev na ostatních lidech tě dělí v podstatě jen zákon a společenské normy, vlastní hlava ale zjevně ne.
Jasně, proto taky ženský tak nesnášej, když je chlap empatickej. To jsou pak takový ty klasický ženský stížnosti jako Ty mě furt tak chápeš, to je hrozný, nemohl bys být trochu sebestřednější a trochu víc na mě kašlat? a podobně
Relevantní: When Empathy Matters: The Role of Sex and Empathy in Close Friendships
Jasně, proto taky ženský tak nesnášej, když je chlap empatickej. To jsou pak takový ty klasický ženský stížnosti jako Ty mě furt tak chápeš, to je hrozný, nemohl bys být trochu sebestřednější a trochu víc na mě kašlat? a podobněTakhle sice ne, ale jedna holka mi kdysi řekla, že jsem hodnej. Tak jsem pochopil, že nemám šanci, a šel jsem o dům dál.
Hodnych noumu je vsude plno a vetsinou jsou single.Stejně tak je plno hodných ňoumů, kteří nosí domů peníze a manželka jim organizuje život (nebo i něco horšího). Mám minimálně dva takové kolegy - manželku poslouchají na slovo, sami si nemůžou bez dovolení koupit snad ani myš k počítači, a pak si snaží honit ego na lidech v práci.
Pochopil jsem, ze empatie je slabost.To je přece blbost. Empatie znamená, že se vcítíš do role druhého člověka, pochopíš jeho pocity a motivy. To je dost užitečná schopnost, která se hodí i při jednání s nepřáteli. Není to o tom, že se těm jeho pocitům a motivům budeš snažit vyhovět a nebo je respektovat. Myslím, že empatie je dost důležitá i pro asociála nebo psychopata, aby mohl dlouhodobě přežívat a společnost ho nezlikvidovala. Je to trochu jako s trollingem - trol musí být inteligentní a vzdělaný, jinak to těžko někam dotáhne, nebude úspěšný.
To, co jsi popsal, je socialni inteligence, nikoli empatie.No, ne tak úplně. Sociální inteligence je mnohem víc "high-level" koncpt. Jsou to spíš dva typy empatie: Afektivní a kognitivní. Psychopatům zřejmě chybí pouze ta první, navíc asi jen částečně nebo je nějak deaktivovaná (neví se přesně). No na Odina to docela sedí
V práci změním řádek kódu v hlavičkovém souboru a rekompiluje se 3/4 projektu, dobrých 15-20 minut.To buď rád, že neděláš ve VHDL, tam změníš řádek a čekáš 50 minut než ti implementace ohlásí, že selhalo časování (kvůli tomu řádku) a můžeš začít znova
Na viacjadrovom procesore pouzivam pre make prepinac -jBTW: jakou hodnotu používáš? Já většinou dvojnásobek počtu jader. Kdybych dal stejně, jako mám jader, přijde mi, že se CPU fláká a brzdí to disk. Ale nevím, jestli ten dvojnásobek je optimální - zvlášť když jádra nejsou úplně plnohodnotná/samostatná (viz hyperthreading nebo jeho obdoba u AMD). P.S. kompilujete někdo čistě v RAMce? Myslím tím hodit adresář se zdrojáky i výstupem do tmpfs nebo na blokové zařízení v RAMce (a nad tím nějaký FS) - co je lepší?
Kdybych dal stejně, jako mám jader, přijde mi, že se CPU fláká a brzdí to disk.
Pokud zrovna nepřekládáte LibreOffice, dělejte to na tmpfs a žádný disk to brzdit nebude. Nebo aspoň na SSD.
viz hyperthreading nebo jeho obdoba u AMD
To je neuvěřitelné, jak se tenhle blud podařilo Intelu natlačit lidem do hlav.
kompilujete někdo čistě v RAMce?
Samozřejmě.
To je neuvěřitelné, jak se tenhle blud podařilo Intelu natlačit lidem do hlav.Co tim myslis?
tak by je GCC mohlo časem používat (pokud to devel verze neumí už teď)Gcc podporuje AVX tusim od verze 4.6 (Fedora 15); tyhle veci jsou v poslednich letech podporovany drive, ze nez je HW k dostani na trhu.
Jak myslíš vektorové integer jednotce? Z toho obrázku beru, že ten prostřední blok je x87, MMX, SSE a AVX :-/.OK, ono je to mnohem komplikovanejsi. AMD narozdil od Intelu pouziva oddeleny scheduler pro interger a floating point operace, a vypocetni jednotky. U integer SIMD operaci vypocet probiha na floating point bloku, ale retirement status uop a memory operace jsou delany integer jadrem. Na designu AMD CPU je IMHO videt vliv lidi navrhujici GPU.
Jo cache byla na AMD procesorech vždycky hodně malá,Problem neni velikost, ale latence a konflikty, ktere snizuji efektivni IPC.
A to by pak dva GCC procesy soutěžily, kdo z nich ten blok použije.To jsem zminoval vcera dole - FPU utahne obe jadra s vyjimkou AVX.
Procesor od Itelu se čtyřmi jádry se při zapnutí HT v OS jeví jako osmijádrový. Výkon by měl být vyšší než s vypnutým HT. Ale zároveň platí, že čtyřjádrový procesor s HT bude méně výkonný (za jinak stejných okolností) než osmijádrový (i když z pohledu OS vypadají oba jako osmijádrové).
Jenže, každý modul obsahuje jednu FPU a tato FPU může být použita pouze jedním jádrem (celá věc je ale mnohem složitější, protože pokud jádro nepotřebuje plnou šířku FPU, tak je stále možné ji používat i současně v druhém jádře - různé moduly mohou mít jinak nastavené sdílení FPU apod.).Omezujici jsou v podstate jen AVX instrukce, ktere byly pridany na posledni chvili, nebot drive nebylo jasne jak to Intel udela.
lscpu
to bohužel ukazuje podobně, např. čtyřjádrová FX-4350:
Architecture: x86_64 CPU op-mode(s): 32-bit, 64-bit Byte Order: Little Endian CPU(s): 4 On-line CPU(s) list: 0-3 Thread(s) per core: 2 Core(s) per socket: 2 Socket(s): 1 NUMA node(s): 1 ...
Na dvoujádru s hyperthreadingem ta čísla budou stejná. Je to trik, jak přimět scheduler, aby neobsazoval jádra ve stejném modulu, dokud nemusí, ale bohužel to podporuje šíření té zkreslené představy, o které jsem mluvil.
To je neuvěřitelné, jak se tenhle blud podařilo Intelu natlačit lidem do hlav.+1
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.