czwartek, 30 listopada 2023

Nowy projekt

 Nie zwalniam na pozostałych tematach (klient-serwer już powoli rozmawiają, ale powiedzmy, że to nie jest takie proste), a już wyłonił się kolejny ekscytujący projekt.

Trochę przypadkiem się złożyło, ale zgłosiłem się do pomocy w postaci korepetycji z Javy. Powiedzmy że Tomaszew na PJATK zasługuje na swoją renomę.

To trochę zabawne wrócić znów do absolutnych podstaw, takich jak tworzenie zmiennych, przypisywanie wartości, konwersja typów, ale jest też wyzwanie związane z tym, aby mojej uczennicy nie przytłoczyły te wszystkie informacje. Aby odnaleźć w tym szaleństwie metodę.

Na jakimś poziomie jest to ironiczne, że ja jestem zblokowany przez Selektory i multipleksowanie, a ona przez operacje na tablicach – ale może i nauka właśnie na tym polega, aby się z tym zmierzyć?

środa, 29 listopada 2023

Klient-serwer czyli klasyka

 Na TPO mam do przygotowania czatową aplikację opartą o klient-serwer z nieblokującą się komunikacją poprzez Selektory i multipleksowanie.

Przyznaję, że piszę sporo kodu (obecnie pracuję nad dwunastą wersją zadania, zresztą zacząłem ten kod "nauki" commitować na repo), ale mimo wszystko borykam się ze sporą złożonością zadania. Na tym etapie mam już działający serwer, który przyjmuje wiele połączeń klientów (którzy także są nieblokujący), ale z jakiegoś powodu nie ma dalszej komunikacji pomiędzy nimi. Pracowałem nad tym wczoraj do 2 w nocy, ale przy posiadaniu biurowej pracy w tzw. standardowych godzinach to tempo jest nie do utrzymania.

Z pewnych zaskoczeń - zadziwiło mnie w jakim stopniu ChatGPT jest pomocny w tych wyzwaniach - nie tylko przygotowuje fragmenty gotowego kodu, ale także odpowiada na pytania: dlaczego to działa tak, a nie inaczej, czy tutaj nie trzeba czegoś domknąć itp. Wykorzystanie chata do napisania całego zadania byłoby nieetyczne i nieskuteczne (moim celem jest nauka, a nie zaliczanie punktów), ale mimo wszystko stanowi fajny odpowiednik starszego kolegi, którego zawsze mogę spytać o różne rzeczy, nawet głupie. I co ciekawe bardzo często ma rację, bo widzę, że kod działa.

niedziela, 26 listopada 2023

Wskrzeszamy projekt

 Tym razem wpisy będą krótsze, bo szkoda czasu, kiedy można kodzić.

W semestrze mam aż trzy przedmioty programistyczne związane z Javą: Uniwersalne Techniki Programowania, Techniki Programowania Rozproszonego oraz Modelowanie i Analiza Systemów Informacyjnych.

UTP - przerabianie "prostych" zadań na kolekcjach, wątkach, idzie ogarnąć dość łatwo.

TPO - właśnie walczę z aplikacją klient-serwer, piszę dziesiątą wersję.

MAS - tutaj chodzi o oddanie modelu biznesowego (stworzenie go) oraz implementację. Diagram klas, różne modele asocjacji itp.

Server socket all over place

 Kilka godzin tutoriali YT później i różnych prób, w końcu udało się zachęcić Server do współpracy :) Nie mogę powiedzieć, że to przełom, bo...