Zapraszamy do zamówienia magazynu w >>prenumeracie<<. Miesięcznik jest dostępny w formie papierowej, PDF, EPUB i MOBI oraz AZW3. Do prenumeraty papierowej zawsze dołączamy wydania elektroniczne.
PROGRAMOWANIE ROZWIĄZAŃ SERWEROWYCH
Własny model AI na VPS
Pojawienie się takich modeli językowych jak Llama, DeepSeek oraz Bielik spowodowało, iż możemy używać LLMów tak jak innego systemu Open Source. Jak w takim razie skonfigurować swój własny model GenAI na serwerze? W tym artykule przejdziemy przez wszystkie niezbędne kroki, używając do tego przede wszystkim Pythona. Napiszemy prostą aplikację webową serwującą odpowiedzi z modelu w FastAPI. Prawie identyczne kroki są aplikowalne do klasycznych modeli uczenia maszynowego, z tą różnicą, iż musimy je wcześniej wytrenować sami.
Szymon Molińśki
Jak działa Internet – TCP i NAT
Witajcie w ostatnim artykule z serii „Jak działa Internet”! Zapoznaliśmy się w niej z różnymi zagadnieniami dotyczącymi Internetu – od najniższych warstw modelu OSI oraz adresowania IP i MAC po protokoły DNS i HTTP. Od czasu do czasu zdarza się jednak, iż musimy przyjrzeć się warstwie „sklejającej” omówione dotąd mechanizmy. Dlatego w tym artykule poznamy podstawowe zagadnienia związane z protokołami TCP i UDP oraz zapoznamy się z procesem NAT.
Dawid Pilarski
INŻYNIERIA OPROGRAMOWANIA
Clean Code considered harmful
Powinniśmy przestać zalecać niedoświadczonym programistom czytanie Clean Code
Prawie dokładnie sześć lat temu na łamach „Programisty” pojawił się mój artykuł „Jak clean jest Clean Code”, w którym polemizowałem z niektórymi postulatami wysuniętymi przez Roberta C. Martina. Upłynęło jednak trochę czasu, napisałem kilkadziesiąt, a może i kilkaset tysięcy linii kodu i moja niechęć wobec skrajnego – w niektórych przypadkach – podejścia Wujka Boba do pisania kodu jeszcze bardziej się wzmogła. Ściślej, stoję w tej chwili na stanowisku, iż duża część proponowanych przez niego reguł jest nie tyle kontrowersyjna albo irytująco restrykcyjna, ale wręcz szkodliwa i iż nie powinniśmy ich stosować ani tym bardziej proponować czeladnikom programistycznego fachu. Co ciekawe, nie jestem wcale z moją opinią odosobniony.
Wojciech Sura
Samodzielna automatyzacja wdrożeń dla ASP.Net
Współczesnym standardem w zakresie wdrożenia systemu jest wykorzystanie narzędzi do CI/CD takich jak Jenkins czy Azure DevOps. I o ile tylko okoliczności na to pozwolą, z narzędzi takich zdecydowanie warto skorzystać, ponieważ skutecznie automatyzują one proces dostarczania aplikacji do miejsca, z którego będzie ona serwowana użytkownikom. W rzadkich przypadkach może się jednak zdarzyć, iż użycie tych narzędzi nie jest możliwe – warto wówczas pokusić się o samodzielną automatyzację wdrożenia: w niniejszym artykule pokażę, jak stosunkowo łatwo można to zrobić.
Wojciech Sura
Z ARCHIWUM CVE
CVE-2023-38545: Libcurl i proxy
HTTP to bezsprzecznie fundament współczesnej komunikacji w sieci. Każdego dnia niezliczone żądania przesyłane przez nasze przeglądarki umożliwiają błyskawiczne ładowanie ulubionych stron, otwierając przed nami nieograniczony dostęp do informacji. Czasami aby zapewnić sobie anonimowość, bądź dostęp do pewnych zasobów, korzystamy z serwerów pośredniczących (ang. proxy). W niniejszym artykule przyjrzymy się oraz odtworzymy błąd w bibliotece libcurl i implementacji protokołu SOCKS.
Mariusz Zaborski
PLANETA IT
Pair programming – czy to działa?
Programowanie parami (ang. pair programming) polega na tym, iż para developerów pracuje nad rozwiązaniem tego samego problemu programistycznego na jednym komputerze. Idea ta, spopularyzowana w latach 90. ubiegłego wieku, cieszy się dużą popularnością, ale jednocześnie wzbudza spore kontrowersje. Z jednej strony mamy za sobą 30 lat badań empirycznych i metaanaliz, które pokazują, iż duety programistów pracują pod każdym względem lepiej od solistów, zużywając przy tym tylko nieco więcej osobogodzin. Z drugiej strony, krytycy wskazują na problem złudzenia publikacyjnego oraz wyższy całkowity koszt produkcji. Czy więc programowanie w parach jest opłacalne dla organizacji? Niniejszy artykuł jest próbą odpowiedzi na to pytanie.
Maciej Norberciak
MEGA65 – wskrzeszenie następcy wielkiej legendy
Commodore C64, legenda 8-bitowych komputerów osobistych, nie doczekał się swojej kolejnej wersji, swoistego następcy. Nastąpił przeskok generacyjny i palmę pierwszeństwa przejęły konstrukcje 16/32-bitowe. Pomimo tego prototyp Commodore 65 był w fazie przygotowań, dopracowywano szczegóły, wydawano kolejne wersje, by tuż przed oczekiwaną premierą skasować cały projekt.
Robert Jaremczak