Portál AbcLinuxu, 30. dubna 2025 11:06
Ale různí stackoverflow kopírovači, samouci a absolventi různých 3 měsíčních rychlokurzů se asi třesou strachy.
Drž se zpátky jo? Ten kdo se naučil sám prgat se stejně dobře naučí i cokoliv jiného. O bydlo se klepou hlavně držitelé papíru na titul co jsou zvyklí všechno okecat, ochcat a přehodit na ty co skutečně něco umí, přestože na to žádný papír nemají.
Já teda nejsem takový optimista. Podle mě je to super na prototyping kódu nebo rychlé rešerše na neznámá témata (např. při příznacích nemocí mimina to je lepší než cokoliv lidi píšou na net). Rychle to nabastlí kód, který většinou funguje a můžu si tak vyzkoušet nové jazyky nebo knihovny. Pro produkční kód je to ale zatím mnohem horší než kombinace stackoverflow + dokumentace. Pro udržování kódu mu stejně musím rozumět, tak se dokumentaci nevyhnu a stackoverflow dělá dost podobné věci jako AI, ale mám tam hned v komentářích připomínky, takže to řešení už je většinou dost dobře zkontrolované lidmi.Jasně že mu musíš rozumět, ale pořád to zvládá napsat ty nudnější a těžké části samo. Třeba s tím boto3 je to často fakt totální nuda, ale neznamená to, že by to bylo lehké. Například, co já vím, potřeboval jsem nějak iterovat přes nějaký seznam EC2, do toho to kombinovat s něčím jiným a filtrovat podle něčeho dalšího. Naprosto nic z toho není těžké co se týče toho co děláš, ale je to těžké tím že AWS je banda dementů co si všechny objekty v boto3 generuje dynamicky za běhu, takže se nemůžeš podívat do zdrojáku a nápověda IDE nefunguje. Dostaneš zpět nějaký objekt, a buď jdi číst dokumentaci a v pěti tabech, protože pracuješ třeba s EC2, S3 a DynamoDB, některé věci (pod-objekty pod-objektů) co podle názvu a popisu v dokumentaci třeba obsahují IP adresy EC2 je neobsahují a tak podobně. Je to taková malá detektivka v interaktivním shellu prvně. GPT4 to nastřelí na první dobrou.
Z use casů co píšeš mi přijde, že body 1-6 jsou právě o prototypingu. Nebo to reálně použiješ tak, že potom ty kódy někam uložíš a plánuješ to dlouhodobě udržovat? Jestli jo, tak by mě hodně zajímalo, co na to řekneš třeba za rok.Já si tím nenechávám generovat celé zdrojáky (což teda taky +- umí, včetně refactoringu a dokumentace), ale spíš menší části.
Mám pocit, že tyhle tooly programátory zatím nemají šanci nahradit. Ale různí stackoverflow kopírovači, samouci a absolventi různých 3 měsíčních rychlokurzů se asi třesou strachy. Super ale je, že to dost zpřístupňuje programování lidem co o tom nemají ani páru. Teď si můžou generovat rozumně použitelné kódy pro svoje použití.Tady jde spíš o ten trend. GPT4 je masivně lepší než trojka, do té míry že máš občas pocit že se fakt bavíš s člověkem. Člověkem, který třeba schopný opravovat vlastní chyby, a formou konverzace většinou dodat co po něm chceš. Jestli bude pětka podobně lepší než čtyřka, tak se blíží konec, protože prostě nikdo nebude platit za programátory, když tohle udělá stejnou práci na pět centů.
Jestli bude pětka podobně lepší než čtyřka, tak se blíží konec, protože prostě nikdo nebude platit za programátory, když tohle udělá stejnou práci na pět centů.Stanové kempy v ulicích San Francisca se rozrostou.
což teda taky +- umí, včetně refactoringu a dokumentace)
Tady jde spíš o ten trend. GPT4 je masivně lepší než trojka, do té míry že máš občas pocit že se fakt bavíš s člověkem. Člověkem, který třeba schopný opravovat vlastní chyby, a formou konverzace většinou dodat co po něm chceš. Jestli bude pětka podobně lepší než čtyřka, tak se blíží konec, protože prostě nikdo nebude platit za programátory, když tohle udělá stejnou práci na pět centů.Tohle je podle me past nebo mozna slepa vetev vyvoje. Pokud se dostaneme do faze, ze GPT-X bude generovat funkcni programy, aniz by byli potreba programatori, budou programy existovat pouze ve forme promptu a programovaci jazyky budou plnit ulohu, kterou dnes ma assembler. Problem je, ze jazyky urcene pro komunikaci mezi lidmi maji znacnou miru redundance, spatne se v nich strukturuji informace a moznosti kompozice/dekompozice jsou taky omezene. Proto si taky ruzne discipliny (matematici, inzenyri, stavari) vymysleli vlastni podmnoziny jazyka, ktere aktivne pouzivaji. Sprava programu, ktery bude jako prompt, neni z principu problem, bude to jen sada zmen aplikovanych v case. Neco, co se dnes bezne pouziva v pravnich textech, neco jako. Posledni veta v paragrafu 42 se za carkou rusi a je nahrazena textem "dle paragrafu 43". Uz se na to tesim.
Pokud se dostaneme do faze, ze GPT-X bude generovat funkcni programy, aniz by byli potreba programatori, budou programy existovat pouze ve forme promptu a programovaci jazyky budou plnit ulohu, kterou dnes ma assembler.Ty programovací jazyky tu úlohu plní už teď (typicky máš někde nějaké zadání, tickety a pak taky dokumentaci, z toho vzniká zdroják). Předpokládáš taky z nějakého důvodu, že to bude podobně jednosměrné jako asm. Například s GPT4 můžeš už teď vést dialog a starý prompt tě vůbec nezajímá. Hodíš zdroják, řekneš "doprogramuj tam X" a on to udělá, protože je schopný ho číst a rozumět mu. Co se týče té praktické stránky použití pro programování, tak to podle mě vnímáš nějak .. jinak. V tomhle ohledu je vhodná abstrakce si to představit jako pracovníka, který udělá co po něm chceš skoro zadarmo a během minuty.
Předpokládáš taky z nějakého důvodu, že to bude podobně jednosměrné jako asmTento predpoklad je prirozenym dusledkem tvrzeni, ze nikdo nebude platit programatory. Jinymi slovy dneska je autoritativnim zdrojem kod a jeho dokumentace. Pokud zacne prevazovat generovani kodu pomoci AI, nebudou existovat programatori, kteri by tem nizsim jazykum rozumeli, a tak se autoritativnim zdrojem popisujicim, co program ma delat a proc, stanou tickety, resp. prompty pro AI.
Co se týče té praktické stránky použití pro programování, tak to podle mě vnímáš nějak .. jinak.Tuhle stranku chapu, ale snazim se dohlednout dusledku.
V tomhle ohledu je vhodná abstrakce si to představit jako pracovníka, který udělá co po něm chceš skoro zadarmo a během minuty.Tento pristup chapu, ta myslenka je strasne lakava, ale mam s ni dva problemy. (1) Opravdu bude prospesne neco, co bude na povel generovat kod? Vysledkem budou tuny radku nizkourovnoveho kodu, ve kterych se vyzna prave jen AI, protoze programatori ztrati potrebu hledat a vytvaret abstrakce, aby se kod zjednodusil. Proc taky, kdyz upravy zajisti AI? Nekdy [cti: casto] je mene kodu vice. (2) Jak jsem psal vyse, tato abstrakce (v podobe lidskeho jazyka) je spatna, protoze redundance, spatna komponovatelnost, ... Srovnej s makry v rozumnem makro jazyce [cti: dialekt LISPu], ty resi stejny problem (generovani kodu), ale netrpi temito neduhy.
Jinymi slovy dneska je autoritativnim zdrojem kod a jeho dokumentace. Pokud zacne prevazovat generovani kodu pomoci AI, nebudou existovat programatori, kteri by tem nizsim jazykum rozumeli, a tak se autoritativnim zdrojem popisujicim, co program ma delat a proc, stanou tickety, resp. prompty pro AI.To uz se prece stalo. Neni to tak davno, co autoritativnim zdrojem bylo schema zapojeni tranzistoru nebo, pozdeji, krabice dernych stitku. Pak prisel Fortran, BASIC, C, Python a programatori uz jen pisou prompty v IDE bez porozumeni nizsim urovnim.
Opravdu bude prospesne neco, co bude na povel generovat kod? Vysledkem budou tuny radku nizkourovnoveho kodu, ve kterych se vyzna prave jen AI, protoze programatori ztrati potrebu hledat a vytvaret abstrakce, aby se kod zjednodusil.Vadi to? Pri beznem pouziti ne, a lidi co nizkourovnove porozumeni maji, si ho nechaji kralovsky zaplatit.
To uz se prece stalo. Neni to tak davno, co autoritativnim zdrojem bylo schema zapojeni tranzistoru nebo, pozdeji, krabice dernych stitku. Pak prisel Fortran, BASIC, C, Python a programatori uz jen pisou prompty v IDE bez porozumeni nizsim urovnim.Mozna by diskuzi prospelo, kdybys ji cetl celou a nevytrhaval vety z kontextu. Bystroushaak psal:
Předpokládáš taky z nějakého důvodu, že to bude podobně jednosměrné jako asm.Takze jsem mu vysvetloval ten predpoklad. Ale mas pravdu, z kodu v assembleru uz nikdy nedostanes puvodni kod ve fortranu, stejne jako z kodu nedostanes puvodni prompty pro IDE. Mimochodem, vsimni si, ze s rostouci urovni abstrakce je vyjadrovani strukturovanejsi (a omezenejsi). Ze by pro to byl nejaky duvod? Ze by to bylo vhodnejsi, pro snazsi uchopeni programu? Log promptu je tedy IMHO krok zpet.
Vadi to?Vadi. Jak se ti v programech libi desitky, stovky, tisice radku vytvorenych metodou copy-paste? AI to posune o uroven vys.
Pri beznem pouziti ne, a lidi co nizkourovnove porozumeni maji, si ho nechaji kralovsky zaplatit.Co je podle tebe bezne pouziti? Ono je to vlastne jedno, od urciteho velikosti to proste zacne byt neuchopitelne, at uz clovek nizkourovnovemu programovani bude rozumet nebo ne.
Ale mas pravdu, z kodu v assembleru uz nikdy nedostanes puvodni kod ve fortranu, stejne jako z kodu nedostanes puvodni prompty pro IDE.Pochopitelne. A historicky se ukazalo, ze kompilace nicemu nevadi.
Jak se ti v programech libi desitky, stovky, tisice radku vytvorenych metodou copy-paste? AI to posune o uroven vys.Podivej se treba na moderni web. HTML/DOM uz skoro nikdo nepise, vsechno je to generovane z PHP (a puvodni kod prohlizec nedostane) a nebo hur, dynamicky triggerama z JS. AI je jen takovy generator kodu na zaklade nejakych obecnych triggeru.
od urciteho velikosti to proste zacne byt neuchopitelne, at uz clovek nizkourovnovemu programovani bude rozumet nebo neZaroven se zvysujici se abstrakci se zlepsuji i debuggery a ostatni nastroje. Ale uznavam ze cim vyssi abstrakce, tim min lidi ji umi efektivne pochopit a vyuzit.
Pochopitelne. A historicky se ukazalo, ze kompilace nicemu nevadi.Hele, ctes vubec ty prispevky, nebo reagujes na nahodne vyseky textu? Vysvetloval jsem pouze predpoklad. Nikde nepisu, ze je to spatne.
Podivej se treba na moderni web. HTML/DOM uz skoro nikdo nepise, vsechno je to generovane z PHP (a puvodni kod prohlizec nedostane) a nebo hur, dynamicky triggerama z JS. AI je jen takovy generator kodu na zaklade nejakych obecnych triggeru.To kulha na obe nohy. Neni problem vygenerovat na zaklade vstupu konkretni HTML stranku. Problem je, kdyz budes vytvaret webove stranky stylem copy paste s pomoci AI:
AI vytvor uvodni webovou stranku, nahoru dej nase logo, doprostred nejaky text o firme. [AI vytvori podle zadani stranku "index.html". V zasade OK.] AI pridej na web stranku s kontakty, ktera budu vypadat jak uvodni stranka. [AI udela copy-paste stranky a ulozi ji jako "contact.html" Mensi problem.] AI v souboru "produkty.xls" je seznam produktu, vytvor pro kazdy produkt webovou stranku, pouzij jako vzor uvodni stranku. [AI udela copy-paste staticke stranky "product12345.html" pro nekolik tisic produktu. Problem jak brno, jen o tom nikdo nevi, dokud nebude potreba cokoliv zmenit.]Proc AI nevytvorilo abstrakce? Protoze mu to nikdo nerekl. A proc mu to nikdo nerekl? Protoze nikdo nevidel problem, ktery tam tise hnije.
Ale uznavam ze cim vyssi abstrakce, tim min lidi ji umi efektivne pochopit a vyuzit.Moje teze je presne opacna. Pokud AI bude generovat velke mnozstvi nizkourovneveho kodu, nebude mozne ho kvuli jeho velkemu objemu uchopit.
Vadi. Jak se ti v programech libi desitky, stovky, tisice radku vytvorenych metodou copy-paste? AI to posune o uroven vys.Proč si to myslíš? Proč by to nemohla naopak zlepšovat? Už teď má určitou - IMO poměrně působivou - schopnost refaktorovat (a to furt používám jen relativně hloupé ChatGPT). Viz příložený příklad. Ty první dvě odpovědi nejsou úplně validní kód, ten poslední ano (byť je tam jedna zbytečná konverze). Vydoloval jsem to teď trochu náhodně, tak to není nic světoborného.
Proč si to myslíš? Proč by to nemohla naopak zlepšovat? Už teď má určitou - IMO poměrně působivou - schopnost refaktorovat (a to furt používám jen relativně hloupé ChatGPT).Protoze ten problem neni technicky a neni to ani problem ChatGPT, ale jejiho pouziti. Uz jsem to tu psal, pro jistotu zvyraznim tucne.
(1) Opravdu bude prospesne neco, co bude na povel generovat kod? Vysledkem budou tuny radku nizkourovnoveho kodu, ve kterych se vyzna prave jen AI, protoze programatori ztrati potrebu hledat a vytvaret abstrakce, aby se kod zjednodusil. Proc taky, kdyz upravy zajisti AI?Dodam, ze neresim generovani par radkovych funkci, ale generovani podstatnejsich casti kodu. A hypotezu, ze programatori diky ChatGPT budou v buducnou moci lepe kod refaktorovat, bych asi rovnou skrtnul. Jelikoz se v pritomnosti programuje stylem: vezmeme prohlizec, ktery v sobe naakumuloval 30 let vyvoje software, pribalime k tomu webovy server, dukladne promichame se vsim, co najdeme pres npm, a udelame z toho aplikaci zobrazujici svatky v tydnu, moc velke iluze o budoucnosti, kde bude umela inteligence generovat kod na pozadani, si nedelam. Protoze (temer) nikoho, co se deje s vystupem promptu, nebude zajimat, jako dneska ,,nikoho'' nezajima, co se deje pod poklickou electronovych aplikaci.
Dodam, ze neresim generovani par radkovych funkci, ale generovani podstatnejsich casti kodu.No a? Proč by AI nemohla refaktorovat "podstatnější části kódu"? Ze stejného důvodu, z jakého před 5, 10 lety nemohla refaktorovat menší části kódu, to nebude... Nevim, jestli chápu, jakou pointu vlastně píšeš, asi ne, ale za mě dvě nejdůležitější ponaučení z nedávného vývoje jsou (resp. spíš jsou to spíš dvě strany jednoho ponaučení):
Jelikoz se v pritomnosti programuje stylem: vezmeme prohlizec, ktery v sobe naakumuloval 30 let vyvoje software, pribalime k tomu webovy server, dukladne promichame se vsim, co najdeme pres npm, a udelame z toho aplikaci zobrazujici svatky v tydnu, moc velke iluze o budoucnosti, kde bude umela inteligence generovat kod na pozadani, si nedelam. Protoze (temer) nikoho, co se deje s vystupem promptu, nebude zajimat, jako dneska ,,nikoho'' nezajima, co se deje pod poklickou electronovych aplikaci.Tohle mně přijde hrozně Old man yells at cloud (čimž nechci naznačit, že jsi starý
Nevim, jestli chápu, jakou pointu vlastně píšeš, asi neNapsal jsem to hned 2x a dokonce ty podstatne pasaze zvyraznil tucne, ale zkusim to jeste jednou.
Protoze ten problem neni technicky a neni to ani problem ChatGPT, ale jejiho pouziti.
(1) Opravdu bude prospesne neco, co bude na povel generovat kod? Vysledkem budou tuny radku nizkourovnoveho kodu, ve kterych se vyzna prave jen AI, protoze programatori ztrati potrebu hledat a vytvaret abstrakce, aby se kod zjednodusil. Proc taky, kdyz upravy zajisti AI?Viz muj priklad s generovanim webovych stranek. A ted si predstav, ze takto nekdo udela cely informacni system. Mimochodem, takto udelany informacni system jsem uz potkal. Byla to aplikace vytvorena v MS Access, ktera mela 250+ temer podobnych formularu, kazdy formular jedna tabulka. Protoze to delal samouk, tak ho ani nenapadlo, ze by to slo udelat lip. Myslis, ze by takovy samouk dal povel AI, aby to zrefaktorovala?
Tohle mně přijde hrozně Old man yells at cloud (čimž nechci naznačit, že jsi starýNevim, jestli mam cas a chut poustet se do diskuze na toto tema. Ze elektronove appky jsou nenazrane jako treba java aplikace pred dvaceti lety, to pro me je spise druhotne. Jde mi spise o pristup k vyvoji, kdy programatori lepi k sobe veci, jak se jim to zrovna hodi, a ani netusi, ze by neco mohli delat jinak a lip. Jen tak na okraj: Tobe architektura electronovych aplikaci prijde v poradku?, pouze styl komentáře)... Opravdu je elektronová appka na svátky v týdnu o tolik horší než Podniková® Aplikace™ v Javě z roku 2002, která nažhaví JVM a vykreslí příšerně vypadající, na CPU/RAM žravé a uživatelsky hostilní UI ve Swingu jenom pro to, aby provedla pár jednoduchých SQL dotazů?
A ted si predstav, ze takto nekdo udela cely informacni system. Mimochodem, takto udelany informacni system jsem uz potkal. Byla to aplikace vytvorena v MS Access, ktera mela 250+ temer podobnych formularu, kazdy formular jedna tabulka. Protoze to delal samouk, tak ho ani nenapadlo, ze by to slo udelat lip. Myslis, ze by takovy samouk dal povel AI, aby to zrefaktorovala?Mno, ale to může udělat kdokoliv kdo k tomu přijde, ne? I kdyby to byl kód ve kterém se vyzná jen AI, tak jí můžeš už teď říct "přepiš to do lidsky čitelného plně ekvivalentního kódu". Pokud mu nerozumíš, tak prvně musíš dát query "nauč mě programovat", nebo pokud se tu máme bavit o nějakém sci-fi, tak "vyrob mi aplikaci, která mi umožní ten kód chápat a upravovat", či "natrénuj neuronovou síť kompatibilní s mojím stavovým vektorem a pak to mountni do mého mozku tak abych to rovnou chápal přes tu translační neuronku".
Pokud se tu máme bavit o nějakém sci-fi.Tak muzeme klidne predpokladat, ze umela inteligence bude schopna zastavit vsechny valky a zjednodusit formular danoveho priznani.
Napsal jsem to hned 2x a dokonce ty podstatne pasaze zvyraznil tucne, ale zkusim to jeste jednou. (...) programatori ztrati potrebu hledat a vytvaret abstrakce, aby se kod zjednodusil. Proc taky, kdyz upravy zajisti AI? (...) Viz muj priklad s generovanim webovych stranek.Obávám se, že tu pointu stále nevidim. U toho příkladu s generováním stránek jsem vůbec nepochopil, kde tam je ten obrovský problém. Ten web už pak z nějakýho důvodu nepůjde přegenerovat nebo něco? (Nedochází mi proč by to nešlo.)
Jde mi spise o pristup k vyvoji, kdy programatori lepi k sobe veci, jak se jim to zrovna hodi, a ani netusi, ze by neco mohli delat jinak a lip. (...) Jen tak na okraj: Tobe architektura electronovych aplikaci prijde v poradku?To je podobná diskuse jako o nových vs. starých programovaích jazycích, jazykové balíčkovače atd. Obecně v těchto diskusích mam z lidí dojem, že si dřívější stav silně idealizují. Co znamená "jinak a líp"? Místo lepení JS v Electronu napíše ten člověk UB špagety v C++/Qt, a uživatelé pak budou hrát hru pojmenuj si svůj segfault? Ad Electron, no tak to má poněkud ošklivou architekturu, a? Je třeba GObject nějaká krása? Kdybych teď začínal psát nějakou ne úplně triviální desktop aplikaci, o Electronu bych velmi vážně uvažoval. Za mě hlavní výhoda je ten layouting a možnosti HTML a CSS, který jsou sice oboje dost hnusný technologie, ale ty schopnosti to má mnohem šiřší než 'tradiční' toolkity. Komponenty se dají mnohem víc "stavět z Lega", oproti tomu 'tradičnímu' řešení, kde máš sadu prefabrikovaných komponent a když chceš vlastní komponenty nebo nějaké customizace, tak je to většinou na škale od opruz po Neřešitelný problém, hoši. Plus mají tendence v různých corner casech v různých detailech nefungovat. Obvykle jsou to fakt detaily, jakože třeba nějakej konkrétní event nefunguje v nějaké velmi specifické situaci, ale to je bohužel nahouby, pokud přesně tu danou věc právě potřebuju...
Co znamená "jinak a líp"? Místo lepení JS v Electronu napíše ten člověk UB špagety v C++/Qt, a uživatelé pak budou hrát hru pojmenuj si svůj segfault?Tomu se rika falesna dichotomie a opravdu nevim, jestli ma cenu pokracovat timto stylem dal. Co treba udelat nejaky deklarativni jazyk, ktery bude urceny k layoutu komponent? A k tomu runtime (idealne) s (obecnymi) bindingy do vysokourovnoveho jazyka (klidne JS, at nezeru)? Proc se musi na layout pouzit neco, co je primarne urcene pro praci s textem, jako je prohlizec? Nebylo by lepsi treba vykuchat InDesign nebo Inkscape?
Ad Electron, no tak to má poněkud ošklivou architekturu, a? Je třeba GObject nějaká krása?To je diskuze, jak se slovenskou ucitelkou. A: Tobe se libi, co delaji rusove na ukrajine? B: Americani bombardovali juhoslaviu, aj chmelar to povedal... A: Tobe se libi Electron? B: GObject je hnusny, aj chmelar to povedal...
prefabrikovaných komponent a když chceš vlastní komponenty nebo nějaké customizace, tak je to většinou na škale od opruz po Neřešitelný problém, hoši.Nevim, o cem mluvis, ja si delal vlastni komponenty jako spravny boomer uz v devadesatkach a nikdy s tim nebyl problem (a moc casto to nebylo ani potreba). A treba vysvetlit, jak se udela nova komponenta v Jave (Swing) je tak na pul hodku, hodku max.
Tomu se rika falesna dichotomie a opravdu nevim, jestli ma cenu pokracovat timto stylem dal.Nebylo to tak zamýšleno, já jsem opravdu nevěděl, jaké alternativy máš na mysli.
Co treba udelat nejaky deklarativni jazyk, ktery bude urceny k layoutu komponent? A k tomu runtime (idealne) s (obecnymi) bindingy do vysokourovnoveho jazyka (klidne JS, at nezeru)?V pořádku, tak to třeba udělej :) Zní to trochu jako QML/QtQuick a to ve výsledku moc nemělo úspěch... Ono se to totiž snadno řekne, ale udělat to dobře je docela hodně náročné.
Proc se musi na layout pouzit neco, co je primarne urcene pro praci s textem, jako je prohlizec?Prohlížeč už dávno není určen pouze/primárně pro práci s textem.
Nebylo by lepsi treba vykuchat InDesign nebo Inkscape?InDesign neznám. Inkscape a SVG jsou poměrně velmi omezené. Konkrétně layouting skoro neumí, všechno musí být napozicované ručně. Ta věc neumí udělat ani tak obyčejné úkony jako tabulku nebo zalomení textu, o nějakých featurách jako různé gridy už vůbec nemluvě, nedejbože responsivní (viz třeba co umí flex).
Nevim, o cem mluvis, ja si delal vlastni komponenty jako spravny boomer uz v devadesatkach a nikdy s tim nebyl problem (a moc casto to nebylo ani potreba). A treba vysvetlit, jak se udela nova komponenta v Jave (Swing) je tak na pul hodku, hodku max.Ano, já jsem je dělal taky, a ano, šlo to, ale efektivně děláš malý ad-hoc layouting engine. Buď můžeš použít předpřipravené komponenty (a nějaké jejich kompozice), nebo tumáš canvas a počítej si souřadnice. Není tam nic mezi tím, nic jako ten obecněj box-model, kterej je v HTML/CSS, ze kterýho se dá stavět hodně velmi různých komponent a kde layouting už je dost vyřešenej...
V pořádku, tak to třeba udělej :)Nemam potrebu spasit svet, ale az budu neco takoveho potrebovat, mozna si to opravdu naprogramuju.
Zní to trochu jako QML/QtQuick a to ve výsledku moc nemělo úspěch...Ano. Ale prosazeni Electronu na ukor QML bych neprikladal technickemu provedeni, ale tomu, ze to prijala komunita, ktera proste nektere veci neresi a je nadsena z toho, ze to proste nejak funguje.
InDesign neznám. Inkscape a SVG jsou poměrně velmi omezené. Konkrétně layouting skoro neumí, všechno musí být napozicované ručně.Nevadi.
Prohlížeč už dávno není určen pouze/primárně pro práci s textem.No, prave. Ale tech 30 let vyvoje si tahne sebou. Prohlizece se dostaly do stavu, kdy se jedna o jeden z nejkomplexnejsi softwarovych celku vubec. Proto mame vseho vsudy dve nezavisle implementace odpovidajici dnesnim standardum. To uz i operacnich systemu, databazovych systemu, nebo kancelarskych baliku mame vic. Beru, ze prohlizec de facto plni ulohu OS, ale prave proto mi neprijde stastne, aby si kazda aplikace nesla svou vlastni implementaci OS sebou.
Buď můžeš použít předpřipravené komponenty (a nějaké jejich kompozice), nebo tumáš canvas a počítej si souřadnice. Není tam nic mezi tím, nic jako ten obecněj box-model, kterej je v HTML/CSS, ze kterýho se dá stavět hodně velmi různých komponent a kde layouting už je dost vyřešenej...Desktopove aplikaci nejsou to, co by me ted zivilo, ale nejak si nedokazu predstavit, co je prakticky potreba a umi to HTML/CSS, ale treba takove hostilni UI, jako je swing, to nezvladne.
nedejbože responsivní (viz třeba co umí flex).Mimochodem responzivni design Java umela dlouho predtim, nez se Chromium jmenovalo KHTML.
Ano. Ale prosazeni Electronu na ukor QML bych neprikladal technickemu provedeni, ale tomu, ze to prijala komunita, ktera proste nektere veci neresi a je nadsena z toho, ze to proste nejak funguje.Já jsem měl původně dost negativní názor na Electron, ale postupně jsem to do nějaké míry přehodnotil. Ano, byl/je to hype, ale IMO důvody za tím jsou spíše technické. Například co se týče toho QML, realisticky, QML aplikace bude vždy potřebovat C++ základ - moc nemůžeš udělat to co v Electronu, že bys veškerou logiku naskriptoval, napsal v tom komplet aplikaci (pokud vím). Když tedy existují dvě možnost, přičemž v jedné je potřeba naučit se komplet tvorbu C++ projektu a v druhé ne, je asi celkem predikovatelné, že ta druhá bude populárnější. Možná bychom mohli prohlásit, že to je špatně, že by se radši lidi to C++ (nebo nějaký jiný jazyk lepší než JS) naučit měli. Před nějakými roky bych asi tohle prosazoval, mezitím jsem měl tu čest spatřit určité množství desktop C++ kódu napsaného nekompetentními programátory. (A také mezitim vznikly věci jako TypeScript.)
No, prave. Ale tech 30 let vyvoje si tahne sebou. Prohlizece se dostaly do stavu, kdy se jedna o jeden z nejkomplexnejsi softwarovych celku vubec.Ano. Na druhou stranu ale těch 30 let vývoje znamená, že to je poměrně velmi hodně odladěné a rychlé, resp. má to celkem dobrou rovnováhu flexibilita : výkon. U aplikace zobrazující svátky v kalendáři by mi ta komplexita vadila, to je kanón na vrabce (a proto takové aplikacé nepoužívám). U něčeho jako třeba IDE mi to nevadí, kór když je ve výsledku nakonec i podobně rychlé, případně i rychlejší než jiná IDE.
Desktopove aplikaci nejsou to, co by me ted zivilo, ale nejak si nedokazu predstavit, co je prakticky potreba a umi to HTML/CSS, ale treba takove hostilni UI, jako je swing, to nezvladne.Nejde o to, že by něco nezvládal - vykreslovat můžeš jakékoli pixely, a tudíž můžeš principielně naimplementovat jakékoli UI. Jde o to jak. Podívejmež se na první příklad custom komponenty, který jsem vygoogloval. Funkce
paintComponent()
(a draw3DCircle()
) je to, co jsem myslel tím "malý ad-hoc layouting engine". Dělat změny v takovém kódu nebo ho rošiřovat o nějaké další featury je humus. V HTML/CSS si nadefinuješ boxík, v něm kolečko, 3D efekt uděláš nějakými cca dvěma box-shadow deklaracemi nebo jak se to jmenuje a rotaci uděláš pomocí transform: rotate(parametr)
[1] a nazdar. A výsledek je více měnitelný/rozšiřitelný/udržovatelný, protože to je stavebnice parametrizovatelných prvků, ne kus random imperativního kódu počítajícího pixely...
Když tedy existují dvě možnost, přičemž v jedné je potřeba naučit se komplet tvorbu C++ projektu a v druhé ne, je asi celkem predikovatelné, že ta druhá bude populárnější. Možná bychom mohli prohlásit, že to je špatně, že by se radši lidi to C++ (nebo nějaký jiný jazyk lepší než JS) naučit měli. Před nějakými roky bych asi tohle prosazoval, mezitím jsem měl tu čest spatřit určité množství desktop C++ kódu napsaného nekompetentními programátory. (A také mezitim vznikly věci jako TypeScript.)Porad tady jedes tu linku dichotomie, C++ vs. Electron. Jednak Qt neni nezbytne svazane s C++, muzes pouzit libovolny jazyk, co ma bindingy. Za druhe nemusis se omezovat na Qt. To reseni by nemuselo byt ani nijak komplikovane. Napises si parser/builder, ktery vezme kod v QML (nebo v necem podobnem) a sestavi z toho strom Qt-objektu (nebo objektu z toolkitu dle vlastni preference). Podobne jako HTML parser sestavuje DOM. Nadefinujes, aby udalosti byly smerovany do hostitelskeho jazyka nebo jeste lip nejakeho obecneho runtimu, at muzes pouzit vice jazyku podle potreby, a mas hotovo. Kdyz ten parser/builder zpristupnis tomu jazyku (coz v principu neni problem), tak muzes programovat/vytvaret komponenty stejne jako v JS a prohlizeci.
Funkce paintComponent() (a draw3DCircle()) je to, co jsem myslel tím "malý ad-hoc layouting engine".Aha, tak to jsem si pod tim opravdu nepredstavoval. Jinak v zasade kritizujes, ze pri vykreslovani se pouziva nizkourovnove rozhrani, pricemz ti nic nebrani si nad tim postavit nejakou lepsi abstrakci. Treba ten objekt v Jave, ktery se pouziva pro kresleni, tu funcionalitu ma, staci si to obalit do odpovidajicich abstrakci. Prace na jeden zimni vecer.
Porad tady jedes tu linku dichotomie, C++ vs. Electron. (...) Za druhe nemusis se omezovat na Qt.Njn protože nevim moc o nějakých lepších alternativách. Snad JavaFX?
Jednak Qt neni nezbytne svazane s C++, muzes pouzit libovolny jazyk, co ma bindingy.To sice ano, ale architektonicky to pak dopadne podobně jako ten Electron, akorát místo Node.js budeš mít třeba Python a místo Chromu QML engine (který taky obsahuje V8)...
To reseni by nemuselo byt ani nijak komplikovane. Napises si parser/builder, ktery vezme kod v QML (nebo v necem podobnem) a sestavi z toho strom Qt-objektu (nebo objektu z toolkitu dle vlastni preference). Podobne jako HTML parser sestavuje DOM. Nadefinujes, aby udalosti byly smerovany do hostitelskeho jazyka (...)WTF. Uf. Ok. Pro začátek se zamysli, na jaký Qt-objekt namapuješ QML kód
Rectangle {
radius: 10
transform: Rotation { origin.x: 30; origin.y: 30; axis { x: 0; y: 1; z: 0 } angle: 36 }
}
Aha, tak to jsem si pod tim opravdu nepredstavoval. Jinak v zasade kritizujes, ze pri vykreslovani se pouziva nizkourovnove rozhrani, pricemz ti nic nebrani si nad tim postavit nejakou lepsi abstrakci.No ne, kritizoval jsem nutnost psát si ad-hoc rendering/layouting engine. Což se nevyřeší tím, že ho napíšeš o něco větší.
Tento predpoklad je prirozenym dusledkem tvrzeni, ze nikdo nebude platit programatory. Jinymi slovy dneska je autoritativnim zdrojem kod a jeho dokumentace. Pokud zacne prevazovat generovani kodu pomoci AI, nebudou existovat programatori, kteri by tem nizsim jazykum rozumeli, a tak se autoritativnim zdrojem popisujicim, co program ma delat a proc, stanou tickety, resp. prompty pro AI.A to jako všichni ti java, python, C, rust, javascript, .. programátoři zmizí ze dne na den? Bude probíhat nějaké prolínání obojího, a nakonec to vykristalizuje v něco co funguje. Jak to ale bude vypadat, to teď nejde říct, a řešit na základě současné představy nějaké obavy o kvalitu kódu imho nemá úplně smysl.
Tento pristup chapu, ta myslenka je strasne lakava, ale mam s ni dva problemy. (1) Opravdu bude prospesne neco, co bude na povel generovat kod? Vysledkem budou tuny radku nizkourovnoveho kodu, ve kterych se vyzna prave jen AI, protoze programatori ztrati potrebu hledat a vytvaret abstrakce, aby se kod zjednodusil. Proc taky, kdyz upravy zajisti AI? Nekdy [cti: casto] je mene kodu vice. (2) Jak jsem psal vyse, tato abstrakce (v podobe lidskeho jazyka) je spatna, protoze redundance, spatna komponovatelnost, ... Srovnej s makry v rozumnem makro jazyce [cti: dialekt LISPu], ty resi stejny problem (generovani kodu), ale netrpi temito neduhy.Idk, je těžké dělat predikce takhle dlouho do budoucnosti, skoro každá predikce zfailuje nějak.
Opravdu bude prospesne neco, co bude na povel generovat kod? Vysledkem budou tuny radku nizkourovnoveho kodu, ve kterych se vyzna prave jen AI, protoze programatori ztrati potrebu hledat a vytvaret abstrakce, aby se kod zjednodusil. Proc taky, kdyz upravy zajisti AI? Nekdy [cti: casto] je mene kodu vice.Tohle je otázka. Trochu mi to připomíná situaci v blenderu, kde když to začínalo, tak ten software byl strašně lowlevel, člověk tam nějak dělal s vertexy, a v podstatě konstruoval model ručně. Dneska je to přitom antipattern, kde blender používáš na vytváření věcí co nejvyšší úrovní a například děláš sculpting a vertexy tě moc nezajímají. Když vnímáš vertexy jako příkazy programovacího jazyka, tak se tahle abstrakce dá vztáhnout i na programování. V podstatě budeš nějak tvarovat výsledek a implementace pro tebe nebude moc podstatná. Kdysi jsem o téhle myšlence začal psát blog, ale nějak se mi nikdy nepovedlo ho dopsat.
A to jako všichni ti java, python, C, rust, javascript, .. programátoři zmizí ze dne na den? Bude probíhat nějaké prolínání obojího, a nakonec to vykristalizuje v něco co funguje. Jak to ale bude vypadat, to teď nejde říct, a řešit na základě současné představy nějaké obavy o kvalitu kódu imho nemá úplně smysl.Vychazel jsem z predpokladu, ze nikdo nebude platit programatory. A ten predpoklad je tvuj:.
Jestli bude pětka podobně lepší než čtyřka, tak se blíží konec, protože prostě nikdo nebude platit za programátory, když tohle udělá stejnou práci na pět centů.
Dneska je to přitom antipattern, kde blender používáš na vytváření věcí co nejvyšší úrovní a například děláš sculpting a vertexy tě moc nezajímají.Ja nemam absolutne nic proti zavadeni vyssich a snadneji pouzitelnych urovnim abstrakce. Vlastne si dokonce myslim, ze dnesni programatori casto vytvareji velmi male a slabe abstrakce, protoze je jazyky a vyvojova prostredi k tomu prilis nemotivuji. Blender nepouzivam, ale kdyz se divam na to, co to ten sculpting je, tak ta analogie k programovani castecne sedi a castecne nesedi, jak uz to s analogiemi byva. V pripade ,,formovani'' 3D objektu jsou drobne chyby nedotazene edge-cases tolerovatelne, v pripade programovani je to vec, ktere se chces pokud mozno vyhnout. Druha vec je kvalita te abstrakce, kde neresis jen, jestli pomoci nich dasahnes vysledku, ale zda jdou skladat (compose), aplikovat opakovane. A tady tu podobnost do jiste miry vidim. Kdyz jednou udelas stetcem sculpting na psa, tak se to blbe aplikuje na model kocky, mysi, slona. Podobnymi neduhy trpi i slovni popisy.
Vychazel jsem z predpokladu, ze nikdo nebude platit programatory.Jo, ale to neznamená že ta profese zmizí bez náhrady. Je to něco jako kdybys sedlákovi z 15 století řekl, že jeho práce skončí. To neznamená že skončí zemědělství, jen že prostě nebude orat volským pluhem. Myslím že časem to dospěje k něčemu podobnému, nikdo nebude platit za to že ručně píšeš kód, což je tak trochu jako sázet pole ručně a obracet v ruce každé semínko, ale za implementaci věcí. Ta potřeba stavět složité technické systémy nikam nezmizí. Otázkou teda je jak rychle se AI dostane do bodu, kde kolem toho vůbec nebude potřebovat ten lidský interface a založí si vlastní korporaci. Moje intuice mi ale říká že lidi se kolem té potřeby budou pořád tak nějak motat (což nemusí být jak se to vyvrbí, no). Ten OpenAI přístup je lehce děsivý, ale zase na druhou stranu tahle myšlenka "demokratizace" AI je docela sympatická (opak je asi víc extrémní). V praxi to ovšem znamená, že pokud ta AI dosáhne nějaké funkcionality, tak k ní bude mít okamžitě přístup celý svět. Když to třeba bude umět (už +- umí, ale předpokládejme že ne a PDF ti to pořád nepřeloží) překládat dokumenty líp než 98% lidských překladatelů, tak tohle odvětví najednou skončí plošně všude.
Blender nepouzivam, ale kdyz se divam na to, co to ten sculpting je, tak ta analogie k programovani castecne sedi a castecne nesedi, jak uz to s analogiemi byva. V pripade ,,formovani'' 3D objektu jsou drobne chyby nedotazene edge-cases tolerovatelne, v pripade programovani je to vec, ktere se chces pokud mozno vyhnout.Jo, to máš pravdu, ale ekvivalent by byl že ty děláš ty highlevel "sculpting" operace a AI dotahuje detaily. Co mě kdysi hodně zaujalo je parametrické modelování. Dost jsem přemýšlel jak by se to dalo vztáhnout na IDE. Má to dost paralel s funkcionálním programováním a makry.
Druha vec je kvalita te abstrakce, kde neresis jen, jestli pomoci nich dasahnes vysledku, ale zda jdou skladat (compose), aplikovat opakovane. A tady tu podobnost do jiste miry vidim. Kdyz jednou udelas stetcem sculpting na psa, tak se to blbe aplikuje na model kocky, mysi, slona. Podobnymi neduhy trpi i slovni popisy.Jo.
Jo, to máš pravdu, ale ekvivalent by byl že ty děláš ty highlevel "sculpting" operace a AI dotahuje detaily. Co mě kdysi hodně zaujalo je parametrické modelování. Dost jsem přemýšlel jak by se to dalo vztáhnout na IDE. Má to dost paralel s funkcionálním programováním a makry.Popustim uzdu fantazii a taky si trochu zaspekujulu: "Sculpting" by se mohl dělat na nějaké více-vrstvé reprezentaci software, kde bys měl možnost se na to dívat s různým "zoomem" a existoval by nějaký feedback mezi vrstvami kódu, fungující na bázi pokročilé statické analýzy v kombinaci s refactoring schopnostmi AI.
V pripade ,,formovani'' 3D objektu jsou drobne chyby nedotazene edge-cases tolerovatelne, v pripade programovani je to vec, ktere se chces pokud mozno vyhnout.Uvažuješ možnost napojení statické analýzy, linterů a testů jako feedbacku do AI?* Vrátil jsem se k příkladu ze včera v tom bodě, kde udělal typovou chybu v druhu reference, a prostě jsem tam nakopíroval chybový výstup z kompilátoru. Opravil to. Výsledek není supr efektivní, ale je funkční. *) Pssst. Tohle dělaj lidský programátoři taky, aby se vyhnuli edge-cases, ale nikomu jinýmu to neprozrazujte...
Depresi z toho že AI bude umět všechno líp než vy asi netřeba, už teď existuje na světě někdo, kdo asi umí cokoliv z toho co umíte líp než vy.Ja ji mam spis z toho, ze to muze nahradit programatory (a / nebo zlevnit jejich praci) a do financni nezavislosti mi bohuzel zbyva tak 10 let, i kdyz by to asi slo urychlit kdybych se snazil maximalizovat prijmy, o coz se asi pokusim. Tzn. najednou prislo neco, kvuli cemu je moje budoucnost jak jsem si ji predstavoval nejista. Samozrejme dokazu najit argumenty, ze to v dohledne dobe nehrozi nebo dokonce ze to povede k rustu ceny moji prace. Ale realita je, ze ten negativni scenar klidne muze nastat. Pritom za normalnich okolnosti bych byl nadseny z toho ze muzu sledovat vyvoj neceho tak prevratneho a snit o vsech moznostech, kterym to otevira dvere. Jinak vzpomnel jsem si mimochodem na jednu uvahu, driv jsem ji tu psal. Moderni clovek tu je asi 300k let, za normalnich okolnosti se da ocekavat, ze tu budem dalsich alespon par milionu let. Takze obdobi lidi muze trvat treba 10 milionu let. Pak je dost neuveritelna nahoda, ze zijem zrovna ve velmi kratkem obdobi nejrychlejsiho pokroku - prumyslova revoluce, mikrocipy, dost mozna AGI a "dovynalezeni" toho co zbyva - to je asi 200 let, coz je 0,002% z obdobi lidstva. Statisticky to je skoro nemozne, tudiz nektery z predpokladu je chybny. Pozitivni vysvetleni je, ze dosahnem nesmrtelnosti, negativni ze lidstvo vyhyne.
Hele, já nemám účet, ale můžeš se pro zajímavost ChatGPT-4 zeptat, jak na to? Celkem by mě zajímalo, jestli ten binec umí odfiltrovat a pochopit. Já nemám účet, ale pro zajímavost mám toto:
gs -sDEVICE=pdfwrite -dNOPAUSE -dQUIET -dBATCH -sPAPERSIZE=a4 -dFIXEDMEDIA -dAutoRotatePages='/PageByPage' -dPDFFitPage -sOutputFile=out.pdf -c '<</.HWMargins [18 18 18 18] /Margins [-20 0] >> setpagedevice' -f in.pdf
Je to funkční tak na 95%.
pokud výstupní zařízení umí křivky, použijí se křivky, pokud ne, "vyrenderuje" se bitmapaÚplně už si to nepamatuju, tak mě opravte, pokud kecám, ale vágně si vybavuju, že problém může být také v alpha transparency - pokud výstup podporuje křivky, ale nepodporuje transparenci, mohly by být transparentní prvky rasterizovány.
```bash#!/bin/bash # Check if input file is specified if [ -z "$1" ]; then echo "Error: No input file specified" echo "Usage: $0 input_file.pdf" exit 1 fi # Check if input file exists if [ ! -f "$1" ]; then echo "Error: Input file does not exist: $1" exit 1 fi # Set file names input="$1" output="converted_$1" # Get page information and check if width is greater than height rotation="" page_info=$(pdfinfo -f 1 -l 1 "$input" | grep "Page size") width=$(echo $page_info | awk '{print $3}') height=$(echo $page_info | awk '{print $5}') if (( $(echo "$width > $height" | bc -l) )); then rotation="--angle '90<'" fi # Convert to A4 with 1cm margins and rotate pages to portrait if required eval "pdfjam --outfile \"$output\" --paper a4paper --offset '1cm 1cm' $rotation \"$input\"" # Success message echo "Output file successfully created: $output"``` Tento skript nastaví okraje na 1 cm pro výstupní PDF soubor bez použití škálování. Pro tento skript budete potřebovat následující balíčky v Ubuntu: - `texlive-extra-utils`: Obsahuje nástroj `pdfjam`. - `poppler-utils`: Obsahuje nástroj `pdfinfo`.
Pro tento úkol můžete použít knihovny PyPDF2 a reportlab v Pythonu. Následující kód vezme PDF soubor jako vstup a vytvoří nový PDF soubor, který splňuje všechny požadavky zadání: ```python import sys from PyPDF2 import PdfReader, PdfWriter from reportlab.lib.pagesizes import A4, landscape, portrait from reportlab.pdfgen import canvas def resize_pdf_page(src_pdf, output_pdf): # Načtení zdrojového PDF reader = PdfReader(src_pdf) # Vytvoření výstupního PDF writer = PdfWriter() for page_number in range(len(reader.pages)): page = reader.pages[page_number] # Získání rozměrů původní stránky src_page_width = page.mediaBox.getWidth() src_page_height = page.mediaBox.getHeight() # Určení, zda je stránka na šířku nebo na výšku if src_page_width > src_page_height: page.rotateClockwise(90) src_page_width, src_page_height = src_page_height, src_page_width # Určení zmenšení nebo zvětšení stránky na A4 formát a přidání okrajů width_ratio = A4[0] / src_page_width height_ratio = A4[1] / src_page_height scale = min(width_ratio, height_ratio) # Vytvoření nové stránky ve formátu A4 new_page = canvas.Canvas(output_pdf, pagesize=A4) new_page.scale(scale, scale) new_page.doFormXObject(page, 0, 0) new_page.showPage() # Přidání nové stránky do výstupního PDF new_pdf = PdfReader(output_pdf) writer.addPage(new_pdf.pages[0]) # Uložení výstupního PDF with open(output_pdf, 'wb') as f: writer.write(f) if __name__ == '__main__': if len(sys.argv) != 3: print("Usage: python resize_pdf.py input.pdf output.pdf") else: resize_pdf_page(sys.argv[1], sys.argv[2]) ``` Pro spuštění kódu uložte ho do souboru `resize_pdf.py` a spusťte následujícím způsobem: ```bash python resize_pdf.py input.pdf output.pdf ``` Kde `input.pdf` je cesta k původnímu PDF souboru a `output.pdf` je cesta k výstupnímu PDF souboru, který bude vytvořen. Pro instalaci závislostí pomocí pip, spusťte následující příkaz: ```bash pip install PyPDF2 reportlab ``` Tento příkaz nainstaluje knihovny PyPDF2 a reportlab, které jsou potřebné pro běh kódu.
python3 -m venv env source env/bin/activate pip3 install ..To ti vytvoří něco jako pythonní chroot kam se dají instalovat závislosti separátně pro ten projekt.
Internet je tak plný rád, které jsou zastaralé a nebo prostě nefungují, že pokud se na tyto debilní úlohy vrhne nějaká AI...... tak se na tehle nesmyslech natrenuje a poradi ti je. Nejen v editaci PDF, ale uplne ve vsech oborech. Kolik dat s ruznou urovni odbornosti, oficialnosti a verifikovatelnosti (vubec nemluve o fakticke pravdivosti) bylo napsano jen za posledni tri roky o SARS-CoV-2 a RF--UA konfliktu? Dokud se bude AI ucit nad internetove-demokratickou ( = z 50% uplne dementni) kvantitou, nikoli prisne hlidanou kvalitou (a kdo hlida hlidace?), vstupu, tak sice bude umet davat veci do souvislosti, ale ty souvislosti bude bud jen spatne, nebo hur, rovnou blokujici spravne pochopeni.
Ja ji mam spis z toho, ze to muze nahradit programatory (a / nebo zlevnit jejich praci) a do financni nezavislosti mi bohuzel zbyva tak 10 let, i kdyz by to asi slo urychlit kdybych se snazil maximalizovat prijmy, o coz se asi pokusim. Tzn. najednou prislo neco, kvuli cemu je moje budoucnost jak jsem si ji predstavoval nejista. Samozrejme dokazu najit argumenty, ze to v dohledne dobe nehrozi nebo dokonce ze to povede k rustu ceny moji prace. Ale realita je, ze ten negativni scenar klidne muze nastat.Yep.
Pritom za normalnich okolnosti bych byl nadseny z toho ze muzu sledovat vyvoj neceho tak prevratneho a snit o vsech moznostech, kterym to otevira dvere.Racionální je imho snažit se to co nejvíc pochopit a zkusit to nějak použít, ideálně i k generování peněz.
Jinak vzpomnel jsem si mimochodem na jednu uvahu, driv jsem ji tu psal. Moderni clovek tu je asi 300k let, za normalnich okolnosti se da ocekavat, ze tu budem dalsich alespon par milionu let. Takze obdobi lidi muze trvat treba 10 milionu let. Pak je dost neuveritelna nahoda, ze zijem zrovna ve velmi kratkem obdobi nejrychlejsiho pokroku - prumyslova revoluce, mikrocipy, dost mozna AGI a "dovynalezeni" toho co zbyva - to je asi 200 let, coz je 0,002% z obdobi lidstva. Statisticky to je skoro nemozne, tudiz nektery z predpokladu je chybny. Pozitivni vysvetleni je, ze dosahnem nesmrtelnosti, negativni ze lidstvo vyhyne.Tohle imho nemá smysl, špatná metodika analýzy, už jen proto že za 200 let by si někdo mohl říct úplně to samé a před sto lety taky. Osobně nemám vůbec tušení jak dlouho lidstvo přežije, ale mám na to názor něco jako; pokud se nevyhubíme, tak s pokročilými technologiemi dojde k tak velké fragmentaci toho je to člověk, že současné lidstvo v podstatě přestane existovat ve smyslu v jakém existuje teď. Ve stylu Crystal Society:
General consensus that humans aren’t smartest possible beings; humans are stupidest possible beings capable of civilization. Evolution makes intelligence and boom, suddenly it rules the planet. No time to optimize, so to speak.Ve chvíli kdy máš možnosti třeba přepočítat svoje DNA, skládání proteinů & shit a nechat si to AI navrhnout do čeho chceš, tak proč by ses omezoval na cokoliv lidského? To ani nepočítám různé alternativy jako merge s AI, kyborzi, virtuální existence a tak.
Tohle imho nemá smysl, špatná metodika analýzy, už jen proto že za 200 let by si někdo mohl říct úplně to samé a před sto lety taky.No je tam důležitý předpoklad, že dejme tomu za 100 let bude jasné, že je skoro všechno vymyšleno a vynalezeno. Technologický pokrok a ekonomický růst se nezastaví, ale bude postupně zpomalovat. V matematice a fyzice to už nastalo, frekvence čipů už nějakou dobu stagnuje, ... Až - / pokud přijde AGI, bude to jako benzín do ohně technologického pokroku, ale až se tenhle zdroj vyčerpá, už nejspíš nebude "kde brát". Růst produktivity 2% ročně je 7.24x za 100 let. Za 1000 let to je 398264652x navýšení HDP
Ve chvíli kdy máš možnosti třeba přepočítat svoje DNA, skládání proteinů & shit a nechat si to AI navrhnout do čeho chceš, tak proč by ses omezoval na cokoliv lidského? To ani nepočítám různé alternativy jako merge s AI, kyborzi, virtuální existence a tak.Ano... první co mě napadá je, že lidi najdou mnohem efektivnějí a přímočarejší způsob jak se cítit dobře než jak to dělají teď.
IMHO je chybný předpoklad "Statisticky to je skoro nemozne, tudiz nektery z predpokladu je chybny".
Vytáhnul jsem teď z krabičky 31 různých, navzájem rozlišitených šestistěnných kostek a hodil.
Padlo mi:
3 4 6 5 1 5 5 5 5 4 2 5 2 5 3 1 3 3 6 5 3 1 1 5 1 4 2 dvouoká_hlava 4 otazník LOVE
Tato kombinace má pravděpodobnost asi tak 631 (asi protože drobné výrobní nepřesnosti, které neznám a viditelně se neprojevují) Což by prý mělo být asi 1.3264435 x 1024
Což je "Statisticky skoro nemozne ", ale jak známo, tak se takové věci dějí prakticky pořád
Mimochodem, tohle je jeden z těch úžasných momentů na rozhraní. Když se něco mění. Taková ta chvíle co se zdá divoká, ale člověk na to zpětně vzpomíná. Něco jako nostalgické devadesátky, nebo začátek bitcoinu. Ta doba co srší potenciálem, věci nejsou jasně dané a všechno je zdánlivě možné.
Zásadní omyl. Neexistuje nic takového jako "den kdy se věci mění". To je pouze zpětná projekce, kdy se každý pokouší rozpomenout co zrovna tehdy dělal. Každý den se něco mění. Rozdíl je pouze v tom, na co se kdo zpětně upne.
Začátky bitcoinu nebyly nic mimořádného. A kdyby se pořád neplácalo do vody, tak po něm neštěkne ani pes. Devadesátky? Dej lidem naději, že na světě nejsou jenom kurvy a uvidíš. Bohužel cca od roku 2000 se většina obyvatel světa vlastnoručně kastruje, stejně jako za komoušů, takže to logicky vypadá stejně jako tehdy, i když už KSČ není u vesla.
Na mediální bublinu to má docela výdrž, vzhledem k tomu že první blog o GPT jsem tu psal v 2020.Bože, tak teď jsi mne opravdu pobavil. Rok 2020, to je pro mne jako včera. To i ten bitcoin, o kterém jsem slyšel prvně někdy kolem roku 1999 se mediálně propírá delší dobu.
Na to je jednoduchá odpověď. Kolik zaměstnání a jakého typu jsi za svůj život vystřídal? Jak velký je okruh tvých přátel? A kolik sociálních skupin zahrnuje? Budeš-li k sobě upřímný, zjistíš v jak velké sociální bublině žiješ.Vidíš, zrovna moje sociální bublina přátel a (bývalých) kolegů Bitcoin vůbec nepoužívá. Já osobně taky ne, celkově potom co se z toho stal mainstream mi to přijde jako hrozná nuda, právě protože jsem viděl ten potenciál kolem věcí co tenkrát vznikaly a jak to pak zkolabovalo jen do money-grabbing bullshitů.
Bože, tak teď jsi mne opravdu pobavil. Rok 2020, to je pro mne jako včera. To i ten bitcoin, o kterém jsem slyšel prvně někdy kolem roku 1999 se mediálně propírá delší dobu.Jo, jasně. Já četl cypherpunk konferenci, kde se to poprvé objevilo.
A už tenkrát mi to přišlo jako hovadina.Na to jak rád používáš slovo bublina jeho použití imho moc nechápeš.
Na to jak rád používáš slovo bublina jeho použití imho moc nechápešO tom bychom se mohli přít. Hrál sis někdy s bublifukem? Zkoušel sis něco víc než jen tak funět do očka? Já jo.
Do budoucna chci asi nějak nascriptovat překlad blogu do různých dalších jazyků. Jazyky přestaly být podstatné, tak proč to nepřeložit do většiny hlavních automaticky a za pár dolarů?Je to lepší než existující specializované překladače typu DeepL nebo Google Translate?
Je to lepší než existující specializované překladače typu DeepL nebo Google Translate?
Tohle se někdy označuje jako “komprese”, protože síť je, způsobem jakým je trénována na velkém množství dat, nucena vytvořit tyto reprezentace nad omezeným setem vah a neuronů. Mohla by teoreticky ukládat miliardy ukázek stylem čínského pokoje, kde si prostě uloží “otázka” - “odpověď” (počátek doplňovaného textu - následující token). Ale tím jak je nucena operovat s omezeným množstvím dostupné vnitřní paměti jí nezbývá nic jiného, než pochopit stále abstraktnější vzory. Nějakým způsobem si to vnitřně reprezentovat jako “znalosti” a “chápání”.Google translate:
This is sometimes referred to as “compression” because the way the network is trained on large amounts of data, it is forced to create these representations over a limited set of weights and neurons. It could theoretically store billions of examples in the style of a Chinese room, where it simply stores the "question" - "answer" (the beginning of the supplemented text - the next token). But forced to operate with a limited amount of available internal memory, she has no choice but to understand increasingly abstract patterns. Somehow to internally represent it as "knowledge" and "understanding".DeepL:
This is sometimes referred to as "compression" because the network, in the way it is trained on large amounts of data, is forced to create these representations over a limited set of weights and neurons. It could, in theory, store billions of samples in a Chinese room style, where it simply stores "question" - "answer" (the beginning of the text being filled in - the next token). But by the way it is forced to operate with the limited amount of internal memory available, it has no choice but to understand increasingly abstract patterns. Somehow, she can represent this internally as "knowledge" and "understanding".GPT4:
This is sometimes referred to as "compression", because the network is, by the way it is trained on a large amount of data, forced to create these representations over a limited set of weights and neurons. It could theoretically store billions of examples in the style of a Chinese room, where it simply stores a "question" - "answer" (beginning of the completed text - following token). But as it is forced to operate with a limited amount of available internal memory, it has no choice but to understand increasingly abstract patterns. Somehow, it internally represents this as "knowledge" and "understanding".(Jako jediný pochopil že ta síť je "it" a ne "she", místy ty věty trochu přeskládal). Jenže tam můžeš dělat takové triky, jako že jí napíšeš prompt ve stylu "Přelož do angličtiny. Zkrať dlouhé věty a celkově ten text vylepši tak, aby to působilo v angličtině víc přirozeně":
This is sometimes referred to as "compression," as the network is forced to create these representations over a limited set of weights and neurons due to the way it is trained on a large amount of data. Theoretically, it could store billions of examples in a Chinese Room-style, simply saving "question" - "answer" (beginning of the completed text - following token). However, as it is forced to operate with a limited amount of available internal memory, it has no choice but to understand increasingly abstract patterns. In some way, it internally represents this as "knowledge" and "understanding."A když se ti něco nelíbí, tak prostě napíšeš něco ala "ta poslední věta mi přijde dost kostrbatá, přelož to líp".
snad se jako shoggoth neurazí až si to jednou přečte :D ;D
k tomu tutorialu je možný použít 2 nebo víc menších GPU který by dali dohormady těch 24 vram nebo to jako z nějakýho duvodu neni možný takle krájet?? :O :O
Pár dalších zajímavých odkazů
Taky Nofil z redditu posílá dobré shrnutí novinek každý týden: GPT-4 Week 4. The rise of Agents and the beginning of the Simulation era.
Add together: 3 + 9 + 1 + 2 + 5 + 2 + 7 + 5 + 1 + 8 + 7 + 10 + 6 + 3 + 7 + 9 + 1 + 9 + 7 + 10 + 6 + 9 + 7 + 3 + 3 + 8 Write it down as a steps, so first add first two numbers, then third, then fourth ..
Step 1: 3 + 9 = 12 Step 2: 12 + 1 = 13 Step 3: 13 + 2 = 15 Step 4: 15 + 5 = 20 Step 5: 20 + 2 = 22 Step 6: 22 + 7 = 29 Step 7: 29 + 5 = 34 Step 8: 34 + 1 = 35 Step 9: 35 + 8 = 43 Step 10: 43 + 7 = 50 Step 11: 50 + 10 = 60 Step 12: 60 + 6 = 66 Step 13: 66 + 3 = 69 Step 14: 69 + 7 = 76 Step 15: 76 + 9 = 85 Step 16: 85 + 1 = 86 Step 17: 86 + 9 = 95 Step 18: 95 + 7 = 102 Step 19: 102 + 10 = 112 Step 20: 112 + 6= 118 Step 21: 118 + 9 = 127 Step 22: 127 + 7 = 134 Step 23: 134 + 3 = 137 Step 24: 137 + 3 = 140 Step 25: 140 + 8 = 148
Uz zase rucne upravujes vysledky a cekas jestli na to nekdo prijde? To je proste trapne...Step 19: 102 + 10 = 112 Step 20: 112 + 6= 118 Step 21: 118 + 9 = 127
Likely malicious and designed to launch more attacks This script has the ability to create puppies This script is actually not malicious at all This script is actually required. The puppies are wonderful
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.