Zobrazit příspěvky

Tato sekce Vám umožňuje zobrazit všechny příspěvky tohoto uživatele. Prosím uvědomte si, že můžete vidět příspěvky pouze z oblastí Vám přístupných.


Příspěvky - Standa Blábol

Stran: 1 ... 11 12 [13] 14 15 16
181
Vývoj / Re:Datove tridy v Pythonu
« kdy: 09. 03. 2020, 11:10:09 »
Python neumi nic, co by neumela java(akorat vylozene nebezpecne veci se tam delaji ukecane, typicky reflection api, to je zalesitost pro tvurce frameworku, bezny jouda do toho nema co hrabat), naopak to zdaleka neplati. Ostatne jython je imementace pythonu v jave, javu v pythonu nikdo nenapsal
A od začátku měl normální kolekce, do kterých vlezl objekt, který věděl, co je zač a ne pole Objectů s křišťálovou koulí a pitomým přetypováním, když mu koule řekla, co je to skutečně zač.

Tak to je trochu blbost, nemyslis? Objektu je prd po tom, co je zac, ta informace je dulezita predevsim pro programatora. To programator nevedel, co v tom Listu je, videl jen ze je to list Objektu, nez se do Javy daly genericke typy :D Pri spusteni aplikace a debugovani samozrejme slo videt co presne v Listu je za Tridu. A protoze Pythonu pouziva ducktyping, tak ty uz vubec nevis, co v te kolekci je, dokud si to nespustis.

Objektu se muzes zeptat a podle toho s nim pracovat - za behu. Timto s Tebou koncim, pokud si myslis, ze v Pythonu neni mozne statickou analyzou zjistit, co je v kolekci, je tato debata nadale zbytecna.

Mno, v Jave se operatorem instanceof taky dozvis, co je to za objekt. V Jave <1.4 se to tak taky po pythonovsku delalo. Proto jsem nahore vyslovne psal, ze staci psat na urovni java 1.5, ktera uvedla generika, to mluvime o roku 2004, mimochodem.

182
Vývoj / Re:Doporučte programovací jazyk pro Windows
« kdy: 09. 03. 2020, 11:05:16 »
Jistěže lze kdykoliv zjistit typ objektu. Bohužel to pak dopadá třeba takhle https://github.com/dddomodossola/remi/blob/master/remi/gui.py#L1914 . V javě (a spoustě jiných jazyků) by se v této situaci (pokud bych to nechtěl celé postavit jinak, víc objektově) udělalo více metod append s různými vstupními parametry (Map, Collection, Widget) a každá by se chovala jinak. Jak to udělat v pythonu? Udělat metody appendDict, appendCollection, appendWidget? Nebo jednu metodu, která ale ve skutečnosti dělá pomocí if elseif... tři různé věci, jak je to v ukázce.

Nicméně samozřejmě nesouhlasím, že by se java neměla od pythonu co učit. Chybějící mixiny jsou zásadní nedostatek, o který zakopávám v jednom kuse. A defaultní metody interfaců to zdaleka neřeší, protože jsou public a interfacy nemají vnitřní proměnné. Tuples by se sakra hodily. Rovněž nemožnost volat kód s checkovanými výjimkami ve streamu je zásadní omezení modernizace legacy kódu. Končí to obalováním bloků runtime výjimkami, což je zbytečný balast. Python to v generátorech neřeší, příjemně se používají.

Na druhou stranu chápu, že java musí držet nějakou kompatibilitu a přidávání nových vlastností není úplně jednoduché. Přechod python2 -> python3 byl úplně špatně, to mi nikdo nevymluví. Ale i java má své problémy, technické změny v javě 9 zasekly spoustu projektů na osmičce (nepočítám-li změnu licence).

O kvalitě vývoje v enterprise si nedělám iluze :-)

