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í
×
16.11. 17:00 | Nová verze

Simon Long představil na blogu Raspberry Pi novou verzi 2018-11-13 linuxové distribuce Raspbian určené především pro jednodeskové miniaturní počítače Raspberry Pi. Přehled novinek v poznámkách k vydání. Společně s Raspbianem byl aktualizován také instalační nástroj NOOBS (New Out Of the Box Software). Simon Long z novinek zdůrazňuje multimediální přehrávač VLC s hardwarovou akcelerací nebo vývojové prostředí pro Python Thonny ve verzi 3. Ke stažení jsou nově také lite a full obrazy Raspbianu. Raspbian Full opět obsahuje software Mathematica.

Ladislav Hagara | Komentářů: 0
16.11. 02:00 | Nová verze

Krátce po vydání Debianu 9.6 oznámil Tomáš Matějíček vydání verze 9.6 dnes již na Debianu založené živé linuxové distribuce Slax. Vedle vylepšení z Debianu je opraveno několik malých chyb. Opraveno bylo bootování pomocí PXE. Novinkou je skript s názvem pxe pro spuštění vlastního PXE serveru.

Ladislav Hagara | Komentářů: 0
16.11. 01:00 | Nová verze

Byla vydána beta verze Red Hat Enterprise Linuxu 8. Přehled novinek v příspěvku na blogu a v poznámkách k vydání.

Ladislav Hagara | Komentářů: 3
15.11. 13:44 | IT novinky

Nadace Raspberry Pi na svém blogu představila (YouTube) jednodeskový počítač Raspberry Pi 3 Model A+. Toto menší Raspberry Pi 3 lze koupit za 25 dolarů.

Ladislav Hagara | Komentářů: 0
15.11. 06:00 | Pozvánky

Dnes a zítra probíhá v Praze konference Internet a Technologie 18 pořádaná sdružením CZ.NIC. Sledovat ji lze online.

Ladislav Hagara | Komentářů: 0
15.11. 01:11 | Komunita

V září proběhl v Madridu Open Source CubeSat Workshop 2018. Videozáznamy přednášek byly zveřejněny na YouTube.

Ladislav Hagara | Komentářů: 1
15.11. 00:55 | Zajímavý software

Společnost Amazon představila Amazon Corretto. Jedná se o fork a distribuci OpenJDK (Open Java Development Kit) s dlouhodobou podporou od Amazonu. Ke stažení je preview verze 8. V plánu je také verze 11. Zdrojové kódy jsou k dispozici na GitHubu. Jedná se o reakci na oznámení společnosti Oracle, že bezplatné aktualizace její Javy nebude možné po lednu 2019 používat komerčně. Název Coretto vychází z Caffè corretto, tj. espressa s alkoholem.

Ladislav Hagara | Komentářů: 13
14.11. 12:44 | Nová verze

Po roce vývoje od vydání verze 5.2.0 byla vydána verze 5.3.0 svobodného integrovaného vývojového prostředí KDevelop (Wikipedie). Novinkou je analyzátor Clazy. Vylepšena byla podpora programovacích jazyků C++, PHP a Python. Ke stažení a k vyzkoušení je i binární balíček s KDevelopem 5.3.0 ve formátu AppImage.

Ladislav Hagara | Komentářů: 0
14.11. 05:55 | Komunita

Ubuntu 19.04 bude mít kódové jméno Disco Dingo. Dle oznámení v diskusním listu ubuntu-devel-announce je ve vývojové verzi Disco Dinga výchozím Pythonem 3 verze 3.7. Perl byl aktualizován na verzi 5.28. OpenSSL 1.0 bude nahrazeno OpenSSL 1.1.1 LTS. Nové instalace Dinga budou mít sloučený /usr. Stane se tak 7 let po sloučení /usr ve Fedoře nebo Arch Linuxu.

Ladislav Hagara | Komentářů: 9
14.11. 02:22 | IT novinky

V pondělí a úterý proběhl v San Franciscu Chrome Dev Summit 2018. Přehled dění v příspěvcích na Chromium Blogu. Videozáznamy přednášek na YouTube. Představen byl například web pro webové vývojáře web.dev nebo rozšíření webového prohlížeče Chrome s názvem VisBug (YouTube) určené pro webdesignery. Slíbená je podpora Firefoxu.

