Homebrew (Wikipedie), správce balíčků pro macOS a od verze 2.0.0 také pro Linux, byl vydán ve verzi 4.5.0. Na stránce Homebrew Formulae lze procházet seznamem balíčků. K dispozici jsou také různé statistiky.
Byl vydán Mozilla Firefox 138.0. Přehled novinek v poznámkách k vydání a poznámkách k vydání pro vývojáře. Řešeny jsou rovněž bezpečnostní chyby. Nový Firefox 138 je již k dispozici také na Flathubu a Snapcraftu.
Šestnáctý ročník ne-konference jOpenSpace se koná 3. – 5. října 2025 v Hotelu Antoň v Telči. Pro účast je potřeba vyplnit registrační formulář. Ne-konference neznamená, že se organizátorům nechce připravovat program, ale naopak dává prostor všem pozvaným, aby si program sami složili z toho nejzajímavějšího, čím se v poslední době zabývají nebo co je oslovilo. Obsah, který vytvářejí všichni účastníci, se skládá z desetiminutových
… více »Richard Stallman přednáší ve středu 7. května od 16:30 na Technické univerzitě v Liberci o vlivu technologií na svobodu. Přednáška je určená jak odborné tak laické veřejnosti.
Jean-Baptiste Mardelle se v příspěvku na blogu rozepsal o novinkám v nejnovější verzi 25.04.0 editoru videa Kdenlive (Wikipedie). Ke stažení také na Flathubu.
TmuxAI (GitHub) je AI asistent pro práci v terminálu. Vyžaduje účet na OpenRouter.
Byla vydána nová verze R14.1.4 desktopového prostředí Trinity Desktop Environment (TDE, fork KDE 3.5, Wikipedie). Přehled novinek i s náhledy v poznámkách k vydání. Podrobný přehled v Changelogu.
Bylo vydáno OpenBSD 7.7. Opět bez písničky.
V Tiraně proběhl letošní Linux App Summit (LAS) (Mastodon). Zatím nesestříhané videozáznamy přednášek jsou k dispozici na YouTube.
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.
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 :)