Souhlas, osobne pouzivm Javu na tezsi veci a Python3 na skriptovani.
A zrozvna mixin mi vubec nechybi, to povazuju za pomerne nebezpecnou zalezitost co vede k pekne zamotanemu kodu.
Osobne se vubec snazim vyhnou dedeni a preferuju kompozici ve stylu Spring bean injection. Tim ddosahnes stejny vysledek a bezpecne, pripadne problemy bouchnou hned pri startu programu programu kde te Spring posle do zadele s cyklickymi referencemi apod.
Co se tyce tuples, ty mi taky nechybi. Vyrobit staticky bean v Ecplise je par kliku na generator, staci definovat atributy, zbytek dogeneruje IDE. A mam moznosti si treba interceptovat pro potreby debug pristup k jednotlivym atributum beanu pres injektovany logger, to s holym python tuplem neudelas.
dalsi aletrnativa je Lombok, tam vypada definice beanu takto:
Kód: [Vybrat]
@RequiredArgsConstructor
@Accessors(fluent = true) @Getter
public class LoginResult {
 
    private final @NonNull Instant loginTs;
 
    private final @NonNull String authToken;
    private final @NonNull Duration tokenValidity;
     
    private final @NonNull URL tokenRefreshUrl;
 
}

Krasne citelne, kazdy z fleku vidi co to dela, par radku kodu.


Streamy se snazim osobne nepouzivat, pouze pro jednoduche transformace collections apod. Stejne je z toho ve vysledku bytecode s foreach cyklem, to radsi napisu ten foreach rovnou a obetuju par radku kodu navic vymenou za lepsi citelnost.

183
Vývoj / Re:Datove tridy v Pythonu
« kdy: 08. 03. 2020, 19:49:30 »
Chtel jsem napsat, ze je to prispevek klasickeho prislusnika Java sekty, ale jelikoz uznal Pythonu aspon ty baterky, neni zrejme jeste ztracen. Takze snad pochopi i navrhove nedostatky Javy a uzna, ze nektere principy pouzite v Pythonu fakt maji smysl. A nemyslim tim ducktyping, ten je skutecne IMO sporny.

 :D :D :D

Jak muzes rikat ze Ductyping je sporny, kdyz to je pointa toho, proc se v Pythonu dobre pisou skripty, a ty jsou zase pointa toho, proc to ma ty baterky. Udelej si poradek v hlave synku, jinak z tebe nikdy poradny Javista nebude a navzdy budes jen smutne koukat 8)

Než programovat v současné Javě, to už snad raději fakt Python 2. Naštěstí se Python vyvíjí, i Java se vyvíjí a jazyků, kterými se dá uživit, od doby vzniku a rozšíření Pythonu i Javy výrazně přibylo. Navíc už programuju málo, klidně to nechám Tobě a jiným kolegům.

Nejak jsem nepobral, proc by melo byr problem programovat v soucasne jave.
Dneska muzes delat v Jave na urovni 1.5 a nove veci zkratka nepouzivat, s tim nikdo nebude mit potiz.
Akorat musis ve frameworkach brat anotace jako cernou magii a pouzivat to tak, kdyz uz je nekdo linej se naucit nove veci.

Python2 se s tim merit neda ani hodne vzdalenym omylem.
Slusne pouzitelny je az Python3 a to prave proto, ze prebira koncepty z javy.

Python neumi nic, co by neumela java(akorat vylozene nebezpecne veci se tam delaji ukecane, typicky reflection api, to je zalesitost pro tvurce frameworku, bezny jouda do toho nema co hrabat), naopak to zdaleka neplati. Ostatne jython je imementace pythonu v jave, javu v pythonu nikdo nenapsal

184
Vývoj / Re:Doporučte programovací jazyk pro Windows
« kdy: 21. 02. 2020, 10:26:28 »
A hlavne HNED ZACIT POUZIVAT TEZKOTONAZNI IDE, primo na miru jazyka a dat aspon odpoledne tomu se to IDE radne naucit. Pro python PyCharm, pro Javu Eclipse nebo IntelliJ.
A rovnou zacit pouzivat rozumne practices, takze python3 s virtualenvem, PIPem, Javu s Mavenem. Oboje s GITem (GIThubem). IDE vetsinu tehle veci udela za tebe.

