Autor Wątek: UB & goto  (Przeczytany 7048 razy)

Offline Xender

  • Użytkownik

  • +1
# Sierpień 11, 2014, 21:31:42
Ale drugiej części to już nie raczyłeś przeczytać?
Raczyłem i wyciąłem. Powód nie ma znaczenia, C jakiś język musi pozostać bezkompromisowy. Są to C i C++.

będę twierdził, że więcej z goto szkody niż pożytku, i że dobrze że nowoczesne języki programowania go nie mają.
Mają, C++ jak najbardziej zalicza się do nowoczesnych. Poprzednie trochę wypadł z obiegu na kilka lat (C++03 - C++11, chociaż w międzyczasie był TR1), ale teraz nadrabia.

Standardy mają to do siebie, że można je zmieniać.
Ale do standardu C to Ty mi się nie przymierzaj.
Zrób własny język, gramatykę, semantykę, specyfikację, kompilator/interpreter i zobacz, jakie to skomplikowane - wtedy pogadamy.

Twórcy Javy przeoczyli lambdy i dodali je w wersji 8.
IIRC nie przeoczyli, tylko dodali, bo wcześniej długo upierali się przy wersji, że skoro mają <jakiś mechanizm z anonimowymi klasami, zapomniałem nazwy>, to lambdy są niepotrzebne.

Czyli co, Java 1X będzie miała przeciążanie operatorów? ;)

Jednocześnie dalej nie ma tam goto - widocznie nie jest potrzebne. Jak bym tworzył swój niskopoziomowy język, nie wrzuciłbym tam goto - ale tylko do czasu aż ktoś mi pokaże że umożliwia on rzeczy inaczej niemożliwe.
To twórz i poczekaj, aż ktoś zacznie pisać w nim kernel.

Wychodzenie z zagnieżdżonych pętli poprzez goto w C porównałbym do tworzenia symlinków w celu ustawienia strefy czasowej w Linuksie - i goto, i symlinki pozwalają na bardzo wiele trików, więc twórcy odpowiednio C i Linuksa nie wprowadzają żadnych zamienników, bo obecne narzędzia mimo, że sto razy gorsze, i bardzo łatwo o błąd, to jednak spełniają swoje zadanie.
Rozumiem, że goto może być w jakiś sposób kontrowersyjne, ale symlinki?

"Dziecko" drogie, poużywaj trochę GNU/Linuxa (tak z rok, może dwa) bez środowiska graficznego, intensywnie używając shella. To zobaczysz, jaką bzdurę palnąłeś i będziemy mogli porozmawiać o symlinkach.

Offline Mr. Spam

  • Miłośnik przetworów mięsnych

Offline Xirdus

  • Redaktor

# Sierpień 11, 2014, 22:29:02
Raczyłem i wyciąłem. Powód nie ma znaczenia, C jakiś język musi pozostać bezkompromisowy. Są to C i C++.
Akurat C++ nie jest dobrym przykładem bezkompromisowości - bez przerwy balansują między Javowym OOPem a C-owym róbta co chceta. Co do samego C to osobiście uważam, że ta bezkompromisowość raz, że nie jest wcale taka niezbędna w żadnym języku, a dwa, że brak jakiejkolwiek automatyzacji nie prowadzi wcale do przyspieszenia działania, tylko niebotycznej ilości boilerplate'u. C świetnie spełnia swoje założenia projektowe - problem w tym, że te założenia już nie są aktualne.

Mają, C++ jak najbardziej zalicza się do nowoczesnych.
Porównaj sobie C++ z C#, Pythonem, Rustem, D, czy Swiftem.

IIRC nie przeoczyli, tylko dodali, bo wcześniej długo upierali się przy wersji, że skoro mają <jakiś mechanizm z anonimowymi klasami, zapomniałem nazwy>, to lambdy są niepotrzebne.
Główny powód to taki, że wcześniej nie było referencji na metody, a bez tego użyteczność lambd spada niemal do zera.

To twórz i poczekaj, aż ktoś zacznie pisać w nim kernel.
Na razie nie czuję potrzeby tworzenia do tego celu nowego języka.

Rozumiem, że goto może być w jakiś sposób kontrowersyjne, ale symlinki?
Nie krytykowałem symlinków jako takich, tylko stosowanie ich do rzeczy które powinny być konfigurowane w zupełnie inny sposób niż sprawdzanie dokąd prowadzi /etc/localtime.