Ladislav Hagara | Komentářů: 0
Jak nejčastěji otevíráte dokumenty na počítači?
 (92%)
 (3%)
 (5%)
Celkem 128 hlasů
 Komentářů: 10, poslední dnes 00:13
Rozcestník

Sysinternals také na Linuxu

Microsoft potvrdil portaci vybraných nástrojů z balíku Sysinternals na Linux. Na GitHubu jsou k dispozici zdrojové kódy nástroje ProcDump. Potvrzena je portace nástroje ProcMon [Slashdot].

8.11. 00:55 | Ladislav Hagara | Zajímavý projekt


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

Komentáře

Vložit další komentář

8.11. 09:06 frr | skóre: 33
Rozbalit Rozbalit vše Re: Sysinternals také na Linuxu
Hm to je asi tak užitečné jako Linux subsystem for Windows. Kdyby namísto nošení dříví do lesa radši oficiálně portnuli strace na Windowsy, nebo lépe, podpořili třeba vývoj APImonitoru od Rohitaba Batry. Možná by se pak pod Windows dalo trochu debugovat, aniž by člověk musel reinstalovat třičtvrtě systému (výměna win32/win64 binárek za "debug versions", včetně kernelových modulů).
[:wq]
8.11. 13:56 biolog
Rozbalit Rozbalit vše Re: Sysinternals také na Linuxu
Debugování pod Windows funguje bezvadně i bez nahrazování jakéhokoliv DLLka či kernelových modulů. Stačí ve Visual Studiu zaškrtnout, že má používat Mikrosoftí symbol servery. (U jiných debuggerů bývá obdobný přepínač.)
8.11. 14:31 Aleš Kapica | skóre: 48 | blog: kenyho_stesky | Ostrava
Rozbalit Rozbalit vše Re: Sysinternals také na Linuxu
Debugování pod Windows funguje bezvadně … Stačí ve Visual Studiu zaškrtnout,…
Víš, někteří lidé jsou zvyklí debugovat věci na konzoli, a bez klikátek, protože tam vidí co se děje, a výstup mohou si kupř. přesměrovat do souboru k podrobnějšímu prostudování.
8.11. 15:03 oryctolagus | skóre: 29 | blog:
Rozbalit Rozbalit vše Re: Sysinternals také na Linuxu
Debugování pod Windows funguje bezvadně i bez nahrazování jakéhokoliv DLLka či kernelových modulů. Stačí ve Visual Studiu zaškrtnout, že má používat Mikrosoftí symbol servery. (U jiných debuggerů bývá obdobný přepínač.)
A to řeší ten problém s absencí debug symbolů v non-debug knihovnách atd. slinkovaných oproti non-debug runtime?

Pokud ano, otázka pak je, k čemu ten debug mód vůbec je...
9.11. 18:32 biolog
Rozbalit Rozbalit vše Re: Sysinternals také na Linuxu
V DLL a EXE vyrobených microsoftími nástroji nejsou symboly nikdy, ani v debug buildech, ani kdybyste štelovali přepínače překladače a linkeru. Symboly jsou vždy v separátním souboru (*.PDB). PDB soubory jsou volně ke stažení pro snad všechny knihovny systému (pro např mspaint.exe), v normálním Windows, i v tom speciálním "checked build" (viz níže).

Jenom bývají problémy s tím, že pár dní po vydání záplat nebývají k dispozici PDB pro ty změněné kernel32.dll, ntdll.dll a podobné. Četl jsem na nějakém MS fóru, že je to jen nekompetence, a ne security by obscurity. Poslední rok se to subjektivně stává méně.
10.11. 12:05 oryctolagus | skóre: 29 | blog:
Rozbalit Rozbalit vše Re: Sysinternals také na Linuxu
S čím mam já problém je to, že debug build binárky se musí linkovat proti debug dependencím, takže člověk musí udržovat dvě sady všeho. Je nějak možný se tomuhle vyhnout, ie. mít debug binárku proti release dependencím + runtime?
10.11. 22:31 biolog
Rozbalit Rozbalit vše Re: Sysinternals také na Linuxu
Ono záleží na té které dependenci. Když člověk volá funkce v kernel32.dll, user32.dll a spol používají stejné DLL v debug i release, podobné to bývá s DLL třetích stran. Ale například MS C/C++ runtime knihovny a MFC knihovny mají jsou odlišné knihovny (a mají odlišné layouty struktur) v debug a v release - proto se ve windowsím světě považuje za špatnou praxi vystavovat ty závislosti ze své knihovny ven.