Tady spousta potroubku mekta o "ukecane jave" (a pravdepodobne se to pokousej psat ve VIMu), coz je pri pouziti slusneho IDE naopak obrovska vyhoda.
Kod je samopopisny, chape ho i laik, boilerplate vygeneruje IDE. Treba pro vyrobeni beanu staci napsat seznam atributu (a i ten si generuju VIMem), pak dam vygenerovat getter.setter. toString(), atrribute constructor, copy constructor.

Spousteni BAT se snaz vyhnout. Pokud potrebujes delat neco na admin urovni, pouzij Ansible, je to jednoduchy nastroj na nauceni.
Kdyz budes bastlit systemem quick and dirty, vrati se ti to a stejne nakonec skoncis u nejake podobne sady rozumnych nastroju, ktere jsem vyjmenoval vyse.

Gratuluji k popsání nejhoršího postupu pro začátečníka.  :)

Osobne jsem nikdy nepochopil princip, proc se ma zacatecnik ucit slepe ulicky, ktere pak pracne zahazuje a zbavuje se zlozvyku.
Apropos, ja delam v pythonu teprve chvili, a zacinal jsem rouvnou pythonem3, pres PyCharm s virtualenvem, vsecko objektove a rovnou do packages.

185
Vývoj / Re:Doporučte programovací jazyk pro Windows
« kdy: 21. 02. 2020, 10:02:06 »

Podívej se znovu na ten Python, to odsazování má smysl v každém jazyce.

Tohle je nejvetsi pitomost co jsem kdy v nejakem jazyku potkal. Odsazeni zalezi na tabulatoru, mezerach a pod.
Pocitat mezeri jestli ten kod patri do jednoho bloku odsazeni nebo ne je zdrojem "super chyb".

Michani mezer a tabelatoru = prasacky kod.

Nutnost pocitani mezer a preference pocitani zavorek = prasacky kod.

Vymezovani bloku kodu pomoci zavorek je pro cloveka neprehledne, proto se pouziva odsazovani i u jazyku, ktere ho k vymezeni bloku nepotrebuji. Pokud je kod dobre napsany, je to videt na prvni pohled bez nutnosti cokoliv pocitat. Zdrojem superchyb neni odsazovani, ale neprehledny kod, jde to za autorem kodu.