"Dziecko" drogie, poużywaj trochę GNU/Linuxa (tak z rok, może dwa) bez środowiska graficznego, intensywnie używając shella. To zobaczysz, jaką bzdurę palnąłeś i będziemy mogli porozmawiać o symlinkach.
Nie rozumiem ludzi którzy używają Linuxa bez żadnego środowiska. Jak w takich warunkach mam niby używać dwóch, trzech, czterech terminali naraz? Nie mówiąc już o kopiowaniu.

Offline Xender

  • Użytkownik

  • +1
# Sierpień 11, 2014, 23:30:47
Akurat C++ nie jest dobrym przykładem bezkompromisowości - bez przerwy balansują między Javowym OOPem a C-owym róbta co chceta.
Z tego co ja widzę, to raczej do C-owego "róbta co chceta" dodają te średniopoziome konstrukcje, które z nim nie kolidują. Tak więc poświęcają tylko jedną stronę - tę wyższopoziomową. Kompromis z definicji oznacza poświęcenie czegoś z obu stron.

Co do samego C to osobiście uważam, że ta bezkompromisowość raz, że nie jest wcale taka niezbędna w żadnym języku, a dwa, że brak jakiejkolwiek automatyzacji nie prowadzi wcale do przyspieszenia działania, tylko niebotycznej ilości boilerplate'u.
Od automatyzacji pisania boilerplate'u są generatory kodu.
Np. taki Flex czy Bison, które kompilują swoje DSL do C.

C świetnie spełnia swoje założenia projektowe - problem w tym, że te założenia już nie są aktualne.
Język niskiego poziomu, który nie ogranicza programisty. To jest aktualne.
Może tracić na popularności, ale kernel trzeba w czymś pisać.

Porównaj sobie C++ z C#, Pythonem, Rustem, D, czy Swiftem.
Pod jakim względem? Zmieszałeś języki całkiem różnego typu, dziwna ta zupa.
Jedyne, co mogę pomyśleć, to "języki wysokiego poziomu" (w opozycji do C++, języka pokrywającego od niskiego do średniego poziomu abstrakcji).
Chociaż AFAIK Rust też pokrywa różne poziomy.

Więc "nowoczesny" naprawdę nie jest takim dobrym określeniem.

Główny powód to taki, że wcześniej nie było referencji na metody, a bez tego użyteczność lambd spada niemal do zera.
A czy źle myślę, że jakby chcieli dorobić lambdy wcześniej, do dorobiliby i te referencje wcześniej?

Na razie nie czuję potrzeby tworzenia do tego celu nowego języka.
Ale wiesz, że akurat Rust to nowy język, który jest w fazie aktywnego tworzenia (specyfikacja podlega dynamicznym zmianom)? :D

Ciekawe...
1. Czy możliwe jest pisanie w tym programów, w sposób który nie mają żadnego overheadu w runtime względem C?
2. Da się w tym pisać procedury obsługi przerwań i inny kod bardzo niskopoziomowy? Włącznie z takim na przykład detalem, że w nich konieczna jest precyzyjna kontrola nad stosem (patrz: mail Linusa ciskającego gromy na GCC z powodu niewłaściwej implementacji redzone, która powodowała bug ujawniający się tylko w jednej instrukcji).

Jeśli 2x "tak" lub "pracują nad tym", to może właśnie Rust kiedyś wyprze C. A może nie...

Nie krytykowałem symlinków jako takich, tylko stosowanie ich do rzeczy które powinny być konfigurowane w zupełnie inny sposób niż sprawdzanie dokąd prowadzi /etc/localtime.
Dobra, sorry za naskok.

Nie widzę nic złego w takim konfigurowaniu strefy czasowej.
Na czym opierasz stwierdzenie, że powinna być konfigurowana inaczej?
Plik tekstowy też byłby dobrym rozwiązaniem. Co za różnica?

Oczywiście, że są inne sposoby - jak ktoś nie korzysta z shella na co dzień, zapewne najprościej będzie mu wyklikać strefę czasową w aplecie środowiska graficznego. Tylko co go wtedy obchodzą szczegóły implementacyjne?
Nigdy nie robiłem tego z poziomu DE, ale spodziewałbym się typowego okna wyboru z mapą świata podzieloną na strafy (jak np. w instalatorze Debiana) + ewentualnie okienka z pytaniem o hasło roota. A na czym to działa pod spodem - jakie to ma wtedy znaczenie?

