Robotyka, Embedded, C
Ostatnio trochę eksperymentowałem z nowym frameworkiem do unit testów – Catch2. Główną różnicą od innych frameworków takich jak CppUTest czy GoogleTest jest rezygnacja z grup testowych na rzecz struktury Given-When-Then wspierającej Behavior Driven Design (BDD). Inną ważną zaletą jest fakt, że cały framework mieści się w jednym headerze, dlatego nie ma problemów z jego integracją. […]
Okres świąteczno – noworoczny to czas na podsumowania, zapraszam więc do mojego przeglądu najważniejszych wydarzeń kończącego się roku. Konferencje Największym wydarzeniem dla mnie w tym roku był występ na Programistoku z prezentacją o systemach safety-critical. Na sali było około 400 osób, a wcześniej prezentowałem przed maksymalnie kilkudziesięcioma. Więcej o Programistoku można przeczytać w relacji: Poza […]
Zwykle przyjmujemy, że koszt wytworzenia systemu safety-critical spełniającego wymagane normy jest dziesięciokrotnie wyższy, niż zwykły projekt posiadający te same wymagania funkcjonalne. Po przeczytaniu poprzednich części serii powinniście mieć całkiem dobre wyobrażenie skąd biorą się dodatkowe koszty. W tym artykule omówię koszty developmentu, zewnętrznego kodu i narzędzi. Wykorzystane dane Do analizy wykorzystam dokument “Cerification Cost Estimates […]
W większości projektów, gdy mamy możliwość wykorzystania jakiegoś istniejącego rozwiązania, w ogóle się nie zastanawiamy. Dużo publicznego kodu znajdziemy na GitHubie, a w JavaScripcie wychodzi tyle nowych bibliotek, że są one nawet częścią pijackiej gry. Jak już pewnie się domyślacie – w systemach safety-critical sytuacja jest zgoła odmienna. Użycie zewnętrznego kodu podlega specjalnym procedurom i […]
Było już o technikach wykorzystywanych na poziomie projektu i kodu oraz o wpływie języka programowania na bezpieczeństwo. Dzisiaj odpowiemy sobie na pytanie w jaki sposób zarządzać ryzykiem, wykrywać potencjalnie niebezpieczne zachowania i dodawać odpowiednie środki zaradcze do projektu. Naiwne podejście do bezpieczeństwa Najprostszym sposobem jaki przychodzi do głowy, kiedy myślimy o zapewnieniu bezpieczeństwa systemu jest […]
W poprzednim artykule opisywałem ogólne techniki zalecane przy developmencie systemów safety-critical. Dzisiaj natomiast przyjrzymy się bliżej zaleceniom dotyczącym języków programowania. Wiemy już, że język używany w tego typu systemach powinien być kompilowany i silnie typowany. Jakie jeszcze wymagania powinien spełniać? Jakie języki wykorzystywane są w praktyce? Poniżej znajdziesz odpowiedzi na te pytania. Pożądane cechy języka […]
Jak wspomniałem w poprzednim wpisie, normy definiują różne poziomy bezpieczeństwa w zależności od możliwych skutków błędnego działania systemu. Tym poziomom odpowiadają konkretne wskaźniki statystyczne. O ile sprawdzają się one w przypadku układów psujących się w sposób łatwy do opisania prawdopodobieństwem – jak na przykład części elektroniczne – to soft zawiera częściej błędy systematyczne, czyli po […]
Ostatnio byłem gościem Grzegorza z devsession.pl w podcaście “Ja, programista”, gdzie rozmawialiśmy o systamach embedded: Ja, programista – Maciej Gajdzica – systemy Embedded Ukazał się również mój gościnny artykuł na Forbot.pl o różnicach między pisaniem projektów embedded komercyjnie i hobbystycznie: 3 różnice w programowaniu: hobbystycznie vs. komercyjnie W tym tygodniu ruszyłem również z newsletterem. Będę […]
Nie każdy system jest tak samo krytyczny dla bezpieczeństwa. Nawet jeżeli wiele różnych systemów znajduje się na przykład w samolocie, nie oznacza to, że każdy z nich został wykonany wykorzystując tak samo rygorystyczne techniki. W końcu inaczej podejdziemy do tworzenia systemu sterowania lotem, a inaczej do systemu infotainment wyświetlającego pasażerom filmy podczas lotu. W tym […]
Analiza błędnie działających systemów safety-critical takich jak Therac-25, czy Ariane-5, a także doświadczenie z wielu projektów zakończonych sukcesem doprowadziły do konkluzji, że same umiejętności inżynierów to za mało, aby zapewnić niezawodność systemów. W tym celu niezbędny jest odpowiedni proces wytwarzania oprogramowania. Takie procesy zostały opisane w normach regulujących wytwarzanie oprogramowania dla urządzeń medycznych, samolotów, pociągów, […]
Ostatnio pisałem relację z NASA Space Apps Challenge. Dzisiaj pora na trochę szczegółów technicznych dotyczących naszej konstrukcji. Wybraliśmy temat “Can you build a …” i podtemat “Make Sense Out of Mars”. Celem było stworzenie sensora, który mógłby pomóc pierwszym kolonizatorom Marsa. Naszym czujnikiem był oczywiście łazik. Jego zadaniem miało być zbieranie informacji o najbliższym otoczeniu […]
W ostatni weekend brałem udział w NASA Space Apps Challenge. Jest to hackaton NASA organizowany jednocześnie w wielu miejscach na świecie. Polska edycja miała miejsce w Gdańsku w Parku Naukowo-Technologicznym. Zebraliśmy ekipę z pracy i postanowiliśmy zrobić łazika marsjańskiego. Jak to zwykle bywa w projektach, gdzie brakuje czasu – psuło się praktycznie wszystko. Jednak ostatecznie […]
W ostatnim tygodniu września byłem jeszcze na jednej konferencji przed opisywanym ostatnio Programistokiem – na 4Developers Gdańsk, która odbyła się we wtorek 25 września. Był to dla mnie debiut w roli prelegenta. Moja prezentacja o systemach safety-critical odbyła się o 14.00 na ścieżce C++. Przez cały dzień uczyłem również w konferencji jako słuchacz. Głównie właśnie […]
Już ponad tydzień minął od Programistoku (28-29.09.2018) było to dla mnie przełomowe wydarzenie, dlatego wymaga odpowiedniej relacji ? Wiele się nasłuchałem o fantastycznej atmosferze tego wydarzenia i chciałem koniecznie pojechać. Rzuciłem się od razu na głęboką wodę i zgłosiłem się na prelegenta. Jak się okazało, była to świetna decyzja. Before Moja przygoda z tegorocznym Programistokiem […]
Już 25 września występuję na 4Developers Gdańsk z prezentacją “Kiedy od softu zależy ludzkie życie – o systemach safety-critcal”. Z tej okazji mam dla Was zniżkę 15% na bilet. Wystarczy podczas rejestracji użyć kodu: amozenadmorze? Na 4Developers Gdańsk będziemy mieli do wyboru cztery ścieżki tematyczne: .NET, C++ (na której wystąpię), Java i Soft skills. Jest […]
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.