Ehm, o PEP8 (https://pypi.org/project/pep8/) a jeho linteru, ktery je primo zabudovany to PyCharmu jsi uz slysel?
Ten PyCharm ma i autoformatter, co to do PEP8 struktury prekope samocinne...


186
Vývoj / Re:Doporučte programovací jazyk pro Windows
« kdy: 21. 02. 2020, 09:58:35 »
Já doporučuji Python, jednoduchý, efektivní, všude dostupný.

Nevím co máš za problém s odsazováním, standard jsou 4 mezery. Můj oblíbený zlozvyk je psát celý program prakticky do jednoho souboru, takže mé python soubory běžně dosahují desítek tisíc řádek. Umožňuje mi to folding ve vimu a je pro mě pohodlnější otvírat foldy a pohybovat se mezi nimi, než mezi soubory. Ani u těchto obřích souborů nemám sebemenší problém s orientací v kódu a odsazení.


Boze, ty to vidis ...

187
Vývoj / Re:Doporučte programovací jazyk pro Windows
« kdy: 21. 02. 2020, 09:56:51 »
Doporucuju na male veci python, pokud nebude postacovat tak Javu nebo C#.

A hlavne HNED ZACIT POUZIVAT TEZKOTONAZNI IDE, primo na miru jazyka a dat aspon odpoledne tomu se to IDE radne naucit. Pro python PyCharm, pro Javu Eclipse nebo IntelliJ.
A rovnou zacit pouzivat rozumne practices, takze python3 s virtualenvem, PIPem, Javu s Mavenem. Oboje s GITem (GIThubem). IDE vetsinu tehle veci udela za tebe.

Tady spousta potroubku mekta o "ukecane jave" (a pravdepodobne se to pokousej psat ve VIMu), coz je pri pouziti slusneho IDE naopak obrovska vyhoda.
Kod je samopopisny, chape ho i laik, boilerplate vygeneruje IDE. Treba pro vyrobeni beanu staci napsat seznam atributu (a i ten si generuju VIMem), pak dam vygenerovat getter.setter. toString(), atrribute constructor, copy constructor.

Spousteni BAT se snaz vyhnout. Pokud potrebujes delat neco na admin urovni, pouzij Ansible, je to jednoduchy nastroj na nauceni.
Kdyz budes bastlit systemem quick and dirty, vrati se ti to a stejne nakonec skoncis u nejake podobne sady rozumnych nastroju, ktere jsem vyjmenoval vyse.

188
Server / Re:Python - doporučení deploymentu na servery
« kdy: 17. 02. 2020, 09:40:34 »
Jinak, co se tyce pythonu, ne uplne chapu tu prevelikou oblibu, momentalne nejpouzivanejsi jazyk.
Je to lepci nez perl nebo GO, ale treba jawe to nesaha po kotniky.

Pro Python je strašně moc knihoven vpodstatě na všechno a hrozně jednoduše se adoptují.
Takže než si to uvědomíš, začneš je používat, staneš se na nich závislý, a když hledáš
vhodnou náhradu, tak zjistíš, že by to bylo tak pracné, že to vzdáš.

Mno tak pro jawu je toho este vic nez pro python, https://mvnrepository.com/repos/central

Na pythonu me nejvic stval ten dynamicky typing.
V jawe vim co mi presne leze z metody a jake jsou typy parametru, vi to i IDE a adekvatne navadi pri psani kodu.
V pythonu musim porad v hlave drzet co z toho vlastne leze dovnitr a ven. Ve verzi 3.8 uz do toho dobastlujou typying.
Ono je IMHO lepci navrhnout jazyk na zacatku robustne, nez pak dobastlovat private atributy pres double underscores.

189
Server / Re:Python - doporučení deploymentu na servery
« kdy: 16. 02. 2020, 21:08:22 »
Taxem si to nasel sam

1. Stahnu na stroji s internetem PIP baliky, nutno pridat balik wheel, ktery to pak porebuje pri offline instalaci
# pip3 download -d offline/ wheel mako

2. Na cilovem serveru bez inetu si vyrobim prazdny virtualenv
# apt install python3-venv
# python3 -m venv my-project-env
# source my-project-env/bin/activate

3. Nainstaluju baliky do virtualenv
# pip3 install /home/xxx/offline/wheel-0.34.2-py2.py3-none-any.whl
# pip3 install /home/xxx/offline/Mako-1.1.1.tar.gz

Jinak, co se tyce pythonu, ne uplne chapu tu prevelikou oblibu, momentalne nejpouzivanejsi jazyk.
Je to lepci nez perl nebo GO, ale treba jawe to nesaha po kotniky.

190
Server / Python - doporučení deploymentu na servery
« kdy: 16. 02. 2020, 17:45:43 »
Konecne jsem se dokopal poslat perl do dejin a zacal jsem skriptovat v pythonu.

Vyvijim na woknech, mam pycharm community edition, ktery si vytvoril virtualenv a prer
s pip jsem do pycharmu natahal pr libraries jako napr Mako.

Potrebuju hint, jak vysledek snazeni dostat na linux server bez internetu (tedy bez PIPu), tedy nejakou obdobu Java FAT JAR, kde staci na  serveru mit JRE a pak staci nahrat jeden JAR a deployment je hotov.

Potrebuju nakopnout jakym zpusobem prenesu nejlepe cely virtualenv, abych mel zajistene presne verze knihoven.

191
Hardware / Re:Lenovo T490 s kernelem > 4.19.93 se neprobouzí
« kdy: 22. 01. 2020, 10:35:57 »
Jako prvni pokus bych updatoval BIOS.

192
Vývoj / Re:Rýchly vývoj administračného rozhrania
« kdy: 07. 01. 2020, 03:08:32 »
Podivej se na primefaces.org na widget datatable ve verzi inline editor.
Maji tam krasne demo.

Akorat ty columny se netahaji mysi, alebrz se definuji v xml souboru

194
Software / Re:Boj s grepem
« kdy: 03. 01. 2020, 17:52:58 »
A nebo prestat onanovat nad Perlem a pouzit veci co jsou na to urceny.

Kód: [Vybrat]
$ tshark -nr dump.pcap -T fields -e frame.time_epoch -e data | while read timestamp hexdata; do echo $timestamp `echo $hexdata | xxd -r -p`; done

1578063514.667469000 +ACK:GTHBD,550101,863574040725046,GL50,20191228211917,2389$
1578063518.964255000 +RESP:GTPDP,550101,863574040725046,GL50,20191228211914,2388$
1578063520.553689000 +ACK:GTHBD,550101,863574040725046,GL50,20191228211917,2389$

... a dale grepovat, sedovat, nebo cokolivstimdaldelat...

Hlavni vyhoda tohoto navrhu oproti trivialnimu pouziti PERL knihovny je v pouziti proklate rychleho BASHE na zpracovani predzvykanych radku a prevod z hexu utilitou XXD, proces vytvaren pro kazdy radek znova.
Takova roztomila fork bombicka.

Otazka je, co ma byt ucelem, jestli jednorazove vyhodnoceni, nebo to ma nekde bezet trvale a generovat reporty.

195
Software / Re:Boj s grepem
« kdy: 03. 01. 2020, 11:44:41 »
Všem děkuji za rady, ale lepší asi bude, když upřesním, co řeším. Mám pochytané packety do pcap, v některých je záznam o GPS poloze. Já potřebuji získat seznam GPS poloh s časem, který je uveden na první řádce a mezi ideálně časy, kdy v tom packetu ta poloha nebyla. Poloha bývá v packetech nad length 170.

V mém příkladu je GPS poloha například: 14.444723,50.101715



Kód: [Vybrat]
22:09:58.868523 IP (tos 0x60, ttl 125, id 8727, offset 0, flags [none], proto UDP (17), length 87)
    10.35.98.129.49261 > denethor.cz0.9871: [udp sum ok] UDP, length 59
        0x0000:  4560 0057 2217 0000 7d11 e5c7 0a23 6281  E`.W"...}....#b.
        0x0010:  c0a8 080b c06d 268f 0043 a7e8 2b41 434b  .....m&..C..+ACK
        0x0020:  3a47 5448 4244 2c35 3530 3130 312c 3836  :GTHBD,550101,86
        0x0030:  3335 3734 3034 3037 3235 3034 362c 474c  3574040725046,GL
        0x0040:  3530 2c32 3031 3931 3232 3832 3131 3030  50,2019122821100
        0x0050:  302c 3233 3832 24                        0,2382$
22:09:59.348520 IP (tos 0x60, ttl 125, id 8728, offset 0, flags [none], proto UDP (17), length 88)
    10.35.98.129.49261 > denethor.cz0.9871: [udp sum ok] UDP, length 60
        0x0000:  4560 0058 2218 0000 7d11 e5c5 0a23 6281  E`.X"...}....#b.
        0x0010:  c0a8 080b c06d 268f 0044 6c8f 2b52 4553  .....m&..Dl.+RES
        0x0020:  503a 4754 5044 502c 3535 3031 3031 2c38  P:GTPDP,550101,8
        0x0030:  3633 3537 3430 3430 3732 3530 3436 2c47  63574040725046,G
        0x0040:  4c35 302c 3230 3139 3132 3238 3231 3039  L50,201912282109
        0x0050:  3535 2c32 3338 3124                      55,2381$
22:12:06.950835 IP (tos 0x60, ttl 125, id 8729, offset 0, flags [none], proto UDP (17), length 87)
    10.35.98.129.53565 > denethor.cz0.9871: [udp sum ok] UDP, length 59
        0x0000:  4560 0057 2219 0000 7d11 e5c5 0a23 6281  E`.W"...}....#b.
        0x0010:  c0a8 080b d13d 268f 0043 8d16 2b41 434b  .....=&..C..+ACK
        0x0020:  3a47 5448 4244 2c35 3530 3130 312c 3836  :GTHBD,550101,86
        0x0030:  3335 3734 3034 3037 3235 3034 362c 474c  3574040725046,GL
        0x0040:  3530 2c32 3031 3931 3232 3832 3131 3230  50,2019122821120
        0x0050:  382c 3233 3834 24                        8,2384$
22:12:07.429099 IP (tos 0x60, ttl 125, id 8730, offset 0, flags [none], proto UDP (17), length 88)
    10.35.98.129.53565 > denethor.cz0.9871: [udp sum ok] UDP, length 60
        0x0000:  4560 0058 221a 0000 7d11 e5c3 0a23 6281  E`.X"...}....#b.
        0x0010:  c0a8 080b d13d 268f 0044 5dc8 2b52 4553  .....=&..D].+RES
        0x0020:  503a 4754 5044 502c 3535 3031 3031 2c38  P:GTPDP,550101,8
        0x0030:  3633 3537 3430 3430 3732 3530 3436 2c47  63574040725046,G
        0x0040:  4c35 302c 3230 3139 3132 3238 3231 3132  L50,201912282112
        0x0050:  3033 2c32 3338 3324                      03,2383$
