Wireshark przechodzi na Qt

Wireshark przechodzi na Qt

    przez -
    36 534
    Sieć
    Wireshark to znany wielu osobom sniffer sieciowy dla systemów Linux i Windows. Jest on używany do rozwiązywania problemów z siecią, analizowania ruchu, rozwijania oprogramowania i protokołów komunikacyjnych oraz do celów edukacyjnych. Od początku swojego istnienia wykorzystywał bibliotekę GTK+, do budowy całego interfejsu graficznego oraz innych funkcji. W ostatnim czasie autorzy napotkali jednakże problemy z przenośnością kodu na wiele platform.

    Podjęto dość trudną decyzję o zmianie biblioteki GTK+ na pakiet Qt. Będzie miała ona wpływ na cały program, ponieważ trzeba przepisać i poprawić tysiące linii kodu, a także odpowiednio go również zaprojektować. Cała praca będzie trudna do wykonania i dlatego poszukiwani są chętni do pomocy.

    W internecie jest już dostępna pierwsza wersja rozwojowa, na której działają następujące funkcje:

    • Wszystko, co znajduje się w menu File i Edit
    • Można wyłapywać, filtrować i sprawdzać ruch
    • Można edytować ustawienia
    • Można śledzić strumienie
    • Można podglądać graficzne strumienie TCP

    • o_O

      Wreszcie. GTK- tak strasznie cięło przy dłuższych logach… Świetna decyzja.
      Widać coraz więcej deweloperów otwiera oczy i olewa tę chamską i samolubną społeczność gniotów.
      A gnome niech gnije.

      • marcinsud

        "chamską i samolubną" nawet nie wiesz jak bardzo to pasuje do twoich jak zawsze niczym niepodpartych wypowiedzi psujących dobrą opinie społeczności linuksa, kde i qt.

      • Mateusz

        haters gonna hate…

      • o_O

        Może zerknij sobie w historię moich komentarzy o gnome i gtk, to znajdziesz wiele przykładów na których opieram moją opinię. Skoro kłamiesz, że niczym nie popieram moich opinii, to zapewne przejrzałeś te komentarze?

        A jeśli cię to nie przekona, to wpadnij na gnomowe listy dyskusyjne, to szybko się ze mną zgodzisz.

      • Gumirek

        Lol, pierwsze zdanie mnie dobiło.

      • o_O

        Możesz rozwinąć swoją opinię?

      • Gumirek

        Pierwszy z brzegu przykład – Podaj benchmark lub jakiekolwiek inne chociaż w połowie obiektywne źródło, które dowodzi że to właśnie GTK (a nie inna część programu) było przyczyną "cięcia się [Wiresharka] przy dłuższych logach" i najlepiej jeszcze dlaczego z Qt będzie lepiej.

        Zobaczymy na czym jeden z tych "przykładów na których opierasz swoją opinię".

      • Gumirek

        Zobaczymy jeden z tych*

      • o_O

        Chyba zgubiłeś wątek. Nie o tym rozmawialiśmy. Ogarnij się.

        Inna sprawa, że dowodów na powolność GTK- jest dużo w sieci, a jeszcze więcej na temat ich podejścia do standardów, przenośności i kompatybilności z innymi środowiskami.
        Co do GTK- vs Qt w Wiresharku.
        W Qt można z powodzeniem implementować takie listy wyświetlające znacznie bardziej skomplikowane rzeczy tak, żeby działało błyskawicznie. I poprawnie z punktu widzenia kodu.
        Na GTK jak zrobisz coś niestandardowego to dostajesz na dzień dobry konieczność robienia redraw co chwila w losowych sytuacjach, bo inaczej się kaszani. Chyba już sami twórcy GTK- się w tym gubią i też dodają losowo odrysowywanie jak leci, byleby wyglądało że działa. Więc jak rysujesz sobie sam pokaźną listę, nawet jak wysujesz tylko widoczny fragment, to jednak jeden redraw mniej czy więcej robi ogromną różnicę w wydajności – a co dopiero kilka losowych odrysowań w GTK- vs 1 porządny w Qt.
        Do tego dochodzi straszliwie powolny GObject.
        Nie pomaga też idiotyczne podejście używanie C do opisu prawie że fizycznych widgetów, które aż proszą się o klasy i uporządkowanie tego. A budrel w kodzie zawsze prowadzi do gorszej wydajności.

      • Gumirek

        Nie zmieniaj tematu, napisałeś że @Mateusz niesłusznie cie oskarżył o hejterstwo

        "Skoro kłamiesz, że niczym nie popieram moich opinii, to zapewne przejrzałeś te komentarze? "
        ~o_O

        No to poprzyj swoją opinię sformułowaną w pierwszym komentarzu. Poprzyj ją czymś konkretnym co można uznać za obiektywne. Nie wchodząc w offtop podejścia do standardów, przenośności i kompatybilności z innymi środowiskami.

      • o_O

        Nie wiem czy jesteś wart tego, żebym ci odpisywał…

        To nie są własne domysły, tylko fakty.
        Nie chce mi się teraz szukać po listach dyskusyjnych GTK- opisów jego błędów i męczarni jaką przechodzili developerzy aplikacji (i jak się do ich konstruktywnej krytyki odnosiła społeczność developerów GTK/gnome). Możesz sam poszukać jak to cię bardzo interesuje.

        I to ty zmieniasz temat:
        Gumirek: Lol, pierwsze zdanie mnie dobiło.
        o_O: Możesz rozwinąć swoją opinię?
        Owo pierwsze zdanie: "Może zerknij sobie w historię moich komentarzy o gnome i gtk, to znajdziesz wiele przykładów na których opieram moją opinię."
        Zatem czy możesz napisać co w tym zdaniu cię "dobiło"?

      • Gumirek

        No dobrze, już powiem ci o co chodzi:
        "Może zerknij sobie w historię moich komentarzy o gnome i gtk, to znajdziesz wiele przykładów na których opieram moją opinię."

        Co do historii twoich komentarzy, ciężko ich nie zauważyć. Problem w tym że nigdy nie mają poparcia.

        Ja prosiłem o konkrety. Nie potrafisz wskazać żadnego źródła na poparcie tezy zawartej w pierwszym komentarzu? No jak to? Przecież ty zawsze opierasz się tylko na rzetelnej wiedzy, a ludzie tutaj to barany, bo nie wierzą że jest rzetelna.

        Prawda jest taka że głównymi źródłami twojej wiedzy to "jest dużo w sieci", "nie chce mi się teraz szukać", "Nie wiem czy jesteś wart tego, żebym ci odpisywał."

        Wychodzi na to że jesteś kolejnym pionkiem, zwykłym hejterem ;> Tylko to chciałem sprawdzić przez tą moją jakże słabą prowokacje na początku.

        Rozumiesz już ocb?

      • Gumirek

        Podaj chociaż jedno wiarogodne źródło, a nie własne domysły.

      • Radek

        "Może zerknij sobie w historię moich komentarzy o gnome"

        Kto pamięta Smerfy, ten pewnie pamięta jak smerf Waźniak mawiał "poczytaj sobie księgę cytatów smerfa Ważniaka" :)

      • kalapek

        Pod Qt będzie się cięło tak samo bo to nie sprawa toolkitu, ale ten fakt przemilczysz, zobaczysz.

        Jak to mówią ideologię można sobie dorobić do wszystkiego.

      • pijaczek

        Tak – tu chodzi bardziej o przenośność (wsparcie dla Android i iOS w Qt 5.2), bo to, że się cięło nie było winą GTK (ma on gorzej zaimplementowane widgety, robi bezsensowne redrawy kiedy nie jest to potrzebne itp. ale w takim stosunkowo prostym interface jak wireshark ma to nie GTK był przyczyną).

      • gość

        Pod Qt nie będzie się cięło na kilku rdzeniach i kilku GB RAMu. Natomiast na jednym będzie lag nawet w oknie wyboru adaptera.
        Ponadto do zapamiętania dla wszystkich na przyszłość:
        Qt – Otwarta biblioteka programistyczna, nieco powolna na starszym sprzęcie, ale bardzo przenośna. Niestety implementacja na Windows najnowszej wersji dość mocno daje w kość chcącym podzielić się programem w wersji binarnej, gdyż wymaga 35MB DLL-ek na start.
        QT – Zamknięty zestaw kodeków multimedialnych, dzisiaj rzadko używany, lecz dawniej podstawowy w prezentacjach multimedialnych, przewodnikach czy grach komputerowych. Powstały nawet gry typu "film interaktywny" wykorzystujące ten standard.
        qt – moduł uruchomieniowy zadań programu do symulacji numerycznej. Umożliwia zarządzanie zadaniami symulacji procesu spęczania, kucia, prasowania, ekstruzji itp. w 2D i 3D.
        Takie trudne?

      • pijaczek

        @gość: Po pierwsze mocno przeceniasz zasoborzerność Qt… na nowych komputerach nowe Qt jest wydajniejsze niż GTK3, na starych również, a porównanie starszych wersji Qt i GTK też wypadają korzystnie dla Qt (i bez wątpienia Qt3 (technologicznie dalej lepsze niż GTK2) nawet na bardzo starych komputerach działa ekspresowo (ofc nie ma takich rozbudowanych możliwości jak Qt 4/5, ale i tak jest nieźle)). Ofc są wydajniejsze biblioteki jak EFL, ale rozwijają się strasznie powoli i możliwościami jak i wygodą ustępują konkurencji.

        Co do 35MB DLL na start to jakiś, żart? Na start (i niewiele więcej potrzebujesz – zazwyczaj na tym się kończy) potrzebujesz jedynie Qt Core i Qt Gui (~35MB to ma cale Qt (z obsługą baz danych SQL, skryptów, z wbudowanym WebKitem, OpenGL, obsługą sieci, multimediów, SVG, XML, Phonon…), a nie znam programu, który wykorzystuje wszystkie jego biblioteki), a w sumie mają one może z 8 MB (przykładowo nie mający w sobie prawie nic libgtk-3-0.dll to 4-5 MB, a do możliwości Core+Gui z Qt musisz mocno przebić 8MB z dodatkowymi bibliotekami z rodziny GTK).

      • gość

        I tu Cię zaskoczę, tak, 35MB w Qt 5. Nie chodzi mi o Core i GUI oczywiście. Qt 4, w którym piszę do dzisiaj (m.in. dlatego, że jak projekt jest prosty mogę go czasem pisać na kilku platformach) wymaga na start tylko Core i GUI, to jest jakieś 10MB, co można zmniejszyć do ~4MB stosując kompresję plików wykonywalnych (chociaż stosowana przeze mnie metoda kompresji DLL-ek może być kłopotliwa politycznie, wykorzystuje bowiem deasemblację, więc jakimś typowym UPX-em do 5MB).
        Natomiast Qt 5 to inna sprawa – tutaj wymagane są jakieś biblioteki typu icu??51.dll, które skutecznie rozdymają rozmiar programu do rzeczonych 35MB. Biblioteki są wymagane, cholera wie co robią, ale są wymagane i bez nich się nie uruchomi. Dawanie tylko źródeł pod Windowsy jest zaś raczej głupie, bo a. nie każdy ma tyle GB na dysku by posadzić środowisko budowania Qt, b. nie każdy pod Windowsami umie kompilować.

      • pijaczek

        Podpowiem… mówiłem o Qt5 dokładnie – to, że Qt domyślnie jest skompilowane z ICU (icu-project.org), nie oznacza, że musisz z niego korzystać. ICU wymagane jest jedynie przy WebKit (podobnie jak w WebKitGtk). Wystarczy sobie skompilować bez ICU i będziesz miał mniejsze libki niż w Qt4. Jeśli chcesz jeszcze mniejsze to po prostu podczas kompilacji włącz flagi generowania kodu małego, a nie wydajnego (zdecydowanie będzie to szybciej działać niż kod kompresowany).

      • gość

        Dzięki za info. Miałem z tą kompilacją spore problemy.
        Z ciekawości, bo próbując kompilować Qt po ok. 30 godzinach kończyło mi się miejsce na dysku, ile to zajmuje (źródła+pośrednie+wyniki)? Bo ja miałem wolne 25GB i zeżarło. Od razu mówię, kompilowałem jedne z pierwszych z linii 5, do dziś siedzę na 4.8, bo po prostu mam 4.8 na Windowsa, Debiana i jeszcze wiele bibliotek 4.x. portowane na Haiku.

      • o_O

        To ciekawe, wychodzi, że Qt kompiluje się najdłużej z całego Gentoo. Pewnie jakbym go nie instalował, to wszystko inne skompilowałoby się w minutę :/ A to wstrętne Qt, tyle czasu mi zmarnowało.

      • o_O

        Faktycznie zaskoczyłeś wszystkich. Swoją niewiedzą.

      • Praca w zespole z tobą musi być niezwykle motywująca.

      • o_O

        Nikt nie narzeka. Wręcz przeciwnie.
        Ale to pewnie dlatego, że się boją…

      • blind

        Chyba Twojej głupoty więc nie prowokują jej ekspresji werbalnej.

      • o_O

        Pewnie tak.

      • anon

        A dlaczego w ogóle używasz programów GTK? Przecież ich developerzy muszą być ignorantami, a w dodatku na pewno jest to tylko biedna próba uzyskania podobnej funkcjonalności odpowiednika w Qt.

    • Greg

      W końcu! GTK to ładne gówno :)

      • o_O

        W tym rzecz, że ono nawet ładne nie jest…

        Ale dobrze, że coraz więcej deweloperów to dostrzega i wpiera normalność i przyszłość.

    • Pingback: Wireshark 2.0.0 z nowym interfejsem w Qt i wieloma nowościami - OSWorld.pl()