Nie rozumiem ludzi którzy używają Linuxa bez żadnego środowiska. Jak w takich warunkach mam niby używać dwóch, trzech, czterech terminali naraz? Nie mówiąc już o kopiowaniu.
Ja robię to tak:

W tej chwili otwartych 6 terminali i 10 pulpitów w i3wm, w których wszystkie okna mam domyślnie potabowane (aktywne okno wypełnia cały ekran z wyjątkiem paska od innych okien z tego samego pulpitu na górze i paska z pulpitami i informacjami systemowo-statusowo-statystyczno-nerdowymi u dołu).

Ja sobie z kolei definitywnie nie wróciłbym z własnej woli do środowiska bez wirtualnych pulpitów, czy nawet z czterema. Powiedziałbym - "jeśli musisz minimalizować niektóre ze swoich okien - masz kiepski menadżer okien".

Kopiowanie w X-ach działa na 2 sposoby - albo CLIPBOARD - zwykłe ctrl-c, ctrl-v (akurat w oknie terminala będą to jakieś inne skróty, jeśli będą w ogóle - to zależy od terminala i jego konfiguracji. Ale działanie to samo).
Drugi sposób to PRIMARY - zaznacz gdzieś tekst, środkowy przycisk powoduje kopiowanie-wklejenie zaznaczonego w innym lub tym samym programie tekstu.
Jest to transfer aktywny/leniwy, gdyż kopiowanie przy każdej modyfikacji zaznaczenia do jakiegoś bufora byłoby oczywistym marnowaniem zasobów. Po prostu w momencie wklejania proces-właściciel okna z aktywnym zaznaczeniem jest powiadamiany i dostarcza potrzebny tekst. Dlatego nie raz początkujący mogą naciąć się na to, że po zamknięciu aplikacji z zaznaczeniem "schowek" jest pusty (nie jestem pewien, czy ta sama reguła nie obowiązuje CLIPBOARD. Całkiem możliwe, ale na to nie mam sensownego wyjaśnienia).

Coś kojarzę z jakiegoś poprzedniego posta, że miałeś problemy z kopiowaniem. Wobec tego oznajmiam: kopiowanie pod X działa.

Kiedyś miałem przypadek z awaryjnym Linuxem (to była Mandriva wtedy jeszcze), który ciągle się wysypywał, co na kilka lat zniechęciło mnie od tego systemu do tego stopnia, że potrzebowałem innej zewnętrznej presji, by znów się nim zainteresować. Od tej pory działa mi bardzo stabilnie.
Wniosek jest taki, że nie ma sensu osądzać na podstawie krótkiej, nieudanej próby.

Offline ShadowDancer

  • Redaktor

# Sierpień 11, 2014, 23:53:25
Porównaj sobie C++ z C#, Pythonem, Rustem, D, czy Swiftem.

C# też ma goto, podobnie D

Offline Xirdus

  • Redaktor

  • +1
# Sierpień 12, 2014, 00:44:28
Z tego co ja widzę, to raczej do C-owego "róbta co chceta" dodają te średniopoziome konstrukcje, które z nim nie kolidują. Tak więc poświęcają tylko jedną stronę - tę wyższopoziomową. Kompromis z definicji oznacza poświęcenie czegoś z obu stron.
Funkcje wirtualne, konstruktory i destruktory to zdecydowanie odejście od niskopoziomowości. A więc jednak kompromis.

Od automatyzacji pisania boilerplate'u są generatory kodu.
Np. taki Flex czy Bison, które kompilują swoje DSL do C.
Dalej musisz sam robić malloc/free, i inne często spotykane konstrukcje które są rozsiane równomiernie po całym kodzie i nie wnoszą nic, ale nie sposób się ich pozbyć, chyba że puszczasz wszystkie swoje źródła przez dodatkowy preprocesor. A stąd już tylko krok do przejścia na całkiem inny język.

Język niskiego poziomu, który nie ogranicza programisty. To jest aktualne.
Może tracić na popularności, ale kernel trzeba w czymś pisać.
Sęk w tym, że dzisiejsi programiści chcą ograniczeń - ale nie takich, które zabraniają ci robić pewnych rzeczy (przez co rozumiem osiągnięcie pewnego rezultatu akceptowalnym kosztem, przy czym akceptowalny koszt zależy od typu aplikacji), tylko takich, które pozwalają ustrzec się pewnych trywialnych błędów, np. niedopasowanie typu zmiennej, albo pisanie po niezaalokowanej pamięci tudzież wycieki. To właśnie próbuje osiągnąć Rust - prędkość taka sama jak nie większa od C, z bardzo silną kontrolą pożyczania referencji zapewniającą bezpieczeństwo.