Takovou závislostí je i alokační funkce: v debug verzi ta funkce ověřuje spoustu věcí (historicky, od Vist oveřuje hodně vecí i holý systémový alokátor), takže je nutné, aby se alokovalo a uvolňovalo stejným alokátorem. Jinak by byl problém vyvíjet a debugovat DLL nezávisle na ostatních knihovnách. Takže když nějaká knihovna umožňuje externímu kódu alokovat paměť a v ní zkonstruovat objekt, měla by exportovat i funkci, která ten objekt zdestruuje a uvolní paměť pomocí stejného alokátoru. Někdy je ten požadavek splněný přirozeně, někdy se to musí dělat krkolomně. Např s pomocí COMu je to krkolomné vždy, ale aspoň vždy stejně.
11.11. 11:36 oryctolagus | skóre: 29 | blog:
Rozbalit Rozbalit vše Re: Sysinternals také na Linuxu
TL;DR je to hrůza.
Max avatar 8.11. 15:17 Max | skóre: 66 | blog: Max_Devaine
Rozbalit Rozbalit vše Re: Sysinternals také na Linuxu
Myslím, že nikdo nezpochybňuje možnosti debugování vyvíjených app ve VS. "frr" asi narážel na to, že většina windows jsou nedebugovatelný a když něco vyvíjím a chcípá to na nějaké core dll, tak nevím proč. Zda kvůli bugu v API, nebo zda kvůli jiné chybě atd.
Zdar Max
Měl jsem sen ... :(
9.11. 17:58 biolog
Rozbalit Rozbalit vše Re: Sysinternals také na Linuxu
Ano, pokud se core dll chová neočekávaně, vrací selhání, nebo nedejbože samo zaviňuje pád, tak symbol servery nepomůžou. Ale nepomůžou ani ty "debug verze" (frr tím asi myslí "checked build"). Na to je potřeba buď googlení nebo zdrojáky (ty jsou dostupné jen u některých knihoven).
8.11. 23:56 frr | skóre: 33
Rozbalit Rozbalit vše Re: Sysinternals také na Linuxu
Symbol servery? Tohle jsem neznal, díky za vysvětlivku :-)
[:wq]
9.11. 17:38 biolog
Rozbalit Rozbalit vše Re: Sysinternals také na Linuxu
To nastavení je v menu Tools, Options, Debugging, Symbols, v seznamu zaškrtnout položku "Microsoft Symbol Servers". Během ladění se k to mu nastavení dá dostat rychleji kliknutím pravým tlačítkem na zásobníku nebo v seznamu DLLek, ale předchozí postup zabere vždy.

Mám pocit, že při prvním spuštění debuggeru VS samo nabídne, že si ty PDB soubory bude stahovat samo. Raději bych, aby to nastavení bylo ve výchozím stavu zapnuto, ale v tomhle případě dali přednost soukromí před užitečností.
12.11. 19:42 x14
Rozbalit Rozbalit vše Re: Sysinternals také na Linuxu
A až tam v tom nastavení budete, tak si cestu pro symbolovou cache nastavte někam jinam než do tempu. Klidně třeba do "c:\Symbols". Vyplatí se to.
k3dAR avatar 8.11. 18:32 k3dAR | skóre: 51
Rozbalit Rozbalit vše Re: Sysinternals také na Linuxu
necham stranou, ze bejt uzivatel W10, tak "Windows subsystem for Linux" rozhodne vitam, protoze to neni virtual, neni to ani windows binarky, ale je to "DualSystem", takze bych rozhodne to pouzival a nez dotahovat GNU (a jine) nastroje nativni pro Win, bych vyuzil tohle...