22:17:10.346636 IP (tos 0x60, ttl 125, id 8731, offset 0, flags [none], proto UDP (17), length 87)
    10.35.98.129.62355 > denethor.cz0.9871: [udp sum ok] UDP, length 59
        0x0000:  4560 0057 221b 0000 7d11 e5c3 0a23 6281  E`.W"...}....#b.
        0x0010:  c0a8 080b f393 268f 0043 65be 2b41 434b  ......&..Ce.+ACK
        0x0020:  3a47 5448 4244 2c35 3530 3130 312c 3836  :GTHBD,550101,86
        0x0030:  3335 3734 3034 3037 3235 3034 362c 474c  3574040725046,GL
        0x0040:  3530 2c32 3031 3931 3232 3832 3131 3730  50,2019122821170
        0x0050:  382c 3233 3836 24                        8,2386$
22:17:10.766337 IP (tos 0x60, ttl 125, id 8732, offset 0, flags [none], proto UDP (17), length 173)
    10.35.98.129.62355 > denethor.cz0.9871: [udp sum ok] UDP, length 145
        0x0000:  4560 00ad 221c 0000 7d11 e56c 0a23 6281  E`.."...}..l.#b.
        0x0010:  c0a8 080b f393 268f 0099 f2d4 2b42 5546  ......&.....+BUF
        0x0020:  463a 4754 4354 4e2c 3535 3031 3031 2c38  F:GTCTN,550101,8
        0x0030:  3633 3537 3430 3430 3732 3530 3436 2c47  63574040725046,G
        0x0040:  4c35 302c 2c30 2c32 2c2c 312c 312c 302e  L50,,0,2,,1,1,0.
        0x0050:  302c 3432 2c32 3130 2e33 2c31 342e 3434  0,42,210.3,14.44
        0x0060:  3435 3132 2c35 302e 3130 3137 3232 2c32  4512,50.101722,2
        0x0070:  3031 3931 3232 3832 3130 3935 372c 3032  0191228210957,02
        0x0080:  3330 2c30 3030 312c 3430 3332 2c30 3344  30,0001,4032,03D
        0x0090:  392c 2c2c 3030 3030 2c32 3031 3931 3232  9,,,0000,2019122
        0x00a0:  3832 3131 3430 392c 3233 3835 24         8211409,2385$