Pod jakim względem? Zmieszałeś języki całkiem różnego typu, dziwna ta zupa.
Jedyne, co mogę pomyśleć, to "języki wysokiego poziomu" (w opozycji do C++, języka pokrywającego od niskiego do średniego poziomu abstrakcji).
Chociaż AFAIK Rust też pokrywa różne poziomy.

Więc "nowoczesny" naprawdę nie jest takim dobrym określeniem.
Chodziło mi o języki z bardzo zaawansowanymi konstrukcjami składniowymi pozwalającymi szybciej pisać kod, niekoniecznie tracąc na wydajności czy możliwościach.

A czy źle myślę, że jakby chcieli dorobić lambdy wcześniej, do dorobiliby i te referencje wcześniej?
Osobiście wydaje mi się, że development Javy 8 wyglądał podobnie do C++11 - już dawno temu wiedzieli dokładnie, jakie chcą ficzery, tylko implementacja im długo zajęła, głównie ze względu na konieczność dopasowania do istniejącej infrastruktury.

Ale wiesz, że akurat Rust to nowy język, który jest w fazie aktywnego tworzenia (specyfikacja podlega dynamicznym zmianom)? :D
Wiem. Ale jakbym stworzył nowy język to też by był.

1. Czy możliwe jest pisanie w tym programów, w sposób który nie mają żadnego overheadu w runtime względem C?
Tak. Niemal wszystkie rzeczy "kontrolne" są sprawdzane compile-time, z poprawnością format stringa dla println włącznie.

2. Da się w tym pisać procedury obsługi przerwań i inny kod bardzo niskopoziomowy? Włącznie z takim na przykład detalem, że w nich konieczna jest precyzyjna kontrola nad stosem (patrz: mail Linusa ciskającego gromy na GCC z powodu niewłaściwej implementacji redzone, która powodowała bug ujawniający się tylko w jednej instrukcji).
Ostatnio jak sprawdzałem to nie da się jeszcze kompilować aplikacji bez biblioteki standardowej, co jest tutaj niezbędne - ale pracują nad tym. Albo już prace skończyli a ja mam nieaktualne info.

Nie widzę nic złego w takim konfigurowaniu strefy czasowej.
I taki właśnie jest problem z pingwiniarzami. Bez urazy ;) Zakończmy może ten wątek dyskusji bo do konsensusu nigdy nie dojdziemy.

w X-ach
W X-ach to se każdy może. Chodziło mi o kompletnym braku środowiska graficznego - czyli tak jak mi sugerowałeś @4up.

C# też ma goto, podobnie D
C# ma dużo głupot. Za to w D goto służy wyłącznie do przechodzenia między case'ami w switchu - czyli taki fallthrough na sterydach, który nie dość że bezpieczniejszy to daje większe możliwości.
« Ostatnia zmiana: Sierpień 12, 2014, 00:47:41 wysłana przez Xirdus »

Offline Kos

  • Użytkownik
    • kos.gd

  • +1
# Sierpień 13, 2014, 09:49:57
Tak. Niemal wszystkie rzeczy "kontrolne" są sprawdzane compile-time, z poprawnością format stringa dla println włącznie.

Kompilatory C też to robią.

Cytuj
W X-ach to se każdy może. Chodziło mi o kompletnym braku środowiska graficznego - czyli tak jak mi sugerowałeś @4up.
Przed iksami był poczciwy Screen który dobrze robi to samo. Emacs i Vim też mają żonglowanie wieloma ekranami. Nie musisz mieć trybu graficznego, żeby mieć GUI - nawet zbytnio go nie brakuje jeśli 95% Twojego ekranu to i tak tekst :-)

Offline Xirdus

  • Redaktor

# Sierpień 13, 2014, 13:20:13
Kompilatory C też to robią.
Ale po pierwsze jest dużo mniej tej kontroli w C, a po drugie zdecydowana większość generuje warningi, a w ruscie errory. A po trzecie to w ogóle nie było to porównanie do C tylko odpowiedź na pytanie Xendera.

Przed iksami był poczciwy Screen który dobrze robi to samo.
O, ciekawe coś. Chociaż osobiście nie przepadam za miliardem skrótów klawiszowych łączonych w kombinacje (nawet w VS nie kompiluję przez F9 (czy tam który to był) tylko wybieram pozycję z menu).