jinak na prelomu stoleti kdyz sem Win jeste pouzival, byli nastroje od SysInternals (btw: nejsou to produkty Microsoftu, ten to jen koupil a prejmenoval na WindowsSysInternal) u me dost pouzivane, odchytit kterej soubor kdy kam a zda uspesne zapisuje/cte kdyz proces/app pustil a/nebo regmon s registrama cteni/zapis uspech/neuspech, dalo se tim dohledat spousta problemu... pretim sem na Amize k temuz (krome Reg) pouzival vybornej SnoopDOS... a nedavno sem tu v diskuzi s nekym resil ze na GNU/Linux NEexistuje program co by monitoroval cteni/zapis konkretnich souboru, coz prave ProcMon na Win dela(l), navic s prehlednym GUI (pro GNU/Linux sem nenasel ani CLI), s moznosti filtrovani, ukladani logu, behu nonstop, nebo pozastaveni logovani atd...
porad nemam telo, ale uz mam hlavu... nobody
8.11. 19:39 petr_p | skóre: 59 | blog: pb
Rozbalit Rozbalit vše Re: Sysinternals také na Linuxu

Neexistuje, protože ve vší obecnosti to nelze. (Proces otevře soubor, odlinkuje ho ze souborového systému, pak si uživatel vzpomene, že chce začít sledovat. Navíc to komplikuje možnost duplikovat či posílat deskriptory cizím procesům).

Nicméně kanón na každou velikost ptáka se vždy najde. Obyčejné řešení je lsof -f -- CESTA_K_SOUBORU. Výkonnější řešení v reálném čase je systemtapová sonda. A ultimátní řešení je používat jádro se zapnutým auditem a kýženou operaci dohledat v logu démona auditd.

11.11. 00:41 kolemjdoucí
Rozbalit Rozbalit vše Re: Sysinternals také na Linuxu
Proces otevře soubor, odlinkuje ho ze souborového systému, pak si uživatel vzpomene, že chce začít sledovat.
A kam ho odlinkuje? Mplayer otevře channel.conf a než ho začnu chtít sledovat tak fíí a je pryč?
Obyčejné řešení je lsof -f -- CESTA_K_SOUBORU. Výkonnější řešení v reálném čase je systemtapová sonda. A ultimátní řešení je používat jádro se zapnutým auditem a kýženou operaci dohledat v logu démona auditd.
Ano, Správce procesů je linuxová parodie. Spíš je to jen zabíječ procesů krom pár drobnějších možností jako změna pririty. Ten Gnu/Linux moc průhledný není, že něco zapisuje na disk poznáte až je disk plný a nemůžete už zapisovat nic.
12.11. 14:12 Vantomas | skóre: 27 | Praha
Rozbalit Rozbalit vše Re: Sysinternals také na Linuxu
A kam ho odlinkuje? Mplayer otevře channel.conf a než ho začnu chtít sledovat tak fíí a je pryč?
Třeba vmware esxi se swapem u virtuálu pracuje tak, že nejprve vytvoří soubor, otevře ho, smaže z filesystému, ale se souborem pracuje dál. Takže se pak stává to, že na NFS serveru vidím, že tam teče zápis 50MB/s, ale když chci přes inotify zjistit kam se to zapisuje, tak nic nezjistím.
14.11. 09:25 kolemjdoucí
Rozbalit Rozbalit vše Re: Sysinternals také na Linuxu
Díky, to je ale něco jiného, podobně fungoval flash do /tmp v linuxu i flash do \temp ve Windows, tohle jsou ojedinělé případy rychlé práce v RAM. Proč ale nemůžu sledovat třeba většinu r/w operací když otevřu třeba Firefox. Ano k tomu je ideální lsof ale bohužel není GUI, proč už to dávno není součástí Správce procesů, nechápu. A bohužel s tím nepočítají ani návrhové práce které už byli plánované. https://wiki.gnome.org/ReleasePlanning/FeaturePlans
14.11. 09:50 Michal Kubeček | skóre: 71 | Luštěnice
Rozbalit Rozbalit vše Re: Sysinternals také na Linuxu
tohle jsou ojedinělé případy rychlé práce v RAM

