Magazyny

Programista 1/2025 (116) – styczeń/luty 2025 – Jak działa Internet – HTTP

Nadszedł czas, aby zgłębić „język”, którym posługuje się większość serwisów – protokół HTTP. Dokładne jego zrozumienie otworzy nam drogę do samodzielnej implementacji serwisów, lepszego rozumienia komunikacji internetowej na poziomie aplikacji, a także do efektywnego wykrywania i naprawiania problemów z komunikacją...

Rekin w strumieniu... czyli hakujemy Stream Decka

Jak powszechnie wiadomo, jestem wielkim fanem koncepcji klawiatur makro: małych urządzeń, które pomagają automatyzować często powtarzane zadania. Jednym z pierwszych komercyjnych, zaawansowanych urządzeń tego typu jest Stream Deck zaprojektowany przez firmę Elgato, przejętą jakiś czas temu przez Logitecha. Wyposażony jest on w przezroczyste przyciski zamontowane ponad wyświetlaczem LCD, co pozwala każdemu z nich dynamicznie przyporządkowywać inne ikony. Razem ze Stream Deckiem otrzymujemy również od Elgato odpowiednie oprogramowanie...

Gwiazda morska i korutyny, czyli Seastar w praktyce

Seastar jest zaawansowaną, otwartoźródłową biblioteką C++ zaprojektowaną do implementacji aplikacji serwerowych wymagających ekstremalnej wydajności na nowoczesnym sprzęcie wielordzeniowym. Dzięki swojemu unikalnemu podejściu do alokacji zasobów oraz zorientowaniu na asynchroniczność Seastar umożliwia pełne wykorzystanie potencjału współczesnych procesorów, minimalizując jednocześnie opóźnienia. Biblioteka ta jest sercem ScyllaDB – niezwykle wydajnej bazy danych NoSQL kompatybilnej z Apache Cassandra...

Programista 3/2024 (113) – lipiec/sierpień 2024 – Python Fuzzing 101

Python 3 to obecnie jeden z najpopularniejszych języków programowania. Stosunkowo prosta składnia oraz łatwość ekspresji powoduje, że jest on bardzo częstym wyborem. Popularność niesie za sobą masę bibliotek, które powstają nie tylko w Pythonie, ale także w innych językach (np. C) w celu poprawienia wydajności. Duża ilość kodu oraz ograniczone zasoby osobowe powodują, że oprócz wykonywanych regularnie procesów code-review dobrze jest rozejrzeć się za zautomatyzowanym sposobem poszukiwania błędów i włączyć go do procesu rozwoju oprogramowania w taki sposób, aby otrzymywać informacje o znalezionych błędach zaraz po kolejnym commicie. Taką możliwość daje fuzzing (lub property testing)...

Ile kosztuje „darmowe” oprogramowanie?

Oprogramowanie „darmowe” nie znaczy „open source” – sugeruje również, że nie musimy za nie płacić. Chociaż w większości przypadków rzadko w grę wchodzą realne pieniądze, używanie „wolnego oprogramowania” w rzeczywistości wiąże się z wieloma ukrytymi kosztami i zobowiązaniami...

Jak wynaleźć koło na nowo, czyli o przepisaniu wyszukiwarki artykułów „Programisty”

Może spotkaliście się z sytuacją, gdzie powstało już jakieś oprogramowanie, ale nie spełnia ono waszych oczekiwań? W takim przypadku są co najmniej cztery opcje do wyboru. Pierwsza to używać tego system mimo jego wad. Druga – poszukać zamienników. Trzecia – nie używać, a czwarta… spróbować napisać to oprogramowanie na nowo...

Programista 5/2023 (110) – listopad/grudzień 2023 – Egzamin dla maszyny: LLMy vs programowanie

Ostatnio mam wrażenie, że programiści dzielą się na tych, co już korzystają z LLMów, i na tych, co jeszcze z nich nie korzystają. Szczególnie że dostęp do ChatGPT 3.5 jest bezpłatny, jego API jest bardzo tanie, a ChatGPT 4 – mimo iż darmowy nie jest – nie ma również zaporowej ceny. Sam korzystam z ChatGPT codziennie, w tym również jeśli potrzebuję jakiś krótki skrypcik albo jakąś oczywistą funkcję, której nie chce mi się po raz dziesiąty implementować. Przydatności więc im trudno odmówić. Ale przydatność nie oznacza jeszcze poprawności. Postanowiłem więc poświęcić trochę czasu i sprawdzić, jak to w zasadzie jest z tą poprawnością i bezpieczeństwem kodu generowanego przez ChatGPT. W tym artykule podzielę się moimi wnioskami, przemyśleniami, ale przede wszystkim przejrzę trochę wygenerowanego przez ChatGPT kodu...

Jak bezpiecznie korzystać z HttpClient w .NET

Jeśli często korzystamy z klasy HttpClient w .NET, musimy wiedzieć, jak robić to w sposób wydajny i bezpieczny. Wiedza na temat działania HttpClient w przypadku wielowątkowego procesowania zapytań HTTP jest kluczowa. Jakie istnieją sposoby na tworzenie i utrzymywanie instancji klasy HttpClient? Czym jest IHttpClientFactory oraz Typed HTTP client i jak wygląda ich użycie w kontekście Dependency Injection?

Renderowanie animacji wektorowych

W jaki sposób przygotować animację do filmu na YouTube? Najprościej jest chyba skorzystać z Adobe Animate albo AfterEffects. Darmową alternatywą jest też całkiem niezły Synfig. No, chyba że jest się maniakiem robiącym wszystko po swojemu. Wtedy…