Nie musisz mieć trybu graficznego, żeby mieć GUI - nawet zbytnio go nie brakuje jeśli 95% Twojego ekranu to i tak tekst :-)
Zgadzam się. Z tym że tryb graficzny jest zwyczajnie wygodniejszy (myszka!) Ale tu już zaczynają się gusta i guściki, a o gustach się nie dyskutuje.
« Ostatnia zmiana: Sierpień 13, 2014, 13:22:27 wysłana przez Xirdus »

Offline Xender

  • Użytkownik

# Sierpień 13, 2014, 21:49:11
Zgadzam się. Z tym że tryb graficzny jest zwyczajnie wygodniejszy (myszka!)
Chyba nie doceniasz Linuxowego TTY ;>

Ale z brakiem środowiska graficznego wcześniej to palnąłem.
Chodziło mi o nieużywanie gotowego DE (Desktop Environment, jak Gnome czy KDE), nie o nieużywanie X w ogóle. Takim hardkorem nie jestem, Firefox nie działa pod TTY. :D

Bez dobrego managera okien jak i3 też bym raczej nie wyżył. Tego typu konfigurację miałem na myśli - X, WM i reszta softu poinstalowana ręcznie. Takie środowisko ma olbrzymią zaletę - człowiek szybko się uczy, jak to wszystko działa i jest potem w stanie zrobić więcej, niż klikając w "next > next > agree > next > next".

Offline Xirdus

  • Redaktor

# Sierpień 13, 2014, 22:09:44
Chyba nie doceniasz Linuxowego TTY ;>
Łoł, ale bajer! No to chyba jestem gotowy na deinstalację XFCE na moim megabeznadziejnym netbooku ;)

Takim hardkorem nie jestem, Firefox nie działa pod TTY. :D
Zawsze jest Lynx :)

Bez dobrego managera okien jak i3 też bym raczej nie wyżył. Tego typu konfigurację miałem na myśli - X, WM i reszta softu poinstalowana ręcznie. Takie środowisko ma olbrzymią zaletę - człowiek szybko się uczy, jak to wszystko działa i jest potem w stanie zrobić więcej, niż klikając w "next > next > agree > next > next".
Soft można instalować ręcznie nawet w KDE, więc argument dość dziwny.

W sumie to może bym wypróbował tego i3 co go tak zachwalasz.

Offline bies

  • Użytkownik

# Sierpień 13, 2014, 23:38:58
W sumie to może bym wypróbował tego i3 co go tak zachwalasz.
Patrząc po screencascie autorzy są mocno zafascynowani vimem. Mimo tego (vima używam już od wielu lat) bardziej podoba mi się AwesomeWM. Ale polecam spróbować obu -- praca na tiling wm jest niesamowicie ,,odmieniająca świadomość''.

Offline Xender

  • Użytkownik

# Sierpień 14, 2014, 02:17:52
Soft można instalować ręcznie nawet w KDE, więc argument dość dziwny.
Można, ale nie trzeba. Jak w takim KDE wszystko jest gotowe, to czy będzie Ci się chciało eksperymentować i odkrywać, jak wszystko działa?

Jak masz graficzny manager plików (explorer.exe, Nautilus czy co tam innego), to będzie Ci się chciało odpalać shella tak często?

Tymczasem, jak wylądowałem z samym shellem (zsh), to nagle się okazało, że jest całkiem wygodny i żaden graficzny manager plików mi niepotrzebny.
A jak kolega pokazał mi Rangera (tekstowy manager plików, całkowicie dostosowywalne klawisze, w ogóle sporo fajnych rzeczy), to już w ogóle...

Offline Xirdus

  • Redaktor

  • +1
# Sierpień 14, 2014, 09:40:19
Można, ale nie trzeba. Jak w takim KDE wszystko jest gotowe, to czy będzie Ci się chciało eksperymentować i odkrywać, jak wszystko działa?
Wyobraź sobie że tak.

Jak masz graficzny manager plików (explorer.exe, Nautilus czy co tam innego), to będzie Ci się chciało odpalać shella tak często?
Ależ oczywiście, niemal bez przerwy posługuję się shellem - choćby żeby odpalić głupiego make'a. Widzisz, ty wolisz Meta+Enter, a ja wolę prawoklik i "otwórz terminal" (to samo na Windzie) :)

Offline Kos

  • Użytkownik
    • kos.gd