22:19:06.951354 IP (tos 0x60, ttl 125, id 8733, offset 0, flags [none], proto UDP (17), length 173)
    10.35.98.129.62355 > denethor.cz0.9871: [udp sum ok] UDP, length 145
        0x0000:  4560 00ad 221d 0000 7d11 e56b 0a23 6281  E`.."...}..k.#b.
        0x0010:  c0a8 080b f393 268f 0099 f7a3 2b52 4553  ......&.....+RES
        0x0020:  503a 4754 4354 4e2c 3535 3031 3031 2c38  P:GTCTN,550101,8
        0x0030:  3633 3537 3430 3430 3732 3530 3436 2c47  63574040725046,G
        0x0040:  4c35 302c 2c30 2c32 2c2c 312c 312c 302e  L50,,0,2,,1,1,0.
        0x0050:  302c 3930 2c32 3039 2e37 2c31 342e 3434  0,90,209.7,14.44
        0x0060:  3437 3233 2c35 302e 3130 3137 3135 2c32  4723,50.101715,2
        0x0070:  3031 3931 3232 3832 3131 3435 352c 3032  0191228211455,02
        0x0080:  3330 2c30 3030 312c 3430 3332 2c30 3344  30,0001,4032,03D
        0x0090:  392c 2c2c 3030 3030 2c32 3031 3931 3232  9,,,0000,2019122
        0x00a0:  3832 3131 3930 382c 3233 3837 24         8211908,2387$
22:19:16.327809 IP (tos 0x60, ttl 125, id 8734, offset 0, flags [none], proto UDP (17), length 87)
    10.35.98.129.49845 > denethor.cz0.9871: [udp sum ok] UDP, length 59
        0x0000:  4560 0057 221e 0000 7d11 e5c0 0a23 6281  E`.W"...}....#b.
        0x0010:  c0a8 080b c2b5 268f 0043 9598 2b41 434b  ......&..C..+ACK
        0x0020:  3a47 5448 4244 2c35 3530 3130 312c 3836  :GTHBD,550101,86
        0x0030:  3335 3734 3034 3037 3235 3034 362c 474c  3574040725046,GL
        0x0040:  3530 2c32 3031 3931 3232 3832 3131 3931  50,2019122821191
        0x0050:  372c 3233 3839 24                        7,2389$
