CategoryBez kategorii

Generowanie headerów ze stałymi w CMake

W prawie każdym projekcie potrzebujemy przechowywać jakieś wartości, które zmieniamy w zależności od wersji projektu. Najbardziej oczywistym przykładem jest właśnie numer wersji. Ale czasem chcemy wyświetlać również commit id z gita, datę kompilacji, czy użytą wersję kompilatora. Nie muszę chyba dodawać, że aktualizacja takich danych ręcznie jest niezwykle uciążliwa, a czasem wręcz niemożliwa (jak dodać commit id bezpośrednio w kodzie bez modyfikowania bez modyfikowania go?). W większych projektach będziemy w tym celu używać dodatkowych skryptów. A CMake ma wbudowane wsparcie do tego typu operacji.

Continue reading

Podsumowanie roku 2020

Już od kilku lat w styczniu podsumowuję, co wydarzyło się w poprzednim roku. I za każdym razem przypominam sobie takie zdanie, że przeceniamy ile jesteśmy w stanie zrobić w ciągu jednego dnia, ale nie doceniamy ile jesteśmy w stanie zrobić w ciągu jednego roku. Za każdym razem taka retrospektywa pozwala mi zrozumieć jak wiele się wydarzyło i inaczej spojrzeć na różne codzienne problemy. Nie muszę chyba dodawać, że później w ciągu roku coraz bardziej o tym zapominam 🙂

Rok 2020 to oczywiście rok pandemii i zewsząd jesteśmy bombardowani opiniami jaki był fatalny. No i faktycznie zamknięcie w domu na pewno nie prowadzi do niczego dobrego zarówno od strony mentalnej jak i gospodarczej. Jednak podsumowanie pokazało mi, że w 2020 miałem wiele powodów do radości.

Continue reading

Jak napisać skrypt cmake?

W tym artykule pokażę jak napisać prosty skrypt cmake. Zrealizujemy najważniejsze zadania, jakich wymagamy od skryptu budowania:

  • Dodawanie plików źródłowych.
  • Określenie ścieżek include.
  • Określenie globalnych define’ów.
  • Dodanie bibliotek statycznych.
  • Dodanie flag kompilacji.

Dzięki skryptowi CMake możemy łatwo uruchamiać kompilację na różnych systemach operacyjnych, systemach budowania i generować projekty na różne IDE.

Continue reading

[LIVE] – Jak stać się lepszym programistą C?

W poniedziałek (21.09) zapraszam Cię na pierwszy po wakacyjnej przerwie LIVE na YouTube. Tematem będzie “Jak stać się lepszym programistą C?”.

W trakcie tego live porozmawiamy sobie o umiejętnościach potrzebnych w pracy programisty C. Dowiesz się między innymi:

  • W jaki sposób te umiejętności podnosić i na czym szczególnie się skupić.
  • Czym się kierować przy wyborze dobrych praktyk i jak je weryfikować.

Pokażę również trochę fajnego kodu, który możesz wykorzystać w swoich projektach. Zejdziemy też sobie niżej do poziomu asemblera, żeby zobaczyć kod utworzony przez kompilator.

Pojawi się też więcej informacji o kursie “C dla Zaawansowanych” i jedno ważne ogłoszenie. Będzie też czas na pytania i odpowiedzi.

Krótko mówiąc – będzie ciekawie!

30 devstories

Od jakiegoś czasu biorę udział w akcji #30devstories i publikuję nagrania na YouTube. Chodzi w skrócie o to, żeby nagrać 30 filmików związanych z różnymi aspektami programowania.

Na razie opublikowałem 6 odcinków:

Więcej o samej akcji mówię tutaj:

Kolejne odcinki znajdziecie na moim kanale YouTube.

Jeżeli również chcesz wziąć udział w akcji – weź kamerę i podziel się swoimi przemyśleniami z pracy jako programista!

Stream o IDE i debugerach sprzętowych

Ostatnio na live omawiałem IDE i debugery sprzętowe w embedded. Nagranie jest dostępne tutaj:

Pod nagraniem są też timestampy i linki. Wyszło tego bardzo dużo więc lepiej to będzie zebrać we wpisie. Od razu zapraszam również na kolejny live w czwartek 28 maja o 20:00, gdzie tematem będą języki programowania w embedded.

Continue reading

Compiler explorer – Twój najlepszy przyjaciel w rozmowach o wydajności kodu

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.

Continue reading

Mikrooptymalizacje są bez sensu

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 ustnych kultywowanych przez kolejne pokolenia programistów C. O ile kiedyś – w zamierzchłych czasach – te zasady miały jakiś sens, teraz najczęściej kompilatory mogą wykonać tą robotę za nas. Albo nie musimy w ogóle się tym przejmować, bo już nam wystarczy RAMu. A my możemy cieszyć się kodem, który da się rozczytać.

Continue reading

Zapowiedź BitConf 2019, do wygrania darmowe bilety

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 się pojedyncze wystąpienia, jakieś mniejsze eventy, ale nie przypominam sobie całej ścieżki na temat embedded. BitConf 2019 będzie więc nie tylko okazją do posłuchania na żywo osób z branży, ale również do wymiany doświadczeń w kuluarach i budowania społeczności. Pokażmy więc, że jest zainteresowanie taką tematyką.

Konkurs

Mam do rozdania dwa darmowe bilety na BitConf. Z tej okazji przygotowałem mały konkurs. Aby wziąć w nim udział należy:

  1. Zapisać się na Newsletter ucgosu.pl – >>LINK<<
  2. Opisać jakąś ciekawostkę, projekt (najlepiej własny), newsa itp. związane z systemami embedded i wysłać do mnie mailem
  3. Jedna osoba może wysłać kilka zgłoszeń
  4. Ostateczny termin wysyłania zgłoszeń – piątek 23.08.2019 godz. 23.00

Autorów dwóch najciekawszych ciekawostek nagrodzę biletami na BitConf. Dodatkowo ciekawostki opublikuję na blogu albo na Facebooku. Dlatego najlepiej w mailu dodajcie od razu informację o autorze, którą mogę umieścić we wpisie (imię i nazwisko/nick/anonim, czy chcecie dodatkowo mail, adres do strony/githuba).

Tablice przyspieszające wyszukiwanie elementów

Kolejnym – po Lookup Table – tematem związanym z tablicami, którym się zajmę jest przyspieszenie wyszukiwania elementów. Zwykle nasze możliwości w tym zakresie ograniczają się do podawania indeksu tablicy albo wyszukiwania w pętli. Możemy jednak przyspieszyć te operacje wykorzystując dodatkowe tablice z mapowaniem indeksów, albo skorzystać z hash table.

Continue reading

© 2021 ucgosu.pl

Theme by Anders NorénUp ↑