Vůbec ne. Ten smazaný soubor je pořád ve filesystému, má svůj inode, alokované bloky (které se podle potřeby ukládají na zařízení) a pracuje se s ním úplně stejně jako s kterýmkoli jiným souborem. Teprve když mu refcount klesne na nulu, fakticky se smaže (uvolní se bloky a inode), ale tak to opět funguje s jakýmkoli jiným souborem.

Proto se také syscall pro "smazání soubouru" jmenuje unlink(). On totiž pouze odlinkuje adresářovou položku, ke skutečnému smazání dojde až ve chvíli, kdy na soubor neodkazuje žádná adresářová položka (mohlo jich být víc) a nepoužívá ho žádný proces. To je většinou hned, ale může to klidně trvat hodiny, dny nebo ještě déle.

14.11. 11:28 oryctolagus | skóre: 29 | blog:
Rozbalit Rozbalit vše Re: Sysinternals také na Linuxu
Ano, a existují velmi dobré důvody, proč to takhle funguje. Oproti tomu např. mazání souborů na Windows je peklo, nejde smazat soubor otevřený jiným procesem nebo systémem, což v kombinaci s tím, že lidi dnes čím dál více používají všelijaké Google Drive syncery a podobné věci, znamená, že mazání souborů pravidelně náhodně selhává.
14.11. 10:35 oryctolagus | skóre: 29 | blog:
Rozbalit Rozbalit vše Re: Sysinternals také na Linuxu
Proč ale nemůžu sledovat třeba většinu r/w operací když otevřu třeba Firefox.
Tady se lidi ptají na sledování zápisu/čtení souborů, ale neřeknou pořádně, co vlastně chtějí sledovat a proč (viz XY problem). "Sledováí r/w operací" je širokej pojem.

Co přesně chceš udělat? Pokud chceš zjistit, co dělá konkrétní program - třeba Firefox - ve filesystému, tj. co kam zapisuje/čte, tak na to by ten strace měl posloužit celkom dobře.
Jendа avatar 14.11. 15:43 Jendа | skóre: 75 | blog: Výlevníček | JO70FB
Rozbalit Rozbalit vše Re: Sysinternals také na Linuxu
Třeba u mmapovaného souboru ti strace ukáže ten mmap, ale samotné operace už ne. (a u toho myslí předřečník „r/w operací“ každý přístup do takové namapované stránky, nebo jenom když to vyvolá hrábnutí na disk?)
Bojíte se, že když umřete, nebudete nikomu chybět? Pište kód bez komentářů a dělejte nedokumentované změny!
14.11. 19:18 Vantomas | skóre: 27 | Praha
Rozbalit Rozbalit vše Re: Sysinternals také na Linuxu
Tady se lidi ptají na sledování zápisu/čtení souborů, ale neřeknou pořádně, co vlastně chtějí sledovat a proč (viz XY problem). "Sledováí r/w operací" je širokej pojem.
Jelikož kolemjdoucí píše o tom, že to není součástí správců úloh v GUI, tak bych to viděl tak, že se potýká s tím samým co já. Vidím, že mi něco hrabe na disk, ale nevím co. Tak si chci spustit správce úloh a zjistit, že to dělá Chromium, protože se rozhodl pročistit cache s obrázky od hackerů z Alabamy.

Pokud se nemýlím, tak s strace se musí proces už spouštět a tak nějak to vypisuje hrozně moc věcí a vytěžuje zbytečně procesor a určitě tu aplikaci zpomaluje... Což je v tom mnou uváděném případě naprosto nepoužitelné, protože jde o případ, kdy už mi nějaké aplikace běží a najednou se sami od sebe zblázní.
14.11. 19:38 oryctolagus | skóre: 29 | blog:
Rozbalit Rozbalit vše Re: Sysinternals také na Linuxu
Vidím, že mi něco hrabe na disk, ale nevím co.
Existuje iotop, případně htop taky umí řadit podle I/O.
Pokud se nemýlím, tak s strace se musí proces už spouštět a tak nějak to vypisuje hrozně moc věcí
Nn, můžeš spustit strace připojením (attach) k existujícímu procesu. A můžeš mu říct, aby filtroval a vypisoval jen to, co chceš.

