abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
    včera 17:00 | IT novinky

    Podvodné reklamy na sociálních internetových platformách, jako je Facebook, Instagram nebo X, vytvořily loni v Česku jejich provozovatelům příjmy 139 milionů eur, tedy zhruba 3,4 miliardy korun. Proti roku 2022 je to nárůst o 51 procent. Vyplývá to z analýzy Juniper Research pro společnost Revolut. Podle výzkumu je v Česku zhruba jedna ze sedmi zobrazených reklam podvodná. Je to o 14,5 procenta více, než je evropský průměr, kde je podvodná každá desátá reklama.

    Ladislav Hagara | Komentářů: 0
    včera 15:44 | Nová verze

    Desktopové prostředí KDE Plasma bylo vydáno ve verzi 6.6 (Mastodon). Přehled novinek i s videi a se snímky obrazovek v oficiálním oznámení. Podrobný přehled v seznamu změn.

    Ladislav Hagara | Komentářů: 0
    včera 03:22 | Nová verze

    Czkawka a Krokiet, grafické aplikace pro hledání duplicitních a zbytečných souborů, byly vydány ve verzi 11.0. Podrobný přehled novinek v příspěvku na Medium. Od verze 7.0 je vedle frontendu Czkawka postaveného nad frameworkem GTK 4 vyvíjen nový frontend Krokiet postavený nad frameworkem Slint. Frontend Czkawka je už pouze v udržovacím módu. Novinky jsou implementovány ve frontendu Krokiet.

    Ladislav Hagara | Komentářů: 15
    včera 02:00 | Zajímavý článek

    Jiří Eischmann na svém blogu publikoval článek Úvod do MeshCore: "Doteď mě radioamatérské vysílání úplně míjelo. Když jsem se ale dozvěděl, že existují komunity, které svépomocí budují bezdrátové sítě, které jsou nezávislé na Internetu a do značné míry taky elektrické síti a přes které můžete komunikovat s lidmi i na druhé straně republiky, zaujalo mě to. Když o tom přede mnou pořád básnili kolegové v práci, rozhodl jsem se, že to zkusím taky.

    … více »
    Ladislav Hagara | Komentářů: 3
    16.2. 22:55 | Nová verze

    Byla vydána verze 0.5.20 open source správce počítačových her na Linuxu Lutris (Wikipedie). Přehled novinek v oznámení na GitHubu. Instalovat lze také z Flathubu.

    Ladislav Hagara | Komentářů: 0
    16.2. 12:44 | IT novinky

    Peter Steinberger, autor open source AI asistenta OpenClaw, nastupuje do OpenAI. OpenClaw bude převeden pod nadaci a zůstane otevřený a nezávislý.

    Ladislav Hagara | Komentářů: 0
    16.2. 03:11 | Zajímavý článek

    Společnost Backblaze zveřejnila statistiky spolehlivosti pevných disků používaných ve svých datových centrech za rok 2025. Ke konci roku 2025 vlastnila 349 462 pevných disků. Průměrná AFR (Annualized Failure Rate), tj. pravděpodobnost, že disk během roku selže, byla 1,36 %. V roce 2024 to bylo 1,57 %. V roce 2023 to bylo 1,70 %. V roce 2022 to bylo 1,37 %.

    Ladislav Hagara | Komentářů: 13
    15.2. 21:55 | Zajímavý software

    Nástroj sql-tap je proxy mezi aplikací a databází, které zachytává všechny SQL dotazy a zobrazuje je v terminálovém rozhraní. Zde lze téměř v reálném čase zkoumat dotazy, sledovat transakce a spouštět SQL příkaz EXPLAIN. Podporované databázové systémy jsou pouze PostgreSQL a MySQL. Zdrojový kód je dostupný na GitHubu, pod licencí MIT.

    NUKE GAZA! 🎆 | Komentářů: 0
    15.2. 13:55 | Nová verze

    Byla vydána nová verze 9.2 textového editoru Vim (Vi IMproved). Přináší vylepšené doplňování, podporu schránky ve Waylandu, podporu XDG Base Directory (konfigurace v $HOME/.config/vim), vylepšené Vim9 skriptování nebo lepší zvýrazňování změn. Vim zůstává charityware. Nadále vybízí k podpoře dětí v Ugandě. Z důvodu úmrtí autora Vimu Brama Moolenaara a ukončení činnosti jím založené charitativní organizace ICCF Holland projekt Vim navázal spolupráci s charitativní organizaci Kuwasha.

    Ladislav Hagara | Komentářů: 4
    14.2. 12:33 | Zajímavý projekt

    Byl představen editor MonoSketch, webová aplikace pro tvorbu diagramů, technických nákresů, flowchartů a různých dalších vizualizací, to vše jenom z ASCII znaků. Všechny operace běží pouze v prohlížeči uživatele a neprobíhá tedy žádné nahrávání dat na server. Zdrojový kód aplikace (drtivá většina Kotlin, žádné C#) je dostupný na GitHubu pod licencí Apache 2.0.

    NUKE GAZA! 🎆 | Komentářů: 5
    Které desktopové prostředí na Linuxu používáte?
     (19%)
     (6%)
     (0%)
     (11%)
     (27%)
     (3%)
     (4%)
     (2%)
     (12%)
     (27%)
    Celkem 892 hlasů
     Komentářů: 25, poslední 3.2. 19:50
    Rozcestník

    Několik poznámek k Eclipse CDT 4.0 – část druhá

    30.8.2007 02:43 | Přečteno: 1989× | desktop linux | Výběrový blog | poslední úprava: 30.8.2007 02:44

    Navigace v kódu

    Dnes se podíváme na zoubek navigaci v kódu. Abychom si rozuměli, pod „Navigací v kódu“ myslím všechny život zjednodušující technologie jako autocomletion, content assist, code assist, všechno to co zahrnuje Microsoft pod pojem Intellisence a ještě něco navíc, automatická nápověna napojená na autocompletion, vyhledání referencí (míst kde je funkce volána, použita proměnná), vyhledání definic prvku. Trochu tady panuje chaos v termínech. Pokud víte nějaký lepší souhrnný název, dejte vědět v diskusi.

    CDT parser se snaží kódu skutečně porozumět. Kód je přeložen do AST (Abstract Syntax Tree) struktury. Proces je to velmi podobný kompilaci. Na takto zkompilovaném AST stromu jsou založeny všechny vyhledávače referencí a deklarací, navigace v kódu, code assist, všechny formy napovídání, inteligentní přejmenovávání. Všechno to pohání jeden engine, to mě dodalo kuráž všechno hodit pod jeden souhrnný termín.

    Takto inteligetní prohledávání oceníte hlavně, když hledáte volání metody nebo člena datové struktury. Pokud je to metoda s na potvoru obecným jménem, jako accept(), submit(), atd. ctags nebo jednoduché vyhledávání vás zavalí nerelevantními nálezů. Bavíme se samozřejmě hlavně o rozsáhlejších projektech, tam kvality IDE oceníte.

    Parsování C/C++ je nepoměrně složitější než Java kódu. Ach ty nejednoznačnosti. Jednoduchý příklad: x * y znamená x krát y, nebo že proměnná y je typu ukazatel na x? Aby tomu přišel parser na kloub, musí vidět kód v širších souvislostech. To je náročné jak na čas – mnohem komplexnější rekurze, nutná víceprůchodovost - tak na paměť a to tak, že u současné implementace parseru taky klidně může dojít :) K tomu připočtěte direktivy preprocesoru, inline rozvoje, šablony, dopředné deklarace, vícenásobnou dědičnost a bůhví co ještě. Pokud se zajímáte o problematiku parsování, na rozdíl ode mě, mrkněte na dva linky dole.

    V CDT pro spuštění navigace není nic extra nastavovat (na rozdíl třeba od KDevelopu). Stačí spustit ./configure u Autools based brojektů, to je velká většina Linuxových open source programů, protože ten generuje jak Makefile tak hodně hlavičkových souborů, bez kterých je parser kódu ztracený. Parser si už sám osahá a naindexuje všechny lokální i externí definiční soubory, pokud je na disku úspěšně najde. Než si začnete stěžovat na případnou nefunkčnost navigace doporučuji celý projekt rovnou i zbuildovat, jeden nikdy neví co se všechno během buildu generuje.

    Celý systém navigace pro C/C++ je věrná a vcelku úplná kopie navigace pro Javu. Kdo s Eclipse JDT pracoval, potvrdí že je to podobnost pozitivní. Mezi moje oblíbené vlastnosti:

    Přehledný seznam referencí a deklarací zvoleného prvku stejně jako u Java protějšku. CDT tady nerozlišuje mezi definicí (*.cpp) a deklarací (*.h) najde označí je jako deklaraci oba a je už na vás na co kliknete. Seznam je editovatelný, nalezené výsledky uložitelné. Funkčnost je bleskově dostupná přes kontextové menu (pravé myšítko).

    Rychlý skok na definici. Držíte CTRL a jen klikáte, relevantní prvky se sami podtrhávají, nebo lze pře F3.

    Rychlá nápověda, stačí chvíli podržet myš nad relevantním prvkem. Funguje jak pro lokální prvky tak pro externí z knihoven, tedy pokud nějaké komentáře v *.h souboru jsou. Bohužel CDT nepodporuje Doxygen, takže komentář vidíte v „syrovém“ stavu.

    Špatná zpráva – na rozdíl od verze 3 moc to nefunguje. Mě napoprvé indexace proběhla, ale navigace se chovala, jakoby neexistovala. Když jsem změnil nastavení indexace na úplnou, nedoběhla dokonce. Progress bar se zastavil, asi únavou, na 70% a rozhodl se dál nepokračovat. Začal jsem tušit

    Následně jsme se dočetl, že plná indexace je vcelku nesmysl a přednastavená „rychlá“ indexace je přesně to co vám bude v 99% případů stačit, jsem opět změnil nastavení a tentokrát se indexer nechal přemluvit a bez zbytečného zdržování doběhl do konce a code assist začal asistovat, nápověda se objevovala.

    Ale radost byla předčasná. Nový parser si neporadí s dopřednými deklaracemi (forward declaration). Těmi je kód Kdenlive na kterém to celé testuji přímo prošpikován. Seznam definicí mi vrací všechna místa, kde je objekt dopředně deklarován, jen ne to co jsme opravdu chtěl – skutečnou definici třídy, relevantní hlavičkový soubor. Například Gui::KdenliveApp hned v main.cpp, KdenliveApp je základní nosná struktura celé aplikace. Najde všechno jen ne kdenlive.h kde je ona kýžená formulka „class KdenliveApp:public KDockMainWindow {...“. K tomu jsem se dopracoval až klasickým textovým vyhledáváním, to naštěstí funguje spolehlivě a poskytuje nadstandardní komfort.

    Naopak, nápověda a auto completion ke knihovnám Qt, KDE, MLT a FFmpeg chodí spolehlivě a je to rychlé jako blesk.

    Dobrá zpráva – na rozdíl od předešlé verze 3 je navigace blesková. Není to jen moje zjištění. Řada testerů na internetu recenzuje podobné pocity. Jeden to i změřil.

    http://rf2-dev.spaces.live.com/blog/cns!33114F671097246!136.entry - July 31, Eclipse Europa Review. Ze 40 sekund a více na maximálně 3s.To je slušný pokrok. Mimochodem, přešel z Visual Studia na Eclipse.

    Narazil jsem na zajímavý článek, který zdá se osvětluje jak prudký nárůst výkonu, tak i příčin současných problémů.

    http://cdtdoug.blogspot.com/2007/08/eclipse-cdt-more-than-just-for-writing.html – zápisek z Doughova blogu.

    In Callisto it did a full parse including all the header files included by the file in the editor, which for C++ with lots of templates and stuff, it took quite a while. In Europa, one of the features my intern worked on over the winter was to migrate this to use the index for the contents of the header files. It's way faster, and the author was very happy to see it.

    To potvrzuje co už jsem dočetl kusé informace jinde. Parser C nepoužíval plně indexeru tak jako Java, jen částečně, řada věcí se parsovala on-the-fly přímo ze zdrojových kódů, při každém zavolání, proto to bylo výrazně pomalejší. Vzpomínám si, že u starších verzí jsem dokonce musel prodlužovat maximální interval, aby code assist vůbec doběhl a něco ukázal. A jak jsem byl na sebe hrdý, že jsem přišel na to proč se mi nic neukazuje ;-) Bohužel, během popisované migrace na indexer došlo k narušení původní funčnosti. To je tak vždy když se hrabete v něčem co už chodilo, i ta nejlepší snaha přinese maximálně smíšený výsledek, něco se zlepšilo, něco se zákonitě muselo překopnout.

    Tento CVS commit potvrzuje, že CDT by skutečně mělo zvládnout forward deklarace a to už před drahně lety:

    http://download.eclipse.org/tools/cdt/docs/cvslog/20030812.html - CDT Commit Report for - August 12, 2003. Added Complte Parse support for elaborated types / forward declaration of classes.

    Soudě podle diskusní skupiny, nejsem jediný kdo zaregistroval podobné problémy. Nezbývá než čekat na záplatu nebo rovnou na opravnou verzi 4.1. Vzhledem k tou nárůstu rychlosti, je na co se těšit.

    V poslední, třetí části se dostane na refactoring, rychlé srovnání s KDevelopem, slibované odkazy a zbytek nesourodých poznámek, které mi bylo líto sušit bez užitku na disku.


    Odkazy:

    http://wiki.eclipse.org/CDT/designs/Overview_of_Parsing – very nice technical article about technical difficulties to parse C++ sources. How parsing is done in CDT, indexing, AST (Abstract Syntax Tree)

    http://www.ibm.com/developerworks/library/os-ecl-cdt1/index.html?S_TACT=105AGX44&S_CMP=EDU – implementation details about CDT. Goes very deep into CDT internals.

    Poznámky:

    The difference between the fast and full indexers is that the fast indexer will skip header files that have already been added to the index, while the full indexer will always write a copy of a header file to the index every time it is included.

           

    Hodnocení: 100 %

            špatnédobré        

    Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

    Komentáře

    Vložit další komentář

    30.8.2007 09:22 Tom K | skóre: 22
    Rozbalit Rozbalit vše Re: Několik poznámek k Eclipse CDT 4.0 – část druhá
    Mam bohuzel spatne zkusenosti prave s eclipse a autocompletion. u qt4 i po rucnim dopsani cest k hlavickovym souborum funguje doplnovani jen k nekterym tridam (na cem to zavisi se mi nepodarilo zjistit). Narozdil od kdevelopu, kde sice je potreba nastavit a nahodit qt4 cesty, ale aspon to funguje spolehlive pro vsechny tridy.
    echo -n "u48" | sha1sum | head -c3; echo
    Jiří Němec avatar 30.8.2007 09:28 Jiří Němec | skóre: 22 | blog: BluPix | Horní Smrčné
    Rozbalit Rozbalit vše Re: Několik poznámek k Eclipse CDT 4.0 – část druhá
    Mohl byste prosím popsat to nastavení u KDevelopu? Je to jeden z důvodů proč jsem opustil KDevelop a začal používat QDevelop, ale tam to taky 100% nefunguje.
    Spock: "Logic, logic, logic. Logic is the beginning of wisdom, not the end.
    30.8.2007 09:51 Tom K | skóre: 22
    Rozbalit Rozbalit vše Re: Několik poznámek k Eclipse CDT 4.0 – část druhá
    kdevelop-3.4.1 (v mensim nez 3.4.x qt4 nefunguje spravne)
    ve vlastnostech projektu v sekci c++ Support
    -spravne nastavit Qt Options
    -v zalozce Code Completion pridat Code Completion Databases pro qt4 (zvolit qt4 PCS importer a dat spravnou cestu pro include qt4. u OpenSuse 10.2 je to /usr/include)

    a pak uz si jen uzivat funkce <ctrl>+SPACE
    echo -n "u48" | sha1sum | head -c3; echo
    Jiří Němec avatar 30.8.2007 09:59 Jiří Němec | skóre: 22 | blog: BluPix | Horní Smrčné
    Rozbalit Rozbalit vše Re: Několik poznámek k Eclipse CDT 4.0 – část druhá
    Děkuju, funguje to pěkně.
    Spock: "Logic, logic, logic. Logic is the beginning of wisdom, not the end.
    30.8.2007 10:29 Espinosa | skóre: 24 | blog: Espblog | London
    Rozbalit Rozbalit vše Re: Několik poznámek k Eclipse CDT 4.0 – část druhá
    Muzete prozradit kterou verzi Eclipse CDT popisujete? Se starou 3.0 jsem byl vcelku spokojeny, 4.0 skutecne moc nefunguje, o tom je pulka meho vcerejsiho clanku.
    30.8.2007 10:40 Tom K | skóre: 22
    Rozbalit Rozbalit vše Re: Několik poznámek k Eclipse CDT 4.0 – část druhá
    Popisuju prave tu novou 4.0. Vcerejsi clanek jsem taky cetl, ale po dnesnim ve kterem je napsane ze v qt to funguje jsem nabyl presvedceni, ze by to prece jen nemuselo byt tak spatne (ne, ze by to bylo spatne, ale porad to neni ono)
    echo -n "u48" | sha1sum | head -c3; echo
    30.8.2007 12:08 Espinosa | skóre: 24 | blog: Espblog | London
    Rozbalit Rozbalit vše Re: Několik poznámek k Eclipse CDT 4.0 – část druhá
    No ono to melo vyznit, ze soucasna situace JE spatna. Slibne ale momentalne prakticky nepouzitelne. Pockejte si na 4.1

    To ze me chodi content assist pro Qt a KDE knihovny a ne pro vetsinu lokalnich definic, neznamena ze to jinde bude stejne, klidne to muze byt naopak. Funguje vam context assist alespon na neco? Projekt jste uspesne zkonfiguroval a zkompiloval? Jde to spustit?
    30.8.2007 16:31 Tom K | skóre: 22
    Rozbalit Rozbalit vše Re: Několik poznámek k Eclipse CDT 4.0 – část druhá
    -context assist aspon na neco. cast lokalnich cast globalnich. proc jede neco a neco ne jsem nevypozoroval
    -konfigurace byla trosku boj, ale s eclipse-qt slo importovat i existujici projekt
    -spustit to taky slo a delalo to to co ma (uz existujici a vyzkouseny projekt)
    echo -n "u48" | sha1sum | head -c3; echo
    31.8.2007 17:48 Espinosa | skóre: 24 | blog: Espblog | London
    Rozbalit Rozbalit vše Re: Několik poznámek k Eclipse CDT 4.0 – část druhá
    eclipse-qt - soudim ze to je nejaky plugin, ci sada pluginu. Jste si bezpecne jisty ze eclipse-qt ma chodit s CDT 4.0 ?

    Zkuste radeji cistou instalaci CDT. Berte to jako pokus. Ja jsem take puvodne elaboroval s autotools pluginem ale rychle jsem z toho vycouval, mozna to byl duvod proc mi content assist zacal alespon trochu chodit.

    Založit nové vláknoNahoru

    ISSN 1214-1267   www.czech-server.cz
    © 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.