# Sierpień 14, 2014, 17:09:17
AwesomeWM fajna rzecz, +1 ode mnie. Używałem go za czasu przygód z Arch Linuxem i to pierwszy tiling WM który miał naprawdę mało wtf-ów. Moje doświadczenia z nim w paru punktach:

+ niezły setup out-of-the-box (klawisze, itp)
+ super generyczny model "tagów", czyli takich lepszych wirtualnych pulpitów: każde okno jest przypisane do jednego lub więcej tagów, a każdy monitor wyświetla jednocześnie okna z jednego lub więcej tagów. N-N all around
+ całość naturalnie ogarnialna paroma skrótami z serii win+cośtam+cyferka lub win+kursor.
+ brak nazizmu: layouty są elastyczne, możesz bez problemu przerzucić się na non-tiling jeśli akurat potrzebujesz
+ w miarę wygodna konfiguracja w lua (nie musisz przekompilowywać całości żeby zmienić hotkeya - cześć, XMonad :))

Minusem awesome było straszne rozsianie takich rzeczy jak dodatkowe pakiety w lua (!) do widgetów na pasku zadań typu zegarek, bateria, kalendarz... Był z tym naprawdę ogromny syf, trzeba było te widgety dociągać z jednego z 5 konkurujących projektów third-party, a potem uczyć się Lua żeby samemu skonfigurować (i bynajmniej nie było to cfg w stylu WIDGETS=[clock, battery, wlan]).

Ostatnio używam XUbuntu, ideałem byłoby dla mnie gdyby został od niego pasek i całe GUI, a Awesome tylko zarządzał oknami. Nie robiłem researchu jak postawić takie combo.

Offline Xender

  • Użytkownik

# Sierpień 15, 2014, 01:30:20
AwesomeWM fajna rzecz, +1 ode mnie. Używałem go za czasu przygód z Arch Linuxem i to pierwszy tiling WM który miał naprawdę mało wtf-ów. Moje doświadczenia z nim w paru punktach:

+ niezły setup out-of-the-box (klawisze, itp)
i3 też.

+ super generyczny model "tagów", czyli takich lepszych wirtualnych pulpitów: każde okno jest przypisane do jednego lub więcej tagów, a każdy monitor wyświetla jednocześnie okna z jednego lub więcej tagów. N-N all around
Bawiłem się tym kiedyś pod DWM nie znalazłem dla siebie zastosowanie.
Jakie okna miewasz przypisane do więcej, niż jednego tagu?

+ całość naturalnie ogarnialna paroma skrótami z serii win+cośtam+cyferka lub win+kursor.
i3 też.

+ brak nazizmu: layouty są elastyczne, możesz bez problemu przerzucić się na non-tiling jeśli akurat potrzebujesz
i3 "teoretycznie" nie (autor się zarzeka, że floating powinien być używany tylko do okien dialogowych), praktycznie działa bez problemu.

(nie musisz przekompilowywać całości żeby zmienić hotkeya - cześć, XMonad :))
Kolega używał. Mówi, że kompilacja Haskella to nie taki syf, jak z C[++].
Poza tym XMonad podobno ma to tak, że wciskasz klawisz, a on robi rekompilację i restart z zachowaniem stanu.

Za to spełnienie Haskellowych zależności paczek na Archu to podobno inna bajka...


Hej, a znasz może jakiś ciekawy skrypt/program do podawania informacji do statusbara?
i3bar je wejście dziwnie, bo jako JSON.
i3status to trochę porażka, więc do karmienia i3bara informacjami używam Conky...
Tylko, że Conky ma zahardkodowany rozmiar pojedynczego bufora na jakieś 512 bajtów (ARGH!), a przez overhead znakowy tego, co w JSON chce i3bar były problemy...
Poza tym edytowanie configa Conky wypluwającego JSON to była straszna PITA, nie polecam.

Offline Kos

  • Użytkownik
    • kos.gd

# Sierpień 15, 2014, 14:02:40
i3 brzmi fajnie z tego co piszesz. Ktoś to nawet podpiął pod XFCE.

Jakie okna miewasz przypisane do więcej, niż jednego tagu?

Żadne. Używałem tagów zwykle jako wirtualnych ekranów. Ale robiłem w drugą stronę: rzucałem na 1 ekran kilka tagów na raz.

Status barów na linuchu nie potrzebuję i nie używam, od kiedy trzymam swoje linuksy tylko w VirtualBoksie.