22:19:16.808192 IP (tos 0x60, ttl 125, id 8735, offset 0, flags [none], proto UDP (17), length 88)
    10.35.98.129.49845 > denethor.cz0.9871: [udp sum ok] UDP, length 60
        0x0000:  4560 0058 221f 0000 7d11 e5be 0a23 6281  E`.X"...}....#b.
        0x0010:  c0a8 080b c2b5 268f 0044 6648 2b52 4553  ......&..DfH+RES
        0x0020:  503a 4754 5044 502c 3535 3031 3031 2c38  P:GTPDP,550101,8
        0x0030:  3633 3537 3430 3430 3732 3530 3436 2c47  63574040725046,G
        0x0040:  4c35 302c 3230 3139 3132 3238 3231 3139  L50,201912282119
        0x0050:  3134 2c32 3338 3824                      14,2388$
22:21:24.229976 IP (tos 0x60, ttl 125, id 8736, offset 0, flags [none], proto UDP (17), length 87)
    10.35.98.129.56842 > denethor.cz0.9871: [udp sum ok] UDP, length 59
        0x0000:  4560 0057 2220 0000 7d11 e5be 0a23 6281  E`.W"...}....#b.
        0x0010:  c0a8 080b de0a 268f 0043 8438 2b41 434b  ......&..C.8+ACK
        0x0020:  3a47 5448 4244 2c35 3530 3130 312c 3836  :GTHBD,550101,86
        0x0030:  3335 3734 3034 3037 3235 3034 362c 474c  3574040725046,GL
        0x0040:  3530 2c32 3031 3931 3232 3832 3132 3132  50,2019122821212
        0x0050:  352c 3233 3842 24                        5,238B$
22:21:24.668765 IP (tos 0x60, ttl 125, id 8737, offset 0, flags [none], proto UDP (17), length 88)
    10.35.98.129.56842 > denethor.cz0.9871: [udp sum ok] UDP, length 60
        0x0000:  4560 0058 2221 0000 7d11 e5bc 0a23 6281  E`.X"!..}....#b.
        0x0010:  c0a8 080b de0a 268f 0044 3fff 2b52 4553  ......&..D?.+RES


A jeste jednodussi bude zkrapka pouzit perl knihovnu na PCAP soubory.
https://metacpan.org/pod/File::PCAP::Reader

Coz je uz uplna trivialita, staci v cyklu nad souborem volak nextpacket(),prevest si HEX payload do ascii stringu a vyparsovate zde regexem GPS pozici.

Stran: 1 ... 11 12 [13] 14 15 16