Souhlasim, že to není takhle out of the box kdovíjak user-friendly a že by to šlo zabalit do přívětivějšího (G)UI.
Jendа avatar 14.11. 23:16 Jendа | skóre: 75 | blog: Výlevníček | JO70FB
Rozbalit Rozbalit vše Re: Sysinternals také na Linuxu
Existuje iotop, případně htop taky umí řadit podle I/O.
Umíš řadit nikoli podle MB/s, ale podle IOPS? (je mi jasné, že díky readahead tohle může klamat) Minimálně na rotačních discích je to také zajímavá metrika (e.g. zasekaný stroj kvůli tomu, že mailserver neustále přehazuje 4KiB soubory ve frontě, a v iotopu to není vidět, protože to je nepatrný datový tok (navíc pokud je to jenom přesun a fsync, tak se většina propálí na metadatech filesystému)).
Bojíte se, že když umřete, nebudete nikomu chybět? Pište kód bez komentářů a dělejte nedokumentované změny!
8.11. 20:21 oryctolagus | skóre: 29 | blog:
Rozbalit Rozbalit vše Re: Sysinternals také na Linuxu
a nedavno sem tu v diskuzi s nekym resil ze na GNU/Linux NEexistuje program co by monitoroval cteni/zapis konkretnich souboru
man strace

Případně dtrace? Nevim teď, jak daleko jsou kluci s tím linuxovým portem, ale třeba by to šlo...
Jendа avatar 9.11. 01:51 Jendа | skóre: 75 | blog: Výlevníček | JO70FB
Rozbalit Rozbalit vše Re: Sysinternals také na Linuxu
To bys musel s strace spustit celý systém.

Ale máme audit. Např. (nezkoušel jsem to)
Bojíte se, že když umřete, nebudete nikomu chybět? Pište kód bez komentářů a dělejte nedokumentované změny!
9.11. 06:28 -nd-
Rozbalit Rozbalit vše Re: Sysinternals také na Linuxu
inotifywait
9.11. 08:23 luky
Rozbalit Rozbalit vše Re: Sysinternals také na Linuxu
presne tak, jde to pres *notify volani pripadne pres ftrace a dalsi nad tim postavene nastroje. Pripojte si tracefs a presctete si README.
9.11. 10:27 melkors | skóre: 13 | blog: kdo_chce_kam
Rozbalit Rozbalit vše Re: Sysinternals také na Linuxu
Historicko-technicka: Ta firma se puvodne jmenovala Winternals, pak na ne skocili pravnici MS a firmicka se prejmenovala na SysInternals
9.11. 11:01 debian+
Rozbalit Rozbalit vše Re: Sysinternals také na Linuxu
Potom je este FUSE. ... A info o procese (nazov, atd.) su definovane ako globalne premenne.
8.11. 10:24 R
Rozbalit Rozbalit vše Re: Sysinternals také na Linuxu
Este RegMon a uz budem konecne spokojny.
pepe_ avatar 8.11. 12:45 pepe_ | skóre: 47
Rozbalit Rozbalit vše Re: Sysinternals také na Linuxu

?

8.11. 12:51 debian+
Rozbalit Rozbalit vše Re: Sysinternals také na Linuxu
Hm, ukazka, ako parsuju /proc/PID/stat: src/Process.c
8.11. 12:57
Rozbalit Rozbalit vše Re: Sysinternals také na Linuxu
skrytý komentář Náš administrátor shledal tento komentář závadným.

nenávistný komentář

