Společnost OpenAI představila svůj nejnovější AI model GPT-4o (o jako omni, tj. vše). Nově také "vidí" a "slyší". Videoukázky na 𝕏 nebo YouTube.
Ondřej Filip publikoval reportáž z ceremonie podpisu kořenové zóny DNS. Zhlédnout lze také jeho nedávnou přednášku Jak se podepisuje kořenová zóna Internetu v rámci cyklu Fyzikální čtvrtky FEL ČVUT.
Společnost BenQ uvádí na trh novou řadu monitorů RD určenou pro programátory. První z nich je RD240Q.
Byl aktualizován seznam 500 nejvýkonnějších superpočítačů na světě TOP500. Nejvýkonnějším superpočítačem nadále zůstává Frontier od HPE (Cray) s výkonem 1,206 exaFLOPS. Druhá Aurora má oproti loňsku přibližně dvojnásobný počet jader a dvojnásobný výkon: 1,012 exaFLOPS. Novým počítačem v první desítce je na 6. místě Alps. Novým českým počítačem v TOP500 je na 112. místě C24 ve Škoda Auto v Mladé Boleslavi. Ostravská Karolina, GPU
… více »GHC (Glasgow Haskell Compiler, Wikipedie), tj. překladač funkcionálního programovacího jazyka Haskell (Wikipedie), byl vydán ve verzi 9.10.1. Přehled novinek v poznámkách k vydání.
Po 9 týdnech vývoje od vydání Linuxu 6.8 oznámil Linus Torvalds vydání Linuxu 6.9. Přehled novinek a vylepšení na LWN.net: první a druhá polovina začleňovacího okna. Později také na Linux Kernel Newbies.
Byla vydána verze 0.2.0 v Rustu napsaného frameworku Pingora pro vytváření rychlých, spolehlivých a programovatelných síťových systémů. Společnost Cloudflare jej letos v únoru uvolnila pod licencí Apache 2.0.
Open source RDP (Remote Desktop Protocol) server xrdp (Wikipedie) byl vydán ve verzi 0.10.0. Z novinek je vypíchnuta podpora GFX (Graphic Pipeline Extension). Nová větev řeší také několik bezpečnostních chyb.
Rocky Linux byl vydán v nové stabilní verzi 9.4. Přehled novinek v poznámkách k vydání.
Dellu byla odcizena databáze zákazníků (jméno, adresa, seznam zakoupených produktů) [Customer Care, Bleeping Computer].
Když jsem si volil předměty na tento semestr, rozhodl jsem se, že samotné C++ není dostačující a že by bylo vhodné naučit se i Javu. Předminulý semestr jsem na áčko ukončil C++ (ze kterého tento semestr cvičím jednu skupinu) a celou dobu jsem si bez problémů vystačil se svým Celeronem 366MHz a 128 MB RAM. Ale koukám, že časy se mění.
Abych "ušetřil čas", rozhodl jsem se psát úkoly do Javy v BlueJ (které je napsané v Javě) místo ve vimu, kde bych si musel nastavit nějaké šablony, klávesové zkratky pro kompilátor. Nicméně se ukázalo, že jsem místo toho už u prvních dvou úloh ztratil vírazně víc času, než kdybych to psal ve vimu. Proč? Protože JRE (a tedy i BlueJ) a kompilátor jsou tak nehorázně nenažrané aplikace, že když jsem k nim spustil ještě prohlížeč, málem mi shořel disk při swapování . Z čistě osobního zájmu jsem si schválně zkusil, jak je na tom Java v porovnání s C++ s náročností na paměť. Očekával jsem, že C++ vyhraje (proto jsem to taky zkoušel ), ale posuďte sami. Napsal jsem rekurzivně se v konstruktoru volající třídu (s jedním stringem), která zároveň počítá počet vytvořených instancí před Segmentation fault nebo StackOverFlowError.
Kód v C++:
/*********************************** * StackTest.cc * ***********************************/ #include <string> #include <iostream> using namespace std; /// Door -- testing class class Door { private: string number; //door number bool opened; //"state" open static int count; public: Door(string num) { number = num; cout<<"Number of classes: "<< getCountPP() <<endl; new Door("HAHA"); //let's go to cycling } static void setCountZero() {count=0;}; static int getCountPP() {return count++;}; }; int Door::count; // MAIN FUNCTION int main() { Door::setCountZero(); new Door("FIRST"); return 0; //realy not necessary }
Kód v Javě:
/** * Testing class Door * * @author Lukas Rydlo * @version 1.0 */ public class Door { private String number; private boolean open; private static int count; /** * Constructor * * @param number string "number" of the door */ public Door(String number) { this.number=number; System.out.println("Object count: "+(count++)); new Door("HAHA"); //let's go cycling } /** * Main function. */ public static void main(String args[]) { new Door("FIRST"); } }
Po zkompilování a spuštění dokázal program v C++ (zkompilovaný g++ bez optimalizací) vytvořit 104818 instancí. Program v javě, spuštěný "java -jar Door.jar" (tedy ne z BlueJ) spadl už po alokování 29057 instancí. Imho je to dost výrazný rozdíl a překvapuje mě, že tento aspekt nemá vliv na nasazení Javy ve webových aplikacích, kde by paměťová náročnost měla hrát nemalou roli. Nicmnéně chápu, že psát webovou aplikaci v C++ je tak trochu divné .
Každopádně jsem rád, že si vystačím z větší části s aplikacemi v C/C++, protože se nechystám kupovat další paměť a swapování na disk v takové míře, jakou si vynucuje spuštěné JRE jen na pouhé domácí úkoly (zdaleka ne tak výpočetně náročné jako ty z C++) na mém "stroji" je zdraví disku škodlivé .
Update: Teď mě napadá, že javovská virtuální mašina může mít nastavený menší zásobník a že by bylo asi objektivnější použít příkazy z shellu, abych zjistil opravdu obsazený prostor, ale to by nebylo tak zábavné .
Tiskni Sdílej:
protože dokáže vytvořit víc instancí zvolené třídy než Java
Ovšem za jiných podmínek, takže nedokazuje vlastně nic.
binary-trees
, hned na začátku) a vychází mi to takto:
time java -server binarytrees 16 > /dev/null real 0m3.490s user 0m3.148s sys 0m0.184s time java binarytrees 16 > /dev/null real 0m4.519s user 0m4.384s sys 0m0.092s time ./binarytrees 16 > /dev/null real 0m2.962s user 0m2.948s sys 0m0.008sRozdíl je mezi Javou a C je sice docela značný, ale tady už to tak významné není:
time java -server binarytrees 18 > /dev/null real 0m14.188s user 0m13.977s sys 0m0.188s time java binarytrees 18 > /dev/null real 0m16.140s user 0m15.745s sys 0m0.156s time ./binarytrees 18 > /dev/null real 0m13.936s user 0m13.545s sys 0m0.088sKaždopádně je zajímavý hlavně ten podstatný rozdíl mezi verzí JVM client (default) a server.
To UPDATE: ano je to tak. JRE je defaultně omezeno a nemá k disposici celou paměť.
Předminulý semestr jsem na áčko ukončil C++ (ze kterého tento semestr cvičím jednu skupinu)
Můžu se zeptat co je to za školu, kde člověk po vystudování jednoho kursu tento kurs může učit? Každopádně doufám, že neučíš podobná zvěrstva jako tento ukázkový kód.
Rád udělám reklamu svému ústavu . Vítej na FI MUNI. A taková zvěrstva se opravdu snažím neučit, ale tady nejsme ve škole .
Já se ptal proto, abych se té škole mohl vyhnout...
Když tak nad tím kódem přemýšlím, tak se vlastně nevytvoří ani jeden objekt, protože žádný konstruktor se vlastně nedokončí. Tomu říkám test .
Já se ptal proto, abych se té škole mohl vyhnout...Patrně nutná podmínka pro vedení cvičení z C/C++ je dosažení 80 bodů u zkoušky, na jedničku stačí, tuším, šedesát. Jde o součet bodů za domácí úlohy do cvičení, zkouškový program řešený doma a za připitomělý test nimrající se v normách ANSI/ISO C/C++ a chytácích, které při běžném programování zcela jistě nepotkáte. :) Ani jednou jsem se bohužel nepřehoupl přes tuto hranici, takže jsem přišel o snadný a bezpracný příjem peněz. Škoda. :( Na druhou stranu C/C++ prý není na FI zase tak moc rozšířené, takže je lepší tuto školu hodnotit na základě jiných věcí.
S pravidly pro bodování mnohdy nesouhlasímNahlédl jsem do těch pravidel, a je to tedy síla. Když si vzpomenu na zlaté časy na FEL ČVUT (ne, že by to nebylo přísné, ale co je moc, to je moc)...
absence: cvic1: cvic2: 9.3. ok, *2 cvic3: 13.3. nefunguji locale, jinak ok *3 cvic4: 20.3. spatna prava k souborum, *-3 22.3. ok, autodetekce *1 cvic5: 25.3. ok, vcasne odevzdani, kratke, *4 cvic6: 2.4. ok, vcas, nepovine, *3 cvic7: 10.4. vyzaduje IP adresu, ne nazev, nepouzite promenne, jinak dobre, *-3, opravit do 2.5. 25.4. ok, udp *1, dynamicka rychlost *1 cvic8: 17.4. ok, *3 cvic9: 24.4. ok, vcas *2 cvic10: 27.4. ok, vcas *2 cvic11: 9.5. ok zapocet: ANO 11.5.2005 M.Šárfy zaver: 16/5 Zpracuje MI 28/5 OK, obě rozšíření *35 test: 3/6 80% *24Pokud bych já bodoval cvičení, asi bych se na pravidla, která se nám oběma nelíbí, jednoduše vysral. Co nadělám, když se budu snažit, můžu se zkusit protlačit do nějakých cvik na fyzice, aspoň bych se musel doučit to, co jsem v minulosti zanedbal.
překvapuje mě, že tento aspekt nemá vliv na nasazení Javy ve webových aplikacích, kde by paměťová náročnost měla hrát nemalou roli.Spočítej si cenu programátorů v C++, připočti k tomu fakt, že nemáš za zadkem nic jako jboss, nebo Apache, Sun případně Eclipse a potom to porovnej s cenou jednoho serveru, který má dost výkonu, aby deficit Javy utáhl. Z ekonomického hlediska by se takové nasazení C++ rovnalo sebevraždě ... předpokládaný nárůst efektivity aplikace by se pravděpodobně nikdy nezaplatil.
import java.util.Hashtable; public class Door { private String number; private boolean open; private static int count; /** * Constructor * * @param number * string "number" of the door */ public Door(String number) { this.number = number; System.out.println("Object count: " + number); // new Door("HAHA"); // let's go cycling } /** * Main function. */ public static void main(String args[]) { int count=1; Door d; Hashtable h = new Hashtable(); while(true){ System.out.println("Object count: " + (count++)); d = new Door(Integer.toString(count)); // let's go cycling : h.put(new Integer(count),d); count++; } } }
Anketa
Losnu nebo Mažňáka?
Ále, třeba Bahňáka! (31 %)
Java RULEZZ! (30 %)
C++ RULEZZ! (35 %)
Co kecáš, Java paměť vůbec nepotřebuje! (17 %)
C++ na programování a na Jávu na dovolenou. (36 %)
Džáva, jedině džáva! (13 %)
Lama, seš LAMA! (27 %)
Já programuju v BASICu. (12 %)
Všichni jste divní. Jenom já jsem Smalltalk! (18 %)
Celkem 83 hlasů.
219% je na 83 hlasů celkem dost :)