Robotyka, Embedded, C
W artykułach o sprytnym kodzie i mikrooptymalizacjach postawiłem tezę, że często większa wydajność kodu, którą usprawiedliwiamy zmniejszenie czytelności, jest fikcją. Aby to stwierdzić potrzebujemy danych. Tymi danymi są czas wykonania aplikacji i kod asemblerowy generowany przez kompilator. Dzisiaj opiszę narzędzie przeglądarkowe pozwalające nam analizować właśnie kod asemblerowy. A jest nim Compiler Explorer. Czym jest Compiler […]
Kiedy zdamy już sobie sprawę, że sprytny kod i mikrooptymalizacje to nie jest dobra droga, dochodzimy do wniosku, że jakość kodu jednak ma znaczenie. A wyrazem dbania o tą jakość kodu jest wprowadzenie odpowiednich reguł. Temu właśnie służą Style Guide i Coding Standard. W C są one szczególnie ważne, bo język pozwala nam na wiele […]
Poza próbą napisania jak najsprytniejszego kodu robiącego wszystko w jednej linijce o czym pisałem ostatnio, drugim największym grzechem programistów C jest próba optymalizowania wszystkiego i wszędzie. Jest to koronny argument usprawiedliwiający nieczytelny kod. A ta optymalność bardzo często jest fikcją. Nie jest poparta żadnymi pomiarami dla naszego konkretnego przypadku. Bazuje tylko na legendach i przekazach […]
Jak zapewne wiecie – od jakiegoś czasu prowadzę streamy na youtube. W ostatnim czasie głównym tematem jest projekt zegara szachowego, którego robię od zera. Pokazuję tam wszystkie fazy łącznie z analizą istniejących rozwiązań i ewolucją koncepcji. Do tej pory ukazały się trzy odcinki: W trzecim odcinku już pojawił się kod i unit testy. Wygląda to […]
Kiedyś bardzo popularne było pisanie sprytnego kodu. Żeby jak najwięcej zmieściło się w jednej linijce. Żeby oszczędzić sobie nadmiarowego pisania, bo w końcu wiem, że coś się wydarzy pod spodem. Osoba czytająca ten kod mogła jedynie stwierdzić – ale dobry jest ten, kto to napisał, ja nic nie rozumiem. Język C doskonale się do czegoś […]
Na ostatnim livestreamie opowiadałem o pracy zdalnej w embedded. W związku z aktualną epidemią temat jest na czasie i pewnie wiele osób i całych firm szuka podpowiedzi jak przejść na pracę zdalną. Szczególnie jeśli nigdy wcześniej tego nie próbowaliście, a teraz nagle wszyscy muszą pracować z domów. W tym artykule zebrałem najważniejsze informacje, które również […]
Pierwsze dwa odcinki livestreama na moim kanale Youtube dotyczyły Test Driven Development w systemach embedded. W trakcie tych streamów pokazywałem przykładową implementację bufora cyklicznego i analizy przebiegów czasowych przy użyciu TDD. Co omawiałem? W opisach poszczególnych filmów możecie znaleźć odnośniki do ciekawszych momentów. Dotyczą one nie tylko implementacji, ale także tematów takich jak: Konfiguracja środowiska […]
W zeszłym tygodniu na Youtube pojawił się mój pierwszy livestream o systemach embedded: W miarę możliwości będę nagrywać raz w tygodniu. Kolejny odcinek we wtorek 28 stycznia o 20.00 – LINK. Informacje o nadchodzących i przeszłych odcinkach możecie znaleźć w panelu bocznym strony. Pierwszym tematem było Test Driven Development w systemach embedded i temat będzie […]
W poprzednich częściach opisałem przygotowania do prezentacji i na co warto zwracać uwagę podczas samego wystąpienia. Dzisiaj pora na garść informacji jak szukać miejsc, gdzie możesz się zgłosić ze swoją prezentacją. Meetupy W dużych miastach odbywają się meetupy skupiające użytkowników wszystkich popularnych technologii od Javy i .NETa przez pythona czy frontend do clouda i machine […]
Pora na kolejny post z serii o prezentacjach. Tym razem kilka porad dotyczących samego wystąpienia. Z wpisu dowiesz się między innymi: Jak radzić sobie ze stresem Na co zwracać uwagę podczas mówienia Jak kontrolować czas Jak radzić sobie z reakcjami publiczności Jak radzić sobie z problemami sprzętowymi Stres Stres na pewno musi się pojawić. To […]
Z poprzedniego wpisu wiemy już dlaczego warto zainteresować się tworzeniem prezentacji. Dzisiaj zebrałem trochę porad jak przygotować się do pierwszego wystąpienia. Będzie między innymi o tym jak: wybrać temat prezentacj, zbierać materiały, przygotować slajdy, ćwiczyć mówienie prezentacji. Jak wybrać temat? Odpowiedź jest prosta – na początek wybierz coś na czym dobrze się znasz, co uważasz […]
W ostatnim czasie często się zdarzało, że namawiałem różne osoby do zrobienia prezentacji albo szkolenia. Pomagałem też trochę osobom, które już zaczęły przygotowania do swojego pierwszego wystąpienia. Żeby móc im powiedzieć coś konstruktywnego, przeanalizowałem sobie dokładnie z czym sam miałem albo dalej mam największe problemy. W końcu moja pierwsza prezentacja odbyła się ledwo rok temu, […]
To już ostatni wpis z serii dotyczącej zastosowań tablic w C. Dzisiejszym tematem będą tablice wskaźników na funkcje. Pozwalają one w jednolity sposób obsługiwać różne zachowania programu, czyli są rodzajem polimorfizmu. Czasem bywają niezwykle przydatne. Przypisywanie komend przyciskom pilota Dawno temu w ramach pracy inżynierskiej robiłem pojazd sterowany za pomocą pilota do telewizora. Jednym z […]
Zapraszam Was na 20 września 2019 do Bydgoszczy, gdzie odbędzie się konferencja BitConf, na której będę miał przyjemność wystąpić. Jedna ze ścieżek będzie dotyczyła systemów embedded. To święto dla naszej społeczności, ponieważ do tej pory mimo, że firm działających w branży było coraz więcej, niechętnie dzieliliśmy się publicznie naszymi doświadczeniami na konferencjach w Polsce. Zdarzały […]
Po lookup table i wyszukiwaniu elementów pora na kolejne zastosowanie tablic – maszyny stanu. Podobnie jak w poprzednich przypadkach, logikę warunkową zastąpimy wyczytywaniem odpowiednich indeksów z tablicy. W przypadku maszyn stanu możemy dzięki temu nie tylko zwiększyć wydajność, ale również drastycznie poprawić utrzymywalność kodu. Maszyny stanu na switch-case Narzucającą się implementacją maszyn stanu w C […]
Robotyka, Embedded, C
Programowaniem zajmuję się zawodowo od 2012 roku. Moją specjalnością są systemy embedded, pracowałem już nad systemami safety critical, inteligentymi budynkami, czy Internet of Things. Jestem również wielkim fanem robotyki i w wolnym czasie robię własnego robota micromouse.