Zobrazit komentář
8.11. 13:06 fgsdfgsfdg
Rozbalit Rozbalit vše Re: Sysinternals také na Linuxu
To je naprosto priserny. Ma nekdo predstavu proc je to tak jak to je?
Max avatar 8.11. 13:26 Max | skóre: 66 | blog: Max_Devaine
Rozbalit Rozbalit vše Re: Sysinternals také na Linuxu
Levná pracovní síla?
Jinak jsem na to koukal a je to fakt hnus. Sice nejsem programátor, jen občas skriptuji, ale i mně to bije do očí.
Zdar Max
Měl jsem sen ... :(
9.11. 01:38 .
Rozbalit Rozbalit vše Re: Sysinternals také na Linuxu
Já jsem programátor a moc by mě zajímalo, co tě bije do očí.
Blaazen avatar 9.11. 04:02 Blaazen | skóre: 22
Rozbalit Rozbalit vše Re: Sysinternals také na Linuxu
Já v C nedělám, ale tohle vypadá na nedodržení DRY (don't repeat yourself), případně DIE (duplicating is evil) a Copy-and-paste programming.
Max avatar 9.11. 08:20 Max | skóre: 66 | blog: Max_Devaine
Rozbalit Rozbalit vše Re: Sysinternals také na Linuxu
To ošetření nulových hodnot při čtení. Copy paste té stejné věci na milion řádků. Když je pak něco třeba upravit, tak jak to udělám? Hromadným nahrazováním? Nechápu, proč to negeneruje dynamicky podle toho, co se snaží číst.
Zdar Max
Měl jsem sen ... :(
9.11. 08:26 luky
Rozbalit Rozbalit vše Re: Sysinternals také na Linuxu
treba to, proc to nenapsali jako scanf("%u%s%c%u%u%u...", &pid, comm, &state...)
9.11. 08:41 luky
Rozbalit Rozbalit vše Re: Sysinternals také na Linuxu
Musi se to cist nadvakrat rozseknuty posledni pravou zavorkou, protoze v comm muze byt mezera. Jinak pouziti scanf nic nebrani.
10.11. 12:24 Filip Jirsák | skóre: 67 | blog: Fa & Bi
Rozbalit Rozbalit vše Re: Sysinternals také na Linuxu
Řekl bych, že to bije do očí jenom neprogramátory. Programátoři tuší, jaké možnosti má C a že tohle je standardní způsob ošetření chybových stavů v C. Ale zase je na tom hezky vidět, proč pozdější jazyky zavedly koncept výjimek.
11.11. 11:40 oryctolagus | skóre: 29 | blog:
Rozbalit Rozbalit vše Re: Sysinternals také na Linuxu
Programátoři tuší, jaké možnosti má C a že tohle je standardní způsob ošetření chybových stavů v C.
Ta ošklivost toho kódu není daná (jen) limitacemi C. I v C by to šlo napsat pěkněji.
Ale zase je na tom hezky vidět, proč pozdější jazyky zavedly koncept výjimek.
Výjimky některé problémy vyřešily, ale na to konto přinesly problémy jiné, neméně nepříjemné.
11.11. 13:15 Filip Jirsák | skóre: 67 | blog: Fa & Bi
Rozbalit Rozbalit vše Re: Sysinternals také na Linuxu
Šlo by to napsat jinak. Jestli pěkněji, to je otázka – to záleží na konkrétním kódu a na vkusu.
11.11. 21:28 Michal Kubeček | skóre: 71 | Luštěnice
Rozbalit Rozbalit vše Re: Sysinternals také na Linuxu
Tady je řeč o zcela konkrétním kusu kódu.
11.11. 22:20 Filip Jirsák | skóre: 67 | blog: Fa & Bi
Rozbalit Rozbalit vše Re: Sysinternals také na Linuxu
Akorát že pouze v jedné variantě. Takže se to těžko porovnává, zda ta druhá, neexistující varianta je pěknější nebo není.
12.11. 07:23 Michal Kubeček | skóre: 71 | Luštěnice
Rozbalit Rozbalit vše Re: Sysinternals také na Linuxu
Hm… Takže když se dělá review patche, je naprosto nepřípustné napsat, že by se něco mělo udělat jinak a vysvětlit důvody resp. naznačit jak? Jediný přijatelný způsob je podle vás poslat svou vlastní verzi?
12.11. 16:58 Filip Jirsák | skóre: 67 | blog: Fa & Bi
Rozbalit Rozbalit vše Re: Sysinternals také na Linuxu
Jak jste přišel na to, že bych si něco takového myslel? Vy v tomto vlákně někde vidíte vysvětlení důvodů, proč by to mělo být napsáno jinak, nebo dokonce naznačené, jak jinak by to mělo být napsané? Já tu vidím jenom „pěkněji“, a to je dost ošemetné, protože často co jeden považuje za hezčí, jinému připadá jako ošklivější.

Jinak já jsem na začátku reagoval hlavně na představu neprogramátorů, že jakmile se ve zdrojovém kódu nějaké části opakují, je to špatně. Jenže ony se v kódu často opakují třeba takové věci, jako int function() nebo sekvence if () else atd. Protože to jsou prostě výrazové prostředky daného jazyka. Mezi výrazové prostředky nepatří jen klíčová slova, ale i konstrukce na vyšší úrovni. Je správně, nikoli špatně, pokud se tyhle konstrukce na vyšší úrovni opakují, tj. tu samou konstrukci všichni píšou stejně – každý pak na první pohled vidí třeba „aha, tohle je nekonečný cyklus“ a nemusí to detailně luštit z kódu.

No a to, co se v tom kódu opakuje, je pokud vím céčkový idiom pro ošetření chybového stavu. Takže na tom, že se opakuje, nevidím nic špatného, právě naopak – každému je to na první pohled jasné, nemusí každý ten if podrobně číst ale může ho přečíst jako jeden blok „ošetření chyby“. Řešit to ošetření chyby nějakou funkcí, aby se ušetřil jeden řádek kódu, nebo dokonce nějakým makrem, by z mého pohledu bylo ke škodě věci, protože by se tím, zatemnilo, co ten kód vlastně dělá.

Jistě, že by se ten kód dal napsat úplně jinak. Třeba použít nějaký triviální parser, nebo dokonce plnohodnotný parser. Ale to, že by se to napsalo jinak, vůbec neznamená, že by to bylo hezčí nebo dokonce lepší. A bez toho, že někdo alespoň naznačí, jak jinak by to napsal, se to opravdu posoudit nedá.
12.11. 17:21 oryctolagus | skóre: 29 | blog:
Rozbalit Rozbalit vše Re: Sysinternals také na Linuxu
Jinak já jsem na začátku reagoval hlavně na představu neprogramátorů, že jakmile se ve zdrojovém kódu nějaké části opakují, je to špatně.
Aha, pardon, teď koukám, že jsem v tom původním komentáři přehlídl to "ne" v "neprogramátor"...

Souhlasim, že ta metrika "pěknější kód" je do značný míry subjektivní...
xxx avatar 13.11. 21:49 xxx | skóre: 42 | blog: Na Kafíčko
Rozbalit Rozbalit vše Re: Sysinternals také na Linuxu

Je to takovej levl junior:

const char *err[] = {"Can't parse num1",
                      "Can't parse num2",
                      ...}
ret = sscanf(line,"%d %d ...", &num1, &num2, ...);
if(ret < ITEMS) {     
    if(!errno) {         
        fprintf(stderr, "%s", err[ret]);
    else         
        fprintf(stderr, "wtf?");      
    return FAIL; 
}  
return OK; 

Please rise for the Futurama theme song.
8.11. 16:20 AlYoSHA
Rozbalit Rozbalit vše Re: Sysinternals také na Linuxu
Asi outsourcing v Kazachstane. :-)
8.11. 14:47 lazywriter
Rozbalit Rozbalit vše Re: Sysinternals také na Linuxu
Koukám, že to Microsoft s tím "Embrace, extend, and extinguish" myslí vážně.
8.11. 13:21 Zdenek 'Mst. Spider' Sedlak | skóre: 38 | blog: xMstSpider
Rozbalit Rozbalit vše Re: Sysinternals také na Linuxu
:-D

sounds like nmon http://nmon.sourceforge.net/pmwiki.php

#1 thing to remember when coding for linux / unix : ==> it was probably already done. <==
9.11. 11:37 Onanym
Rozbalit Rozbalit vše Re: Sysinternals také na Linuxu
Tak ještě chvíli a přerod GNU/Linux v SystemD/Windows bude dokonán

Založit nové vláknoNahoru


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