Energooszczędny sleep()
Nigdy nie przywiązywałem dużej wagi do funkcji sleep()
. Kiedy uczyłem się programować, jeszcze na początku 2000ch, wydawał mi się to trochę relikt czasów kiedy prcesory były jednordzeniowe i jednowątkowe, a OS nie dawał zaawansowanego mierzenia czasu. Wtedy, zwłaszcza w grach, ten sleep był potrzebny, żeby program nie działał zbyt szybko. Oczywiście używałem go tu i ówdzie, żeby obejść jakiś błąd, albo w skryptach, które coś robią co określoną ilość czasu (żeby uniknąć zbyt częstego tworzenia nowych procesów).
Ostatnio byłem zaskoczony, jak jeden sleep()
(a własciwie jego mikrosekundowa wersja usleep()
) potrafi zrobić wielką różnicę. Mianowicie rozwijam sobie menedżer okien (fork DWM). Oczywiście jest pętla komunikatów, gdzie w nieskończonej pętli, używane są wołania XPending()
i XNextEvent()
, do pobierania zdarzeń okien. Natomiast ja dodałem jeszcze dodatkowy interfejs przez potok, wiec do tej pętli doszedł jakiś poll()
, który dodatkowo sprawdza czy w potoku coś się nie pojawiło. Taka zmiana spowodowała jednak, że program zaczął non-stop używać 100% procesora i znacznie większe zużycie prądu. Należało właśnie zrobić usleep(50000)
(czekaj 0.05s) na końcu tej pętli i to naprawiło problem, a bateria trzyma 5h (tak jak wczęśniej trzymała 2h). Moim zdaniem wynik dość imponujący jak na taki mały szczegół. :)
Udało mi się zainstalować sterowniki do drukarki na systemie operacyjnym Ubuntu. Wolę Minta, ale po zobaczeniu tematu z problemami dotyczącymi instalacji sterowników do mojej drukarki na owej dystrybucji postanowiłem wybrać bezpieczną opcję. Pobrałem pakiet dla Debiana ze strony producenta i instalacja przeszła dość gładko. Na koniec procesu zostałem poinformowany, że nie udało się zainstalować pakietu do skanera, ale nie jest to dla mnie problem bo go nie używam.
Wyciąganie wniosków na podstawie jednostkowych przypadków jest mało sensowne. Ja niedawno walczyłem z instalacją jakiejś karty dźwiękowej pod Windowsem - producent nie dawał sterowników, bo od kilku generacji (teoretycznie) Windows ja obsługuje z automatu. Tyle że nie do końca - win10 widział jakieś nieznane urządzenie, ale nie umiał go odpalić. Sterowników w necie brak, Windows update niczego nie znalazł. A Linux - odpaliłem system i karta działała.
I o czym to świadczy? Ani nie że windows lub Linux ssie, tylko w tych podanych przypadkach dana wersja systemu ma problem z danym urządzeniem. Albo że zainstalowanie danego urządzenia w danym systemie było ponad umiejętności osoby, która to robiła. Ale wyciąganie wniosków na cały system z powodu tego, że ktoś czegoś nie uruchomił jest mocno na wyrost
Chcielibyśmy Was zaprosić na 18 Sesję Linuksową - największą w Polsce konferencję poświęconą rozwiązaniom Open Source oraz najnowszym trendom w systemach z rodziny GNU/Linux organizowaną przez Akademickie Stowarzyszenie Informatyczne
Wydarzenie odbędzie się w dniach 20-21 kwietnia we Wrocławskim Centrum Kongresowym Politechniki Wrocławskiej.
20-21 kwietnia
Politechnika Wrocławska
Odbierz swój darmowy bilet na stronie wydarzenia!
Konferencja co roku zbliża developerów, zwykłych użytkowników jak i firmy zaangażowane w oprogramowanie Open Source, a także promowanie najnowszych trendów i rozwiązań w branży.
Pełen program oraz rejestracja dostępna jest na stronie https://sesja.linuksowa.pl
Jeśli nie możesz uczestniczyć osobiście zapraszamy do obejrzenia transmisji.
Więcej informacji na temat streama pojawi się na stronie internetowej bezpośrednio przed konferencją.
Historia ruchu open source z perspektywy biznesowej
Otwarte projekty są fenomenem, który wkroczył na arenę historii informatyki na przełomie lat osiemdziesiątych i dziewięćdziesiątych XX wieku, w postaci ruchu na rzecz wolnego oprogramowania (ang. free software). W tym czasie biznesowi gracze branży IT postrzegali je jako fanaberię kilku członków środowiska akademickiego, która to nie ma racji bytu w warunkach komercyjnych. Wizja otwartych projektów, w ramach których oprogramowanie mogło być używane i kopiowane za darmo, a użytkownicy byliby traktowani jako współpracownicy, wydawała się nie mieć żadnych szans na opracowanie i udoskonalanie wartościowych produktów informatycznych.
Nowy art na blogu: https://walczak.it/pl/blog/historia-ruchu-open-source-z-perspektywy-biznesowej
Projekt for fun. Czy da się odpalić Xearth na ESP32?
Był kiedys taki program (30 lat temu) dla Unixa/Linuxa, Xearth, który potrafił wyświetlić na monitorze kule ziemską widzianą z kosmosu na danej pozycji wraz z oświetlnem słonecznym. Wczoraj pomyślałem czy da się to przenieść do Arduino i odpalić na ESP32 z wyświetlaczem ILI9341.
No i da się :)
Transformatory to też zabytek miedziany przewód to też zabytek wafel krzemowy to też zabytek i co z tego że zabytek projekt przetwornicy step down to też zabytek .
Stallman mówi, że ma raka:
https://news.ycombinator.com/item?id=37699851
@loza_prowizoryczna: Ten przypadek jest bardziej złożonym, bo jest wielu autorów. Ale jeżeli się zbiorą i dogadają to taka możliwość istnieje. Nie wiem jak na świecie, ale w PL mogą nawet zakazać używania linuxa (autor ma możliwość wycofania licencji).
Ten przypadek jest bardziej złożonym, bo jest wielu autorów. Ale jeżeli się zbiorą i dogadają to taka możliwość istnieje.
- w komunizmie suweren to teoretycznie też był lud pracujący i jak się zebrał to mógł zmienić ustrój. W praktyce władzy raz zdobytej nie oddamy nigdy
.
@elwis: Ameryki nie odkryłeś. Jak nie dasz oddychać prockowi, to wiadomo że zrobi 100%. Taki
sleep()
to dosyć standardowa technika, i to nie tylko w grach. Jak tworzę aplikacje które wykonują operacje na dużych plikach i nie dodamsleep()
na microsekundę to też je 100% procesora.