Generated by All in One SEO v4.9.3, this is an llms.txt file, used by LLMs to index the site. # PROGRESS SOFTWARE Blog dla użytkowników technologii Progress Software ## Sitemaps - [XML Sitemap](https://blog-progress.pl/sitemap.xml): Contains all public & indexable URLs for this website. ## Posts - [TDE w bazach OpenEdge](https://blog-progress.pl/tde-w-bazach-openedge/) - Ostatni artykuł dotyczył podstawowych informacji związanych z zastosowania FIPS w OpenEdge. Zanim napiszę trochę więcej na ten temat, postanowiłem skupić się na innym rozwiązaniu – Transparent Data Encryption (TDE). Po pierwsze, kilku z Was prosiło mnie o to już wcześniej, a po drugie, ta wiedza przyda się przy włączaniu FIPS w bazach danych. Bezpieczeństwo danych - [FIPS 140-3 w OpenEdge 13](https://blog-progress.pl/fips/) - Wraz z premierą Progress OpenEdge 13, twórcy oprogramowania i administratorzy systemów otrzymali potężne narzędzie do walki o cyberbezpieczeństwo. Wersja ta wprowadza pierwsze produkcyjne wdrożenie standardu kryptograficznego FIPS 140-3 dla kluczowych komponentów systemu. FIPS 140-3 jest najnowszym standardem rządu USA, który definiuje wymagania bezpieczeństwa dla modułów kryptograficznych. W OpenEdge 13 aktywacja FIPS mode sprawia, że środowisko - [DDM - rozszerzenie tematu](https://blog-progress.pl/ddm3/) - O technologii Dynamic Data Masking pisałem dwukrotnie w 2025 roku, aby przybliżyć jej działanie użytkownikom baz danych Progress OpenEdge od wersji 12.8. W poprzednich artykułach skupiłem się głównie na podstawach: omówiłem sposób aktywacji mechanizmu DDM w bazie danych oraz konfigurację czterech dostępnych typów masek dla wybranych pól i tabel. Dynamic Data Masking jest jednak rozwiązaniem, - [Progress World Tour 2026](https://blog-progress.pl/progress-world-tour-2026/) - 28 maja w hotelu Royal Tulip Warsaw Centre odbyło się kolejne spotkanie World Tour. Tym razem Dyrektor Regionu Europy Środkowo-Wschodniej, Thomas Schuller nie mógł uczestniczyć i rolę prowadzącego przejął Bartosz Żelek, a nad całością organizacyjną czuwał Michael Ryan. Na poprzednich spotkaniach łączyliśmy się podczas sesji z naszymi konsultantami żeby wysłuchać prezentacji lub obejrzeć demo w - [OpenEdge 13](https://blog-progress.pl/openedge-13-0/) - 10 lutego 2026 roku pojawiła się pierwsza wersja OpenEdge 13, jako tzw, Innovation Release, co stanowi przygotowanie pod wersję długoterminową (LTS). Platforma rozwijana przez Progress wchodzi na kolejny poziom nowoczesności. To wydanie skupia się przede wszystkim na zwiększeniu wydajności, bezpieczeństwa oraz lepszej integracji z nowoczesnymi technologiami w chmurze i kontenerowymi. Dla firm korzystających z OpenEdge - [OpenEdge 12](https://blog-progress.pl/openedge-12/) - Stało się! Zgodnie z zapowiedziami nowa wersja OpenEdge 12 jest już na rynku. Jak zwykle gdy pojawia się nowy produkt z wyższym głównym numerem towarzyszy mu szczególnie duże zainteresowanie. Jakie najciekawsze nowości niesie ze sobą OE12? Było na ten temat w necie kilka webinarów, firma Galeos dostarczyła jeden po polsku, ale ja chciałem spojrzeć na - [Nowe typy extentów w bazach OpenEdge](https://blog-progress.pl/extenty1/) - Extenty są podstawowym elementem obszaru przechowywania (storage area) bazy danych OpenEdge. O ile bazę można podzielić na elementy logiczne jak tabele, indexy itp. to extenty są elementami fizycznymi - po prostu plikami na dysku. Rozmiar, typ i lokalizację extentów definiuje się za pomocą pliku [nazwa_bazy].st. Są dwa podstawowe typy extentów: Extent stały (fixed extent) umożliwia - [Promon 4 - strojenie sieci](https://blog-progress.pl/promon4/) - W środowisku aplikacji wielowarstwowej komunikaty sieciowe są nieustannie przesyłane pomiędzy klientami zdalnymi a serwerem bazy danych. Komunikacja sieciowa może stanowić potencjalne wąskie gardło, które negatywnie wpływa na wydajność systemu. Podczas pracy bazy danych należy proaktywnie monitorować parametry komunikacji sieciowej. W przypadku zauważenia jej pogorszenia warto rozważyć dostrojenie odpowiednich parametrów, aby poprawić wydajność. Aby skutecznie monitorować - [Promon - analiza danych](https://blog-progress.pl/promon1/) - Administratorzy baz danych stają czasem przed problemem: jak analizować parametry generowane w narzędziu promon w funkcji czasu. Wszystkie te parametry pochodzą z tablic VST i można łatwo napisać odpowiedni program w języku ABL. Problem polega jednak na tym, że administratorzy często nie mają uprawnień do kompilacji. Sytuacja nie jest jednak beznadziejna i można sobie z - [OE MCP Connector i VS Code](https://blog-progress.pl/vscode3/) - W świecie aplikacji biznesowych opartych na technologii OpenEdge coraz częściej pojawia się pytanie, jak skutecznie wykorzystać sztuczną inteligencję w pracy z językiem Advanced Business Language. Choć narzędzia AI na stałe zadomowiły się już w wielu ekosystemach programistycznych, technologia OpenEdge pozostawała na uboczu. Głównym problemem była specyfika ABL, którego popularne modele językowe praktycznie nie znają. Z - [OpenEdge i VS Code 2](https://blog-progress.pl/vscode2/) - Każdy z Was zapewne często korzysta z pomocy ze strony sztucznej inteligencji. Warto więc powracać do tego tematu od czasu do czasu. W Progress OpenEdge ten temat też jest aktywnie rozwijany, ale zanim pojawi się na tym blogu jakiś wpis na temat produktu OpenEdge MCP zobaczmy co możemy zrobić w omawianym niedawno środowisku VS Code. - [Memory Profiler 1](https://blog-progress.pl/mp1/) - W OpenEdge od wersji 12.8.9 mamy długo oczekiwane narzędzie Memory Profiler. Umożliwia ono analizę wykorzystania pamięci przez aplikację w funkcji czasu a także w określonych interwałach, umożliwiając wizualizację wykorzystania pamięci przez kod aplikacji. Wycieki pamięci występują, gdy aplikacja nie zwalnia niepotrzebnej już pamięci. W konsekwencji wykorzystanie jej przez aplikację rośnie z czasem, co może prowadzić - [Memory Profiler 2](https://blog-progress.pl/mp2/) - Wracamy do tematu związanego z użyciem Memory Profilera, dostępnego od wersji OE 12.8.9. W poprzednim artykule pokazałem jak zainstalować i uruchomić to narzędzie. Startujemy zatem MP, który jest instancją PASOE komendą: oemp startup Teraz przygotujemy prosty plik konfiguracyjny mpconfig.cfg, zawierący informacje co ile ma odbyć się zrzut pamięci (cadence = 5 sek.) i do którego - [OpenEdge i VS Code](https://blog-progress.pl/vscode/) - Visual Studio Code (VS Code) jest alternatywą dla tradycyjnego środowiska Progress Developer Studio (PDSOE). Dzięki oficjalnemu wsparciu Progress Software, programiści OpenEdge mogą korzystać z lekkiego i nowoczesnego środowiska IDE. Konfiguracja VS Code opiera się na pliku konfiguracyjnym w formacie JSON - w głównym folderze projektu musi znajdować się plik openedge-project.json, zawierający definicje OpenEdge jak: wersja - [Promon – analiza danych 3](https://blog-progress.pl/promon-analiza-danych-3/) - Dziś napiszę znowu o promonie odpowiadając przy okazji na kilka Waszych pytań, za które bardzo dziękuję. Pierwsze dotyczy strojenia parametru -spin (tylko dla licencji serwera Enterprise). Parametr „Spin Lock Retries” (–spin N) służy do określania, ile razy proces próbuje uzyskać zatrzask (latch) do zablokowanego zasobu w pamięci współdzielonej przed "pójściem na drzemkę". Po wstrzymaniu procesu - [Historia Progressa](https://blog-progress.pl/historia-progressa/) - W niniejszym wpisie chciałbym przedstawić krótką historię Progress Software. Historię której nie powstydziłyby się takie firmy jak Microsoft czy Apple. Cofniemy się aż do poczatku lat 80-tych, w więc czasów, gdy pracowało się bez Internetu i twardych dysków... Przyjrzymy się najważniejszym elementom dodawanym i rozwijanym w poszczególnych wersjach aż do dnia dzisiejszego. Kiedyś, w czasach - [Jak dobrać długość clustra BI](https://blog-progress.pl/clusterbi/) - W poprzednim wpisie napisałem pod koniec jak z grubsza określić długośc clustra BI. Oczywiście wydłużanie tego clustra ma sens tylko dla licencji serwera bazy Enterprise. W Workgroup nie ma procesów asynchronicznych, a więc duża liczba buforów Dirty nie będzie "rozładowana" przed checkpointemi i cały system znacznie spowolni. A zatem, w bazie Enterprise chcemy aby odstęp - [Progress World Tour 2025 w Warszawie](https://blog-progress.pl/worldtour2025/) - 20 maja w hotelu Royal Tulip Warsaw Centre miało miejsce kolejne spotkanie World Tour. Podobnie jak roku temu przybyło wielu naszych gości, a gospodarzami byliśmy my, czyli: Thomas Schuller - Dyrektor Regionu Europy Środkowo-Wschodniej, Bartosz Żelek i Piotr Tucholski (czyli autor bloga). Przygotowaliśmy następujące prezentacje (moje są do pobrania w formacie pdf). Progress Business Update - [Promon - analiza danych 2](https://blog-progress.pl/promon2/) - Powracając do tematyki związanej z tym najbardziej znanym narzędziem dla administratorów baz, chciałbym napisać dwa słowa o ukrytej opcji, którą, jak się okazuje, nie wszyscy znają. Kiedyś była to opcja R&D, niewidoczna z głównego menu ale to było dawno temu. Drugie menu było bardziej ukryte. Trzeba było napisać devdbh, Enter i następnie 6. Obecnie w - [PASOE: Server-Side Profiling](https://blog-progress.pl/ssp/) - Dwa lata temu napisałem trzeci post z serii o narzędziu Profiler - narzędziu deweloperskim wykorzystanym w lokalnych sesji klienckich. Tym razem napiszę o trudniejszym użyciu tej techniki dla sesji serwera PASOE. Dane profilowania można zbierać zarówno dla modelu production jak i development. Zbieranie danych z PASOE różni się w porównaniu z lokalną sesją. Pierwszym krokiem - [Dynamic Data Masking II](https://blog-progress.pl/ddm2/) - Kolejnym krokiem jest zdefiniowanie masek dla wybranych pól. Maski te zasłaniają nieautoryzowanym użytkownikom część lub całą zawartość pola. Mamy cztery rodzaje takich masek: domyślna, częściowa (partial), literal, null. Wszystkie ustawienia DDM w ABL (tak jak w poprzednim artykule) realizujemy poprzez metody DataAdminService. Zaczynamy od maski domyślnej, w ktorej mamy małe pole do menewru. Pola znakowe - [Dynamic Data Masking I](https://blog-progress.pl/ddm1/) - Na początku chciałbym podać nieco wiadomości wprowadzających do Dynamic Data Masking (DDM). Najprościej mówiąc jest to zabezpieczenie danych w bazie na poziomie logicznym, ale definiowane przez administratora. Wyobrażmy sobie sytuację gdy deweloper tworzy aplikację, w której wyświetlane są dane wraźliwe jak np. numer telefonu, adres lub nawet pesel czy miesięczne zarobki. Z drugiej strony są - [AI w Developers Studio](https://blog-progress.pl/chatgpt/) - Nie byłem do końca pewien czy powinienem napisać ten artykuł, bo nie mogę pokazać efektu końcowego, ale ze względu na zainteresowanie AI w OpenEdge postanowiłem pokazać jak rozpocząć konfigurację ChatGPT w Developers Studio. Całość jest dość dobrze udokumentowana na stronach progressowych choć nie do końca. Po pierwsze musimy mieć minimum wersję OE 12.8.4. Wersja ta - [PASOE i WebSpeed](https://blog-progress.pl/pasoe-i-webspeed/) - Myślę, że wielu spośród polskich klientów Progressa pamięta czasy wersji 9 (koniec lat 90-tych), z którą wprowadzona została technologia tworzenia aplikacji webowych WebSpeed. Składał się on z dwóch produktów: WebSpeed Transaction Servera - odpowiedzialnego za uruchamianie i poprawność działania aplikacji, zapewniającego spójność transakcji i danych przy jednoczesnym korzystaniu z wielu baz. Drugim produktem był WebSpeed - [Klient HTTP ABL](https://blog-progress.pl/klient-http-abl/) - W całym cyklu artykułów kilkakrotnie pisałem o tworzeniu serwisów generujących dane do tzw. endpoint a także o korzystaniu z tych danych do generowania prostego interfejsu użytkownika. Żeby nie być gołosłownym przypomnę, że dane takie można wygenerować np. do formatu JSON za pomocą wizardów w OE Develeopr Studio dla serwisów rest 1) poprzez warstwę transportową REST - [Klient HTTP ABL 2](https://blog-progress.pl/klient-http-abl-2/) - Kontynuując temat związany z budowaniem klienta HTTP w aplikacji ABL, napiszę krótko o najprostszym uwierzytelnianiu. Zabezpieczenia w serwerze PASOE opisałem w serii artykułów, a teraz przyda się odświeżenie podstawowych wiadomości zamieszczonych tutaj. W lokalizacji dla web aplikacji ...\webapps\myrest\WEB-INF znajduje się plik oeablSecurity.properties. Znajdujemy w nim wpis: client.login.model=anonymous i zmieniamy na basic. Wymusi to logowanie się - [Strukturalna obsługa błędów w ABL cz. I](https://blog-progress.pl/strukturalna-obsluga-bledow-w-abl/) - Zanim przejdziemy do omówienia strukturalnej obsługi błędów w języku ABL, trzeba przypomnieć pewne (oczywiste) fakty dotyczące tego języka. ABL (wcześniej 4GL) był zawsze proceduralnym językiem bazodanowym o strukturze blokowej. Umożliwia on łączenie logiki biznesowej i interfejsu użytkownika w jednym pliku procedury zawierającym instrukcje, blok główny i bloki zagnieżdżone. Blokowa struktura jest tu niezwykle istotna, ponieważ - [Śledzenie aplikacji ABL](https://blog-progress.pl/sledzenie-aplikacji-abl/) - Śledzenie aplikacji ABL to nie jest temat nowy - po raz pierwszy zostało zaimplementowane w wersji 9, a więc jeszcze w starym 4GL. Śledzenie to nie zostało niestety uwzględnione ani w szkoleniu z podstaw języka, ani ze strojenia aplikacji i może dlatego nie wszystkim deweloperom aplikacji OpenEdge jest znane. W ostatnich tygodniach klienci zgłaszali mi - [Bezpieczeństwo PASOE Manager](https://blog-progress.pl/pasoe-manager/) - O bezpieczeństwie PASOE pisałem już niejednokrotnie i jest to związane z różnymi aspektami zabezpieczeń. Tym razem będzie krótko o Tomcat Manager i OpenEdge Manager, o czym zresztą obiecałem w poprzednim artykule. Służą one do zarządzania aplikacjami webowymi i wielosesyjnymi agentami i przy braku odpowiedniego zabezpieczenia mogą stać się potencjalnym celem ataków hakerskich. Progress zdecydowanie zaleca - [Modele zabezpieczeń serwera PASOE](https://blog-progress.pl/modele-pasoe/) - "Temat PASOE nie schodzi z afisza", można powiedzieć, ale co zrobić jeśli to wciąż kluczowy produkt w architekturze aplikacji progressowych i w dodatku wciąż rozwijany. Zwykle piszę na temat, z którym związane są pewne niejasności i pytania. Tak samo jest tym razem. Chodzi o tworzenie instancji PASOE jako model deweloperski i produkcyjny. Każdy z tych - [Kafka i OpenEdge cz. II](https://blog-progress.pl/kafka2/) - W poprzednim artykule pokazałem jak zainstalować i skonfigurować lokalne środowisko Kafki a teraz pokażę jak zintegrować je z OpenEdgem. Niektórzy z Was, którzy będą potrzebować zintegrować się z istniejącą architekturą Kafki, będą zainteresowani od tego właśnie miejsca. Najlepiej w tym celu sprawdzić dokumentację OE dla danej wersji np. online. Ważne, że trzeba posiadać wersję OE - [PASOE i SSL cz. I](https://blog-progress.pl/pasoe-ssl1/) - W niniejszym i następnym artykule chciałbym poruszyć ważny temat certyfikatów i połączenia PASOE z aplikacja kliencką z zastosowaniem protokułu SSL (TLS). TLS wyewoluował z protokołu SSL (zastępując go gdy jest to możliwe) i jest to standardowy protokół implementujący szyfrowanie wymagane w komunikacji HTTPS. PASOE umożliwia określenie portu HTTPS podczas tworzenia instancji. Przypomnijmy sobie przykładową komendę: - [Kafka i OpenEdge cz. I](https://blog-progress.pl/kafka1/) - O integracji OpenEdge z Apache Kafka chciałem napisać od dawna. Najpierw musiałem pokonać pewne kłopoty techniczne, tak aby pokazać pełna ścieżkę od instalacji tejże Kafki do napisania programów w ABL do wysyłania i pobierania danych, ale po kolei. Co to jest Kafka. Na głównej stronie Apache Kafki możemy przeczytać w tłumaczeniu: Apache Kafka to rozproszona - [PASOE i SSL cz. II](https://blog-progress.pl/pasoe-ssl2/) - W poprzednim artykule omówiłem czynności wstępne związane z wygenerowaniem kluczy i certyfikatów. Czas teraz zająć się konfiguracją po stronie klienta ABL i przetestowaniem połączenia. Gdy serwer przedstawia swój certyfikat klientowi, klient musi mieć (w celu weryfikacji) certyfikat zaimportowany do swojego magazynu certyfikatów. OpenEdge udostępnia narzędzie certutil do importowania certyfikatu CA do magazynu certyfikatów OpenEdge w - [Rejestrowanie instancji PASOE](https://blog-progress.pl/register/) - Pisząc o rejestrowaniu instancji serwera aplikacji, miałem na myśli komendę tcman register. Jest to bardzo istotna komenda przy przenoszeniu instancji do innej lokalizacji (np. z serwera deweloperskiego do produkcyjnego). Ponieważ, jak zauważyłem, nie jest ona dostatecznie znana lub mylona z inną podobną komendą, postanowiłem przybliżyć Wam ten temat. Zacznijmy od przykładowej instancji o nazwie mypasoe - [Problem z AdminServerem OE12](https://blog-progress.pl/adminserver/) - Chyba każdy użytkownik OpenEdge'a miał lub miewa problemy z AdminServerem - centralną usługą do zarządzania innymi procesami OE. Problemy te mogą być różnej natury i różne są sposoby radzenia sobie z nimi (np. zmiana portu, restart usługi czy całego systemu itd). Ja opiszę inny problem, który może pojawić się dla OE 12.2 i wyższej, co - [Podpisane biblioteki procedur ABL](https://blog-progress.pl/podpisane-biblioteki-procedur-abl/) - Dziś napiszę wstęp o zabezpieczeniach r-kodów w tzw. podpisanych bibliotekach archiwum procedur. Temat ten wypłynął podczas kwietniowego spotkania World Tour i byłem poproszone o napisanie trochę więcej informacji niż było to w prezentacji. Biblioteki archiwum ABL to zbiór r-kodów (rozszerzenie .apl), podobnie jak dobrze znane biblioteki .pl ale obsługują także podpisywanie i weryfikację r-kodów. Podpisany - [PASOE - OEMANAGER](https://blog-progress.pl/pasoe-oemanager/) - Właśnie pojawiła się nowa wersja OpenEdge LTS 12.8 a wraz z nią sporo nowości. Poświęcę im cały artykuł, ale to następnym razem. Teraz chciałbym skupić się na jednym elemencie dotyczącym serwera aplikacji PASOE, a mianowicie na narzędziu OEMANAGER. Pamiętacie może, że dla klasycznego appservera czy webspeeda można było uruchomić z poziomu wiersza poleceń (proenv) komendę - [Progress World Tour 2024 w Warszawie](https://blog-progress.pl/progress-world-tour-2024-w-warszawie/) - World Tour 2024 to seria spotkań użytkowników Progressa na całym świecie. 11 kwietnia zawitał ponownie do Warszawy (pamiętacie tę imprezę z 2023 roku?), a jego miejscem był Holiday Inn. Spotkanie uświetniło przybycie ok. 20 gości, a gospodarzami byli z ramienia Progressa: Thomas Schuller - Dyrektor Regionu Europy Środkowo-Wschodniej, Bartosz Żelek (jego przedstawiać chyba nie trzeba) - [OpenEdge 12.8](https://blog-progress.pl/openedge-12-8/) - Nareszcie mamy na rynku następną wersję LTS (Long-Term Support) OE 12.8. Poprzednia OE 12.2 pojawiła się 4 lata temu. 12.8 zawiera elementy wprowadzane w kolejnych wersjach Innovation 12.3-12.7 włącznie, co z grubsza opisałem na tym blogu. Teraz zobaczymy co ciekawego jest w samej wersji 12.8. Zacznijmy od administracji PASOE. W poprzednim artykule opisałem nową komendę - [Strukturalna obsługa błędów w ABL cz. II](https://blog-progress.pl/strukturalna-obsluga-bledow-w-abl-cz-ii/) - W poprzednim odcinku obiecałem napisać o tym jak utworzyć własną klasę obsługi błędów oraz pokazać, że strukturalną obsługę błędów można stosować także w przypadku procedur uruchamianych na serwerze aplikacji. Obie te kwestie pokażę na jednym przykładzie. W Developer's Studio klasę definiujemy najwygodniej przy pomocy wizarda, tak jak każda inną klasę. Musimy pamiętać, że dziedziczy ona - [Testy ABLUnit](https://blog-progress.pl/testy-ablunit/) - Testowanie jest nieodłącznym elementem budowania aplikacji. Istnieją różne metody, które mają dać pewność deweloperom, że aplikacja poradzi sobie w każdej sytuacji, bez względu na podawane dane a interfejs będzie tzw. "idiotoodporny". My skupimy się tutaj tylko na pierwszej części czyli logice aplikacji. I znowu, ten element można testować na różne sposoby np. wykorzystując debugger, kompilację - [Debugging w aplikacjach PASOE](https://blog-progress.pl/debugging-w-aplikacjach-pasoe/) - W kilkunastu postach opisywałem tworzenie serwisów i aplikacji z udziałem serwera aplikacji PASOE i coraz więcej naszych klientów korzysta z tej technologii. Coraz częściej powtarza się pytanie: jak można wykorzystać debugger aby wychwytywać błędy i testować aplikacje. PASOE to połączenie technologii Tomcat (Java) i OpenEdge (ABL), więc kompletny proces debuggowania jest dość złożony. Tutaj chciałbym - [Procedury ABL i serwer aplikacji PAS cz.II](https://blog-progress.pl/procedury-abl-i-serwer-aplikacji-pas-cz-ii/) - Kontynuując omawianie różnych zagadnień związanych z uruchamianiem aplikacji ABL na serwerze PAS zobaczmy jak osiągnąć połączenie w różnych trybach pracy, charakterystycznych dla klasycznego AppSerwera, co może być istotne podczas procesu migracji aplikacji. W poprzedniej części zobaczyliśmy jak przyłączyć się do serwera PAS w modelu session-free i session-managed. Wybór modelu należy do klienta, a nie serwera - [OpenEdge Command Center 1.3](https://blog-progress.pl/openedge-command-center-1-3/) - Witajcie wciąż w wakacyjnym nastroju! Ponieważ pojawiła się ostatnio nowa wersja OpenEdge Command Center - 1.3, właśnie jej poświęcam sierpniowy wpis. Na początku wspomnę jeszcze o jednym elemencie, o którym nie napisałem uprzednio, a który jest od pierwszej wersji OECC - o etykietach. Na poniższym obrazie widać takie etykiety, które reprezentują nazwę maszyny, tryb instancji - [OpenEdge Command Center - cz. 2](https://blog-progress.pl/oecc-2/) - W niniejszym wpisie powracamy do tematu OECC. Muszę powiedzieć na wstępie, że ten produkt cieszy się coraz większym zainteresowaniem klientów ze względu na nowoczesny interfejs, duże bezpieczeństwo, wydajność czy łatwość w monitorowaniu zdalnymi zasobami. Te zalety są kluczowe w porównaniu z OEM/OEE, który jest bardzo wygodny do stosowania raczej dla lokalnych zasobów. Należy przypomnieć że - [OpenEdge 12.7](https://blog-progress.pl/openedge-12-7/) - 5 maja pojawiła się wersja OpenEdge 12.7. Ma być ona ostatnią z wersji Innovation dla dwunastki ponieważ ostatnia, zapowiadana na koniec roku, ma być wersją LTS. Przyjrzyjmy się wybranym nowościom. PROSTRCT REMOVEONLINE - nowa komanda poprawiająca dostępność bazy danych. Umożliwia usuwanie extentów lub całych obszarów bez konieczności zamykania bazy. PROUTIL TABLEREORG to narzędzie służące do - [OpenEdge Command Center - Server](https://blog-progress.pl/openedge-command-center-server1/) - O nowym narzędziu OpenEdge Command Center (OECC) mówi się coraz częściej, także na tym blogu. Brak niestety dobrej instrukcji instalacji - OECC korzysta z bazy MongoDB, która nie należy do Progressa i trzeba korzystać z zewnętrznych instrukcji. Ja pokażę jak zainstalować OECC 1.2 na przykładzie darmowej i lokalnej licencji MongoDB Community Server. Pobieram ze stron - [Profiler – narzędzie dewelopera cz. III](https://blog-progress.pl/profiler3/) - Coraz więcej programistów korzysta z narzędzia Developer Studio, pora więc pokazać jak korzystać w nim z Profilera (dostępnego od wersji OE 11.6), omawianego w dwóch poprzednich artykułach. Środowisko tego narzędzia nadaje się o wiele bardziej do wyświetlania złożonych informacji w kilku okienkach niż tradycyjny edytor. Spróbujmy najpierw otworzyć wygenerowany wcześniej w profilerze plik typu .out. - [Profiler – narzędzie dewelopera cz. II](https://blog-progress.pl/profiler2/) - Dziś kontynuujemy wykorzystanie narzędzia Profiler Control do przetestowania kodu naszej aplikacji. Weźmy np. prosty poniższy przykład CustReport.p który wyświetla w pętli podstawowe pola z tablicy Customer, DEFINE VARIABLE dOrdervalue AS DECIMAL NO-UNDO. FOR EACH customer WHERE custnum < 100: dOrdervalue = 0. IF custnum < 40 THEN RUN ordervalue.p (custnum, OUTPUT dOrdervalue). DISP custnum name - [Profiler - narzędzie dewelopera cz. I](https://blog-progress.pl/profiler1/) - Profiler czy Profiler Control to narzędzie znane już od wersji V9 Progressa. Było dostępne w postaci źródłowej z katalogu DLC\src\samples\profile, a w późniejszych wersjach dodane do pakietu samples, który można pobrać oddzielnie. Jest to deweloperskie narzędzie darmowe i niewspierane. Wielu klientów korzysta z niego na całym świecie. Zostałem niedawno poproszony o przypomnienie jak rozpocząć z - [OpenEdge 12.6](https://blog-progress.pl/openedge-12-6/) - Wersja OpenEdge 12.6 pojawiła się z końcem września br. jako Innovation Release (termin który zastąpił Non-LTS Release) Podczas instalacji trzeba jak zwykle podać ścieżkę do JDK - w tej wersji jest to JDK 17. Zaczynamy od nowości związanych z bazami danych. PROUTIL IDXCOMPACT - to popularne narzędzie poprawiające wydajność indexów także dla bazy online. Komenda - [Swagger UI i PASOE](https://blog-progress.pl/swagger-ui-i-pasoe/) - Swagger UI jest narzędziem które umożliwia wizualizację zasobów API bez konieczności implementacji dodatkowych zewnętrznych aplikacji. Swagger składa się z plików HTML, JavaScript i CSS, które dynamicznie generują dokumentację na podstawie interfejsu API. Jest dostępny w PASOE począwszy od wersji OE 12.0 (domyślnie wyłączony). Od wersji OE 12.2 jest domyślnie włączony dla instancji deweloperskich - należy - [PASOE HealthScanner](https://blog-progress.pl/pasoe-healthscanner/) - OpenEdge HealthScanner został stworzony po to, aby ostrzegać administratorów o potencjalnych problemach z instancją PASOE, dzięki czemu serwer może zostać wyłączony z eksploatacji zanim wystąpi awaria.Usługa nie jest przeznaczona do badania ani rozwiązywania problemu lecz do oznaczenia serwera, który znajduje się poniżej pewnego, zdefiniowanego progu. OpenEdge HealthScanner jest przeznaczony do użytku z instancjami PASOE w - [OpenEdge 12.5](https://blog-progress.pl/openedge-12-5/) - OpenEdge 12.5, to kolejna wersja z serii non-LTS Release - skierowana do tych, którzy czekają na wszelkie nowinki techniczne. Przedstawię tutaj pokrótce niektóre z nich. Niedawno pisałem o nowym darmowym produkcie OpenEdge Command Center. Z wersją 12.5 możemy pobrać OECC w wersji 1.1, dzięki której możemy uzyskać informacje nie tylko o stanie poszczególnych instancji PASOE, - [OpenEdge Command Center](https://blog-progress.pl/openedge-command-center/) - Czytelnicy niniejszego bloga znają podstawowy i sztandarowy produkt służący do monitorowania systemów - OpenEdge Management (OEM) oraz jego uboższą wersję OpenEdge Explorer (OEE). Produkt ten został wprowadzony po raz pierwszy wiele lat temu pod nazwą Fathom Management w wersji V9. Wciąż jest rozwijany i świetnie spisuje się w małych i średnich sieciach. Tym razem chciałbym - [Migracja do PASOE](https://blog-progress.pl/migracja-do-pasoe/) - O PASOE sporo pisałem. Wiadomo, w OE12 nie ma już klasycznego AppServera i trzeba podjąć decyzję o migracji aplikacji, a przed decyzją dobrze jest poznać za i przeciw nowego produktu. Teraz jednak powracam do tematu samej migracji w szerszym kontekście (pisałem o podstawach migracji w 2017). Korzyść z nowego AppServera widać już podczas instalacji: możemy - [OpenEdge 12.4](https://blog-progress.pl/openedge124/) - Najnowsza wersja OE 12.4 pojawiła się jako non-LTS Release. Ponieważ dostaję pytania w tej sprawie, kilka słów wyjaśnienia. Wersja non-LTS (Non-Long Term Supported), jak sama nazwa wskazuje, jest bez długotrwałego wsparcia technicznego i jest przeznaczona dla tych, którzy wymagają najnowszych rozwiązań i poprawek. Wersja ta zapewnia również klientom możliwość używania i testowania funkcji, które pojawią - [OE Management](https://blog-progress.pl/oe-management/) - OpenEdge Management (OEM), następca Fathom Management, jest dobrze znany administratorom baz danych od wielu lat. Jego zubożona wersja, OpenEdge Explorer, jest dołączana darmowo do licencji serwera baz danych. Jest więc narzędziem bardzo popularnym i ze względu na interfejs webowy, stosowanym na każdej platformie. Postanowiłem więc cofnąć się do tego produktu i napisać o kilku kwestiach, - [Bezpieczeństwo w PASOE cz. V - OE Realm](https://blog-progress.pl/bezpieczenstwo-w-pasoe-cz-v-oe-realm/) - Po ostatnim artykule dostałem pytanie: czy można wykorzystać obiekt CLIENT-PRINCIPAL w PASOE bez konieczności korzystanie z LDAP. Otóż można i zaraz pokażę jak to zrobić na podstawie informacji zaczerpniętych z bazy wiedzy (000194706). (Uwaga: technika ta dotyczy wersji OE 12.2. W bazie można znaleźć podobne rozwiązanie np. dla OE 11, które nie działa poprawnie). Na - [Bezpieczeństwo w PASOE cz. IV - LDAP, domeny i CP](https://blog-progress.pl/bezpieczenstwo-w-pasoe-ldap-domeny/) - W poprzednim artykule wyszliśmy poza technologię Progress Software i dzięki Apache Directory Studio przeprowadziliśmy uwierzytelnienie użytkowników korzystających z restowej aplikacji PASOE. Pora wykonać następny krok (naprzód!) i uwzględnić w całym procesie token - obiekt CLIENT-PRINCIPAL. Obiekt ten został wprowadzony w OE10, wraz z pojawieniem się technologii Auditing. Przypomnę, że chodziło o rejestrowanie zmian w systemie - [Bezpieczeństwo w PASOE cz. III - LDAP](https://blog-progress.pl/bezpieczenstwo-w-pasoe-ldap/) - W tym artykule powracamy do tematu związanego z bezpieczeństwem w PASOE, które było omawiane ok. pół roku temu. Dla przypomnienia: część I oraz część II. Warto przypomnieć sobie te wiadomości bo będziemy z nich zaraz korzystać. Spring Security to elastyczny framework, w którym administrator może wybrać poziom zabezpieczeń w zależności od wymagań związanych z aplikacją. - [MOVEit Automation - podstawy](https://blog-progress.pl/moveit-automation-podstawy/) - Dzisiaj chciałbym przedstawić podstawy drugiego produktu Ipswitch - MOVEit® Automation. MOVEit Automation (poprzednia nazwa MOVEit Central) pozwala w łatwy sposób zautomatyzować złożone przepływy danych (workflows) bez konieczności programowania. Przepływy złożone są z zadań (tasków), a te z kolei mogą być uruchamiane wg harmonogramu, sterowane zdarzeniami lub na żądanie. Zadania mogą wymieniać pliki między systemami wewnętrznymi - [MOVEit Transfer - klient](https://blog-progress.pl/moveit-transfer-klient/) - W poprzednim artykule opowiedziałem o głównych cechach systemu MOVEit Transfer zainstalowanego na systemie serwerowym. Teraz napiszę o dostępie do niego z poziomu klienta. Potrzebna jest do tego osobna licencja Ad-Hoc Transfer, dzięki której użytkownik posiadający konto w systemie MFT może zainstalować dodatkowe komponenty i mieć dostęp poprzez przeglądarkę webową lub Microsoft Outlook. Użytkownicy mogą więc - [OpenEdge 12.3](https://blog-progress.pl/openedge-12-3/) - Powróćmy do tematu związanego z OpenEdge, ponieważ już od pewnego czasu mamy na rynku nową wersję OE 12.3. Zacznijmy od nowinki dla programistów; dodano nową, bardziej zwięzłą instrukcję definicji zmiennych. Do tej pory ile zmiennych chcieliśmy zdefiniować, tyle musieliśmy wstawić definicji. Obecnie zapis jest krótszy, a w jednej instrukcji można zdefiniować wiele zmiennych. Zmienne zdefiniowane - [MOVEit Transfer - podstawy systemu](https://blog-progress.pl/moveit-transfer/) - Do tej pory wszystkie artykuły były związane z technologią OpenEdge. Najwięcej jest poświęconych oczywiście serwerowi aplikacji PASOE. Pora na małą zmianę. W pierwszej połowie 2019 r. Progress zakupił firmę Ipswitch, Inc., specjalizującą się w rozwiązaniach związanych z bezpiecznym przesyłaniem danych oraz monitorowaniem i zarządzaniem zasobami sieciowymi. MOVEit® Transfer (poprzednia nazwa MOVEit® DMZ) to cały system - [Bezpieczeństwo w PASOE cz. II](https://blog-progress.pl/bezpieczenstwo-w-pasoe-cz-ii/) - Część druga bezpieczeństwa w PASOE to raczej tylko suplement, związany z uwierzytelnieniem i autoryzacją użytkowników opartym o dane w plikach tekstowych w podkatalogu serwera aplikacji. Po pierwsze, autoryzacja użytkowników z pliku users.properites. Każdy z nich ma przypisana rolę np.: ROLE_PSCUser, ROLE_PSCAdmin, ROLE_PSCDebug czy ROLE_None. Skąd wiadomo, co te role oznaczają i gdzie są zdefiniowane? Żeby - [Bezpieczeństwo w PASOE cz. I](https://blog-progress.pl/bezpieczenstwo-w-pasoe-cz-i/) - Większość nowoczesnych, rozproszonych aplikacji korzysta z serwera aplikacji dla logiki biznesowej. Korzystanie z serwera PASOE jest bardzo dobrym rozwiązaniem ponieważ może on bezpośrednio obsługiwać wszystkie typy klientów, jest łatwo skalowalny oraz może zapewnić bezpieczeństwo aplikacji przy użyciu Spring Security. Spring Security to framework, który koncentruje się na zapewnianiu uwierzytelniania i autoryzacji dla aplikacji. Spring Security - [JSON: wyświetlanie danych](https://blog-progress.pl/json-wyswietlanie-danych/) - W kilku wcześniejszych artykułach kończyliśmy rozważania na utworzeniu serwisu generującego dane JSON. URI do tych danych może posłużyć do integracji z innym systemem czy interfejsem wyświetlającym dane, najczęściej w języku JavaScript. Przypomnę dwa posty sprzed kilku lat: Serwis OpenEdge – Telerik Kendo UI, Rollbase i serwisy OpenEdge, w których opisałem dwa produkty wyświetlające dane pochodzące - [Serwisy REST Webhandler po raz trzeci](https://blog-progress.pl/serwisy-rest-webhandler-po-raz-trzeci/) - W 2018 opisałem 2 przykłady serwisów REST Webhandler ABL. Dostęp do nich jest nie poprzez warstwę transportową REST lecz WEB. Temat powraca ze względu na Wasze zainteresowanie tą metodą. Intuicyjnie, niektórzy uważają, że jest to lepszy sposób na budowanie serwisów po przejściu na serwer aplikacji PASOE, ze względu na to że są to serwisy napisane - [OpenEdge 12.2](https://blog-progress.pl/openedge-12-2/) - Pół roku, tyle mniej więcej czasu upłynęło od pojawienia się poprzedniej wersji OpenEdge. Zobaczmy co ciekawego pojawiło się w OE 12.2 Zacznijmy od silnika bazy danych i strojenia parametrów online. To dla nas nie jest zaskoczeniem, ponieważ w zapowiedziach wysoka dostępność była jedną z wiodących funkcji całej serii OE 12. W OE 12.2 jest już - [PASOE i Load Balancing](https://blog-progress.pl/pasoe-i-load-balancing/) - Użytkownicy klasycznego AppServera pamiętają zapewne możliwość dość łatwej implementacji load balancingu, wykorzystującego proces przekierowujący NameServer. W nowym serwerze aplikacji PASOE nie ma NameServera, nawet proces AdminServera nie jest niezbędny, jak zatem można zrealizować usługę LB? Aby to osiągnąć musimy wykorzystać istniejące rozwiązania innych firm. Dostępnych jest wiele produktów i ciężko jest wybrać jedną najlepszą opcję - [OpenEdge 12.1. Co nowego...](https://blog-progress.pl/openedge-12-1-co-nowego/) - Tak się składa, że klienci OpenEdge "odpuszczają" sobie wersje "zerowe", czekając na kolejną w serii, zakładając (czy słusznie?), że posiada ona sporo bugów. Takie podejście jest charakterystyczne także dla wielu innych technologii (z wyłączeniem oczywiście gadżetów). No ale, mamy na rynku wersję OE 12.1, która niesie ze sobą kilka ciekawostek. Na początek jednak ważna informacja - [OpenEdge Explorer](https://blog-progress.pl/openedge-explorer/) - OpenEdge Explorer nie jest tematem nowym. To okrojona wersja systemu OpenEdge Management (dawniej Fathom Management) który pojawił się w wersji Progress V9. Wszystkie wymienione powyżej produkty mają głównie za zadanie monitorowanie parametrów systemów operacyjnych i komponentów Openedge (bazy danych, serwery aplikacji itd). Dotyczy to zarówno lokalnego komputera jak i maszyn zdalnych, a wszystko to z - [OpenEdge 11.6 Apptitude](https://blog-progress.pl/openedge-11-6-apptitude/) - OE 11.6 jest już dostępny. Największe oczekiwania były związane z produktami firmy Telerik. Przyjrzyjmy sie wybranym elementom, jakie pojawiły się w tej nowej wersji. Server WebSpeed został wbudowany w Pacific AppServer (PAS). Przypomnijmy, że produkt ten (WebSpeed) służy do tworzenia i zarządzania aplikacjami webowymi i pojawił się wiele lat temu w wersji V9, razem z AppServerem. - [Tworzenie obiektowego UI w OE Development Studio cz. IV](https://blog-progress.pl/tworzenie-obiektowego-ui-w-oe-development-studio-cz-iv/) - W czwartej części naszego cyklu, zajmiemy się obiecanym tematem edycji rekordów w bazie danych. Przypomnijmy: dane wyświetlane w obiektach graficznych są zasilane ze źródła BindingSource. To źródło pobiera dane z tabeli np. Customer czy Order, ale działa niejako w jednym kierunku, tzn. nie nadaje się do zapisu danych. W naszych przykładach zapis będzie realizowany do - [Tworzenie obiektowego UI w OE Development Studio cz. III](https://blog-progress.pl/tworzenie-obiektowego-ui-w-oe-development-studio-cz-iii/) - W poprzedniej części zbudowaliśmy aplikację składającą się z dwóch okienek (form) z browserami danych z bazy OpenEdge. Wszystkie te dane są do odczytu; ich edycję omówimy niedługo, ale jeszcze nie w tym odcinku. Na razie wracamy do ustawień, związanych z wyświetlaniem danych w DataGrid. Tych parametrów jest bardzo dużo. Omówimy tylko wybrane, zostawiając Wam pole - [Tworzenie obiektowego UI w OE Development Studio cz. II](https://blog-progress.pl/tworzenie-obiektowego-ui-w-oe-development-studio-cz-ii/) - Kontynuujemy budowę aplikacji rozpoczętą w pierwszej części. Mamy formę fCustomer; teraz zbudujemy drugą formę fOrder, która będzie zawierała browser (grid) z rekordami Order dla danego Customera. Postępujemy analogicznie jak w poprzedniej części: do nowej formy wstawiamy źródło danych binding source, zmieniamy nazwę na np. bsOrder. Definiujemy schemat dla bsOrder. Wstawiamy DataGridView wybierając źródło danych bsOrder. - [Tworzenie obiektowego UI w OE Development Studio cz. I](https://blog-progress.pl/tworzenie-obiektowego-ui-w-oe-development-studio-cz-i/) - Nieco ponad 2 lata temu pokazałem jak zrobić pierwsze kroki na drodze tworzenia interfejsu graficznego z wykorzystaniem obiektów .Net w narzędziu OpenEdge Developer Studio. Temat ten w rozmowach z Wami co jakiś czas powraca. Powodem jest najczęściej chęć wykonania interfejsu o lepszym wyglądzie i bardziej skalowalnego niż tradycyjny, niemłody już interfejs progressowy. Do powrotu skłoniło - [Partycje Tabel OpenEdge cz. III](https://blog-progress.pl/partycje-tabel-openedge-cz-iii/) - Zanim przejdę do kolejnej części związanej z partycjami tabel, winien jestem odpowiedzi na pytanie związane z definiowaniem zasad partycjonowanie. Otóż kilku z Was chciało wiedzieć czy jest planowana możliwość definiowania podziału danych w tabeli w oparciu nie o wartość pola, lecz o funkcję (np. YEAR(TODAY)-1). Miałem okazję niedawno rozmawiać z Richem Banvill'em - odpowiedzialnym za - [Pizza & Beer wrzesień 2018](https://blog-progress.pl/pizza-beer-wrzesien-2018/) - Zgonie z wiosenną zapowiedzią 20 września spotkaliśmy się w Hotelu Marriott na kolejnej "pizzy i piwie". Standard spotkań, sponsorowanych przez firmę Galeos, pozostał na wysokim poziomie (popatrzcie tylko na zdjęcia!). Pizza została zastąpiona przez tyle przystawek, że trudno było wszystkiego popróbować. Na samym początku firma Galeos zaprezentowała nową, dynamiczną stronę internetową, której fragment zrzutu ekranu - [Partycje Tabel OpenEdge cz. I](https://blog-progress.pl/partycje-tabel-openedge-cz-i/) - W ostatnim czasie kilka osób prosiło mnie o wyjaśnienie na czym polega partycjonowanie tabel w bazach OpenEdge. Ten temat czasem powraca w rozmowach z Wami, więc postanowiłem go nieco przybliżyć. Partycjonowanie tabel (Table Partitioning) to oddzielny produkt dla baz Enterprise, umożliwiający dzielenie dużych tabel na mniejsze części pod względem logicznym zwane partycjami. Partycje są zaimplementowane - [Partycje Tabel OpenEdge cz. II](https://blog-progress.pl/partycje-tabel-openedge-cz-ii/) - W poprzedniej części zapoznaliśmy się nieco z częścią teoretyczną, dotyczącą partycjonowania tabel OpenEdge. Teraz czas zrobić coś w praktyce. Tworzymy nową bazę np. mytp, kopię bazy sports2000 : prodb mytp sports2000 Do partycjonowania tabel dane muszą znajdować się w obszarach Typ II. Demonstracyjna baza sports2000 posiada tylko obszary Typ I. Dodajemy zatem obszary, do których - [OpenEdge 11.7.3](https://blog-progress.pl/openedge-11-7-3/) - Pojawiła się wersja OpenEdge 11.7 z Service Packiem 3, czyli 11.7.3, a wraz z nią kilka ciekawych nowości. 1. Archiwizacja logu bazy danych. Mamy kilka parametrów dających możliwość automatyzacji archiwizacji pliku log bazy online. -lgArchiveEnable - włączenie możliwości archiwizacji logu. -lgArchiveDir - podanie katalogu, w którym będą zapisywane zarchiwizowane fragmenty. Brak parametru oznacza bieżący katalog. - [Pizza & Beer kwiecień 2018](https://blog-progress.pl/pizza-beer-kwiecien-2018/) - 19. kwietnia odbyło się pierwsze w 2018 r. spotkanie z cyklu Pizza & Beer. Na miejsce spotkania firma Galeos wybrała, leżący w samym centrum Warszawy, Hotel Marriott. Oprócz smacznych przekąsek, piwa i ciekawych rozmów w kuluarach mieliśmy trzy prezentacje, których bohaterem był Progress Application Server for OpenEdge czyli PASOE. 1. Progress Application Server for OpenEdge - [Pizza & Beer po raz trzeci](https://blog-progress.pl/pizza-beer-po-raz-trzeci/) - Zapowiadane na wiosnę 2017, trzecie spotkanie z cyklu Pizza & Beer odbyło się 18.05 dokładnie "pod siedzibą" firmy Galeos Polska - w restauracji MOMU. Znowu nie było pizzy, ale nikt się już temu nie dziwił, bo jedzenie było bardzo urozmaicone i smaczne. Wiadomo, MOMU piecze dymem! Piwa za to było pod dostatkiem, i to Pilsnera - [PASOE i serwisy WebHandler cz. II](https://blog-progress.pl/pasoe-i-serwisy-webhandler-cz-ii/) - Reasumując to co można było prześledzić w poprzednim artykule, warstwa transportowa WEB jest związana z interfejsem biznesowym podobnym do REST. Wykorzystuje te same żądania (czasowniki) HTTP (GET, PUT, POST,...). Istotna różnica to przechwytywanie obsługi żądań przez WebHandler, czyli klasę OO ABL. Dzięki temu unika się żmudnego mapowania, a deweloperzy dostają duże możliwości dopasowania obsługi do - [PASOE i serwisy WebHandler cz. I](https://blog-progress.pl/pasoe-i-serwisy-webhandler-cz-i/) - Deweloperzy aplikacji webowych z wykorzystaniem serwera PASOE mają od wersji 11.6.3 nową możliwość tworzenia serwisów typu Data Object. Są to tzw. WebHandlery, które działają z wykorzystaniem warstwy transportowej WEB (Data Object WebHandler Service). WebHandler zapewnia bardziej wydajną i prostszą warstwę komunikacyjną niż REST. Jest napisany w ABL, łatwiej dopasować go do własnych potrzeb i ma - [Change Data Capture cz. II](https://blog-progress.pl/change-data-capture-cz-ii/) - Kontynuujemy temat związany z praktycznym wykorzystaniem technologii Change Data Capture opisanej w poprzednim artykule. Mamy zatem bazę danych myCDC z włączoną funkcją CDC i zdefiniowanymi obszarami dla danych i indexów CDC. Wejdżmy jeszcze raz w OE Explorerze w opcję Database Administration. W sekcji Storage Management znajdziemy opcje, w których możemy zmodyfikować listę tabel lub stworzyć/zmodyfikować - [Change Data Capture cz. I](https://blog-progress.pl/change-data-capture/) - Progress OpenEdge Change Data Capture (CDC) jest mechanizmem śledzącym, który umożliwia aplikacjom zaimplementowanie procesu, który automatycznie rejestruje zmiany w tabelach użytkowników w bazie danych OpenEdge. Obsługuje on również automatyczne kopiowanie podzbiorów danych, które uległy zmianie do specjalnych tablic zmian (Change Tables). Zebrane przez CDC dane mogą być wykorzystane przez narzędzia wspomagające procesy ETL (Extract, Transform, - [Tworzenie projektów w OE Developer Studio 11.7.2](https://blog-progress.pl/tworzenie-projektow-w-oe-developer-studio-11-7-2/) - Podczas kilku wcześniejszych artykułów pokazywałem jak utworzyć różne proste projekty w OpenEdge Developer Studio. Służyły one np. do wystawienia serwisów REST z wykorzystaniem obiektów JSDO i automatycznym generowaniem klas lub bardziej złożone z ręcznym mapowaniem parametrów. Przykłady te dotyczyły nowego serwera PASOE choć można było wykorzystać także klasyczny AppServer. Takie tworzenie projektów odbywa się poprzez - [OpenEdge 11.7](https://blog-progress.pl/openedge-11-7/) - Wprowadzeniu najnowszej wersji OpenEdge 11.7 towarzyszyło bardzo duże zainteresowanie. Było ono związane m.in. z niedawnym pojawieniem się nowych technologii i produktów, które szybko zyskują uznanie. Mowa głównie o nowym serwerze aplikacji PASOE i produktach firmy Telerik a także produktach bazodanowych. Ta ostatnia z wersji 11-tkowych (następna ma być OE 12) nie zawiodła oczekiwań. Przyjrzyjmy się - [EMEAPUG Challenge - Praga 2017](https://blog-progress.pl/emea-pug-challenge-praga-2017/) - O tym wydarzeniu informowaliśmy już pod koniec zeszłego roku. EMEAPUG Challenge 2017 odbyła się w dniach 15-17.11 w czeskiej Pradze. Uczestniczyła w niej rekordowa liczba 526 osób z 35 krajów, w tym 8 osób z dwóch polskich partnerów: Novum z Łomży oraz Politechniki Gdańskiej. Uczestnicy mieli do wyboru 83 prezentacje i 12 warsztatów. To była - [Procedury ABL i serwer aplikacji PAS cz.I](https://blog-progress.pl/procedury-abl-i-serwer-aplikacji-pas-cz-i/) - Od kilku miesięcy informujemy o nowych możliwościach serwera aplikacji PAS. Pytanie co z uruchamianiem procedur ABL, które działały do tej pory na klasycznym AppSerwerze? Czy trzeba je modyfikować? Czy migracja jest trudna dla przeciętnego programisty? Na te i podobne pytania postaram się odpowiedzieć w tym i następnym artykule. Zacznijmy od uruchomienia instancji serwera aplikacji PAS - [Web Serwisy SOAP i serwer aplikacji PAS cz.I](https://blog-progress.pl/web-serwisy-soap-i-serwer-aplikacji-pas-cz-i/) - Tak się złożyło, że ostatnio kilkakrotnie byłem pytany przez klientów o wystawianie web serwisów typu SOAP. Takie serwisy określane są czasem jako te "stare" w stosunku do serwisów typu REST. Są większym obciążeniem dla sieci (format danych XML) ale od wielu lat umożliwiają integrację/wymianę danych między różnymi systemami. Wspierane są też przez tradycyjny OpenEdge AppServer. - [Web Serwisy SOAP i serwer aplikacji PAS cz.II](https://blog-progress.pl/web-serwisy-soap-i-serwer-aplikacji-pas-cz-ii/) - W poprzedniej części wygenerowaliśmy 2 pliki r-kodów, które chcemy wystawić jako web serwisy SOAP. Mamy także wygenerowane przy pomocy narzędzia Proxy Generator pliki CustOrder.wsm oraz CustOrder.wsdl. Plik .wsdl posłuży nam do wygenerowania dokumentacji o zdefiniowanym web serwisie. W oknie komend wpisujemy polecenie: bprowsdldoc custorder.wsdl ./output W podkatalogu output znajdziemy nowe pliki .html, zawierające informacje o - [Wystawianie serwisów REST z aplikacji ABL cz.II](https://blog-progress.pl/wystawianie-serwisow-rest-z-aplikacji-abl-cz-ii/) - Po dłuższej przerwie wracamy do zagadnienia związanego z udostępnieniem serwisu typu REST, który został zdefiniowany tutaj. Taki zdefiniowany serwis trzeba wyeksportować. W tym celu klikamy prawym przyciskiem myszy na nazwę serwisu i wybieramy Export. Eksportowanie można zrobić na 2 sposoby: jako plik WAR lub ZIP. W pierwszym przypadku jest to oddzielny kompletny serwis, w drugim, - [Wystawianie serwisów REST z aplikacji ABL cz.I](https://blog-progress.pl/wystawianie-serwisow-rest-z-aplikacji-abl-cz-i/) - We wcześniejszych wpisach opisałem sposób tworzenia serwisów uruchamianych na serwerze aplikacji PAS (obecna nazwa to Application Server for OpenEdge), korzystających z danych strukturalnych JSDO. Pora teraz na bardziej praktyczny przykład, opisujący wystawienie własnych serwisów REST ze zdefiniowaniem wystawianych zasobów i ich mapowaniem. W porównaniu do wcześniejszej metody będzie więcej czynności do wykonania ale dostaniemy znacznie - [Serwisy REST - porównanie różnych typów](https://blog-progress.pl/serwisy-rest-porownanie-roznych-typow/) - W kilku wcześniejszych artykułach opisałem, krok po kroku, tworzenie serwisu typu REST, wykorzystującego obiekty JSDO. Wiem od niektórych z Was, że z tymi serwisami wiążą się pewne niejasności. Nic w tym dziwnego, to nie są progressowe technologie i wiążą się o stworzone niedawno standardy. Kilka osób pytało mnie np. o różnice między tworzeniem serwisu REST - [Instalacja OpenEdge w nowej wersji](https://blog-progress.pl/instalacja-openedge-w-nowej-wersji/) - Większość z Was wie, że model licencjonowania PSDN (Progress Software Developer Network) został zastąpiony przez Progress OpenEdge Developers Kit. Zmiana wiąże się z rozszerzeniem dostępu do produktów Telerik, Corticon oraz wybranych usług. Model OEDK zawiera 5 licencji: Classroom (darmowa), Basic, Corporate, Premier, Innovator. Np. od licencji Corporate dostępne są wszystkie nowe szkolenia online. Porównanie 5 - [Jak rozpocząć tworzenie interfejsu .NET w OE Dev. Studio](https://blog-progress.pl/jak-rozpoczac-tworzenie-interfejsu-net-w-oe-dev-studio/) - Tworzenie interfejsu .NET to dość szerokie pojęcie. Ja chciałbym tutaj napisać o początkach wykorzystania form .NET w narzędziu OpenEdge Developer Studio przy zastosowaniu języka ABL. Technologia łączenia języka progressowego i technologii obiektowych pojawiła się w OE10.1, czyli ładnych kilka lat temu. W dalszym ciągu jednakże wiele osób nie wie jak rozpocząć pracę z tworzeniem takiego - [EMEA PUG Challenge - Noordwijk 2016](https://blog-progress.pl/pug-emea-noordwijk-2016/) - Ostatnia konferencja EMEA PUG Challenge odbyła się w holenderskim kurorcie, Noordwijk w dniach 5-7.10. Impreza, poza świetną organizacją, dawała wspaniałą sposobność podniesienia wiedzy z zakresu najnowszych technologii Progress Software. Można było poznać i porozmawiać z osobami kluczowymi w tworzeniu znanych nam produktów OpenEdge, np. Gusem Bjorklundem, Mikem Furgalem i wieloma innymi. Chyba nie trzeba dodawać, - [Pizza & Beer - spotkanie drugie](https://blog-progress.pl/pizza-beer-spotkanie-drugie/) - Zgodnie z zapowiedziami, drugie spotkanie z cyklu "Pizza & Beer" odbyło się w Poznaniu 22.09.2016 w hotelu Novotel. Frekwencja i tym razem dopisała, a ponieważ większość uczestników była bardziej zainteresowana stroną merytoryczną niż kulinarną, szefostwo w osobie prezesa firmy Galeos Pavla Kaplický'ego podjęło decyzję o kontynuowaniu tych fajnych spotkań. Ponieważ niektórzy zapadają w sen zimowy, - [Pizza & Beer](https://blog-progress.pl/pizza-beer/) - Termin Pizza & Beer (w skrócie P&B) dla klientów technologii Progress Software oznacza darmowe spotkania, poświęcone głównie zagadnieniom technicznym. Składają się na nie 2-3 prezentacje, oraz poczęstunek: czyli piwo i przekąski. Nie, nie musi to być koniecznie pizza, ważne aby goście byli zadowoleni z jedzenia, miłej atmosfery i poziomu merytorycznego prezentacji. Pierwsze spotkanie, zorganizowane przez - [Managed DBA](https://blog-progress.pl/managed-dba/) - Managed DBA - to usługa Progress Bravepoint polegająca na zarządzaniu Twoimi zasobami baz danych OpenEdge. Zarządzanie bazami OE polega nie tylko na wykonaniu kopii bezpieczeństwa. To przede wszystkim optymalizacja systemu oraz kontrola zabezpieczeń. Wykonywanie tych złożonych zadań wiąże się najczęściej z posiadaniem fachowego, przeszkolonego personelu IT. W przypadku jego braku lub gdy środowisko rozrasta się - [Rollbase - aplikacje w chmurze](https://blog-progress.pl/rollbase-aplikacje-w-chmurze/) - Rollbase - platforma PaaS (Platform as a Service), służy do budowania aplikacji biznesowych. Dostęp do Rollbase jest przez przeglądarki internetowe, a budowanie w znaczącej mierze polega na czynnościach "przeciagnij i upuść" i zminimalizowanym programowaniu. Rollbase oferuje dostęp do środowiska w chmurze prywatnej (Private Cloud), instalowanej w lokalnej sieci lub hostingowej (Host Cloud), dostępnej zdalnie u - [Telerik](https://blog-progress.pl/telerik/) - W 2012 roku Progress ogłosił nowy plan strategiczny, koncentrując się na rozwoju aplikacji, integracji oraz łączności danych (data connectivity). Pierwszym krokiem było skupienie się na rodzimej technologii OpenEdge. Jej rozwój miał dać nowoczesne produkty, potrzebne do rozwoju aplikacji nowej generacji, wykorzystujących: mobilność, łaczność danych, rozwiązania w chmurze. W efekcie Progress zakupił Rollbase - platformę do - [PUG Poland](https://blog-progress.pl/pug-poland/) - Progress Users Groups to serwis stworzony dla użytkowników technologii Progress Software aby umożliwić im wymianę informacji i komunikowanie się w rodzimym języku. W marcu 2013 r. do tego serwisu dołączyła Polska. Zachęcamy do zarejstrowania się w serwisie, co daje możliwość tworzenia nowych wątków i pisania odpowiedzi. Rejestrując się w serwisie stajemy się także aktywnymi użytkownikami - [Konfiguracja baz danych w PDSOE](https://blog-progress.pl/konfiguracja-baz-danych-w-pdsoe/) - Tworząc serwis OpenEdge wspomniałem, że jeśli będą pytania odnośnie konfiguracji bazy w środowisku Progress Developer's Studio, to krótko o tym napiszę. Ponieważ pytania były więc opis załączam poniżej. Uruchamiamy PDSOE, wybieramy Windows -> Preferences i zakładkę Progress Openedge -> Database Connections. Teraz przycisk New. Wpisujemy swoje parametry nowego połączenia z bazą. Warto sprawdzić czy parametry - [Galeos - dystrybutor Progressa w Polsce](https://blog-progress.pl/galeos-dystrybutor-progressa-w-polsce/) - Podobno historia lubi sie powtarzać. Czy pamiętacie stare dobre czasy gdy w Polsce dystrybutorem Progressa była firma CSBI? Miło mi Wam zakomunikować, że od 1.04.2016 wyłącznym dystrybutorem Progressa w Polsce jest firma Galeos Sp. z o.o. Galeos to firma czeska. Powstała w 2010 r. a w jej zespole są fachowcy z dużym doświadczeniem jak Pavel - [Tworzenie serwisów OpenEdge cz. I](https://blog-progress.pl/tworzenie-serwisow-openedge-cz-i/) - Chcę teraz napisać o tworzeniu serwisów typu REST, które są bardzo przydatne w integracji danych pochodzących z baz OE z nowym front-endem np. Rollbase, Telerik Kendo UI czy z urządzeniami mobilnymi. Wspomniałem o tym w zeszłym miesiącu w artykule o JSDO. Serwisy tworzymy w Progress Developer Studio for OpenEdge. Zakładam, że mamy skonfigurowane środowisko: w - [Rollbase i serwisy OpenEdge](https://blog-progress.pl/rollbase-i-serwisy-openedge/) - W poprzednim artykule obiecałem, że stworzymy w Rollbase aplikację, opierającą się o dane z bazy danych OpenEdge. Wykorzystamy do tego serwis OE, o którym pisałem w części I i w części II. W naszej aplikacji będziemy korzystać z dwóch tablic: Customer i Order, dlatego do serwisu OE trzeba dodać obiekt (business entity) Order. Podobnie jak - [Serwis OpenEdge - Telerik Kendo UI](https://blog-progress.pl/serwis-openedge-telerik-kendo-ui/) - W niniejszym "odcinku" pokażę jak wykorzystać utworzony wcześniej serwis REST OpenEdge jako źródło danych w produkcie Telerik Kendo UI. Mamy więc gotowy serwis i działający serwer aplikacji PAS. Kendo UI, to zestaw bibliotek tworzących interfejs webowy oparty na HTML5 i JavaScript. Należy pobrać plik ZIP i rozpakować w lokalnym katalogu. Zawiera on bibliotekę funkcji JavaScript - [Tworzenie serwisów OpenEdge cz. II](https://blog-progress.pl/tworzenie-serwisow-openedge-cz-ii/) - W poprzedniej części pokazałem jak stworzyć projekt oraz serwis OpenEdge. Teraz zajmiemy się utworzeniem logiki biznesowej aby wystawić przez ten serwis dane z bazy Progress. W widoku Project Explorer klikamy prawym klawiszem myszy na podkatalog AppServer i wybieramy New -> Business Entity. Tworzymy nową klasę obiektu biznesowego np. Customer. Pamiętajmy, że w nazwie rozróżnia się - [OpenEdge Pro2](https://blog-progress.pl/openedge-pro2/) - Kto z administratorów baz nie zna Dana Foremana - światowego guru w dziedzinie strojenia systemów baz OpenEdge? No, może nie wszyscy, ale z pewnością wielu, a to głównie za sprawą jego świetnych książek. Ja zwykle nie omieszkam wspomnieć o nich na kursach z administracji. Dan przez wiele lat pracował w firmie Bravepoint. Obecnie Bravepoint należy - [JSDO - JavaScript Data Object](https://blog-progress.pl/jsdo-javascript-data-object/) - Zanim napiszę o tworzeniu serwisów REST, wykorzystaniu danych OpenEdge w produktach Rollbase czy Telerik, trzeba przyswoić sobie pewne nowe pojęcia. Jednym z nich jest omówiony wcześniej Pacific AppServer. Obecnie zajmiemy się progressowymi obiektami JSDO. Obiekty te zapewniają wsparcie dla złożonego modelu danych oraz API do manipulowania danymi przy zachowaniu pełnej integralności. Pierwotnym wykorzystaniem JSDO były - [Pacific AppServer (PAS)](https://blog-progress.pl/pacific-appserver-pas/) - Pacific AppServer (PAS) to nowy serwer aplikacji oparty na technologii Tomcat. Dlaczego Progress Software stworzył ten produkt? Przecież od wielu lat istnieje OpenEdge AppServer? Czy między obu produktami istnieją istotne różnice? PAS to AppServer nowej generacji stworzony do obsługi wszelkich aplikacji progressowych w tym Rollbase, Corticon, OpenEdge, Telerik. Występuje wyłącznie w wersji 64-bitowej. Nie należy ## Pages - [Home](https://blog-progress.pl/) - [Wszystkie posty](https://blog-progress.pl/wszystkie-posty/) - Lista wszystkich postów (artykułów) na blogu w porządku chronologicznym poczynając od najnowszego. DDM – rozszerzenie tematu Promon 4 – strojenie sieci OE MCP Connector i VS Code OpenEdge i VS Code 2 Nowe typy extentów w bazach OpenEdge OpenEdge i VS Code Memory Profiler 2 Memory Profiler 1 Historia Progressa Jak dobrać długość clustra BI - [Do pobrania](https://blog-progress.pl/do-pobrania/) - Nowa moc - Progress OpenEdge 12 Szkolenia OpenEdge 12 Progress Profiler Profiler Nowa moc - Progress OpenEdge 12 OpenEdge 12 PIZZA & BEER 20.09.2018 OpenEdge Table Partitioning ODATA - Open Data Rest API Protocol for OpenEdge Temp-Table Monitorowanie i Strojenie PIZZA & BEER 19.04.2018 Progress Application Server for OpenEdge (PASOE) Wprowadzenie - [Kontakt](https://blog-progress.pl/kontakt/) - Zachęcamy do kontaktu, szczególnie jeśli chcesz przesłać komentarze lub sugestie dotyczące niniejszego blogu. Napisz np. jakie tematy chciałbyś aby się tutaj pojawiły, jakie produkty powinny być szerzej opisane itp. Gdybyś chciał wymienić informacje z innymi użytkownikami technologii Progress Software, zarejestruj się na forum dyskusyjnym PUG Poland. - [FAQ](https://blog-progress.pl/faqs/) - Po co jest ten blog? Blog powstał, aby przekazywać informacje użytkownikom technologii Progress Software w języku polskim. Czy ta strona jest oficjalnie wspierana przez PSC? Blog nie ma charakteru oficjalnej strony Progress Software, ale powstał za zgodą PSC. Dlaczego nie można dodawać komentarzy? Jest to zamierzenie celowe ponieważ strona ma charakter informacyjny. Jeśli chcesz przekazać ## Categories - [Development](https://blog-progress.pl/category/development/) - [Administracja](https://blog-progress.pl/category/administracja/) - [Info ogólne](https://blog-progress.pl/category/info/) ## Tags - [slider](https://blog-progress.pl/tag/slider/) - [PUG](https://blog-progress.pl/tag/pug/) - [Telerik](https://blog-progress.pl/tag/telerik/) - [OpenEdge](https://blog-progress.pl/tag/openedge/) - [PAS](https://blog-progress.pl/tag/pas/) - [WebSpeed](https://blog-progress.pl/tag/webspeed/) - [Kendo UI](https://blog-progress.pl/tag/kendo-ui/) - [AppServer](https://blog-progress.pl/tag/appserver/) - [JSDO](https://blog-progress.pl/tag/jsdo/) - [Pro2](https://blog-progress.pl/tag/pro2/) - [Bravepoint](https://blog-progress.pl/tag/bravepoint/) - [replikacja](https://blog-progress.pl/tag/replikacja/) - [REST](https://blog-progress.pl/tag/rest/) - [OE serwis](https://blog-progress.pl/tag/oe-serwis/) - [Rollbase](https://blog-progress.pl/tag/rollbase/) - [Managed DBA](https://blog-progress.pl/tag/managed-dba/) - [konferencja](https://blog-progress.pl/tag/konferencja/) - [.NET](https://blog-progress.pl/tag/net/) - [Dev Studio](https://blog-progress.pl/tag/dev-studio/) - [Instalacja](https://blog-progress.pl/tag/instalacja/) - [licencja](https://blog-progress.pl/tag/licencja/) - [SOAP](https://blog-progress.pl/tag/soap/) - [PAS. AppServer](https://blog-progress.pl/tag/pas-appserver/) - [APSV](https://blog-progress.pl/tag/apsv/) - [WebHandler](https://blog-progress.pl/tag/webhandler/) - [Change Data Capture](https://blog-progress.pl/tag/change-data-capture/) - [CDC](https://blog-progress.pl/tag/cdc/) - [ETL](https://blog-progress.pl/tag/etl/) - [PASOE](https://blog-progress.pl/tag/pasoe/) - [pizza](https://blog-progress.pl/tag/pizza/) - [tde](https://blog-progress.pl/tag/tde/) - [Table Partitions](https://blog-progress.pl/tag/table-partitions/) - [partycjonowanie](https://blog-progress.pl/tag/partycjonowanie/) - [OpenEdge Explorer](https://blog-progress.pl/tag/openedge-explorer/) - [OpenEdge Management](https://blog-progress.pl/tag/openedge-management/) - [Fathom](https://blog-progress.pl/tag/fathom/) - [OEE](https://blog-progress.pl/tag/oee/) - [OEM](https://blog-progress.pl/tag/oem/) - [PASOE. Load Balancing](https://blog-progress.pl/tag/pasoe-load-balancing/) - [Apache](https://blog-progress.pl/tag/apache/) - [Tomcat](https://blog-progress.pl/tag/tomcat/) - [JSON](https://blog-progress.pl/tag/json/) - [JavaScript](https://blog-progress.pl/tag/javascript/) - [Spring Security](https://blog-progress.pl/tag/spring-security/) - [moveit](https://blog-progress.pl/tag/moveit/) - [mft](https://blog-progress.pl/tag/mft/) - [ipswitch](https://blog-progress.pl/tag/ipswitch/) - [automation](https://blog-progress.pl/tag/automation/) - [LDAP](https://blog-progress.pl/tag/ldap/) - [Client-Principal](https://blog-progress.pl/tag/client-principal/) - [OE Realm](https://blog-progress.pl/tag/oe-realm/) - [migracja](https://blog-progress.pl/tag/migracja/) - [OECC](https://blog-progress.pl/tag/oecc/) - [Command Center](https://blog-progress.pl/tag/command-center/) - [Monitoring](https://blog-progress.pl/tag/monitoring/) - [OECC. PASOE. Kafka.](https://blog-progress.pl/tag/oecc-pasoe-kafka/) - [HealthScanner](https://blog-progress.pl/tag/healthscanner/) - [Swagger](https://blog-progress.pl/tag/swagger/) - [OECC. PASOE](https://blog-progress.pl/tag/oecc-pasoe/) - [Developer Studio](https://blog-progress.pl/tag/developer-studio/) - [Profiler](https://blog-progress.pl/tag/profiler/) - [OECC. MongoDB](https://blog-progress.pl/tag/oecc-mongodb/) - [TABLEREORG](https://blog-progress.pl/tag/tablereorg/) - [Debuger](https://blog-progress.pl/tag/debuger/) - [Debugging](https://blog-progress.pl/tag/debugging/) - [ABLUnit](https://blog-progress.pl/tag/ablunit/) - [error](https://blog-progress.pl/tag/error/) - [obsługa błędów](https://blog-progress.pl/tag/obsluga-bledow/) - [OEMANAGER](https://blog-progress.pl/tag/oemanager/) - [World Tour](https://blog-progress.pl/tag/world-tour/) - [PROPACK](https://blog-progress.pl/tag/propack/) - [PROSIGN](https://blog-progress.pl/tag/prosign/) - [archive library](https://blog-progress.pl/tag/archive-library/) - [certificate](https://blog-progress.pl/tag/certificate/) - [PASOE register](https://blog-progress.pl/tag/pasoe-register/) - [AdminServer](https://blog-progress.pl/tag/adminserver/) - [SSL](https://blog-progress.pl/tag/ssl/) - [TLS](https://blog-progress.pl/tag/tls/) - [Kafka](https://blog-progress.pl/tag/kafka/) - [ZooKeeper](https://blog-progress.pl/tag/zookeeper/) - [ABL](https://blog-progress.pl/tag/abl/) - [modele licencji](https://blog-progress.pl/tag/modele-licencji/) - [Manager](https://blog-progress.pl/tag/manager/) - [OE Manager](https://blog-progress.pl/tag/oe-manager/) - [LOG-MANAGER](https://blog-progress.pl/tag/log-manager/) - [4GLTrace](https://blog-progress.pl/tag/4gltrace/) - [4GLTrans](https://blog-progress.pl/tag/4gltrans/) - [klient HTTP](https://blog-progress.pl/tag/klient-http/) - [ChatGPT](https://blog-progress.pl/tag/chatgpt/) - [AssistAI](https://blog-progress.pl/tag/assistai/) - [Error Log](https://blog-progress.pl/tag/error-log/) - [Dynamic Data Masking](https://blog-progress.pl/tag/dynamic-data-masking/) - [DDM](https://blog-progress.pl/tag/ddm/) - [sever-side profiler](https://blog-progress.pl/tag/sever-side-profiler/) - [promon](https://blog-progress.pl/tag/promon/) - [findstr](https://blog-progress.pl/tag/findstr/) - [checkpoint](https://blog-progress.pl/tag/checkpoint/) - [cluster BI](https://blog-progress.pl/tag/cluster-bi/) - [bigrow](https://blog-progress.pl/tag/bigrow/) - [furgal test](https://blog-progress.pl/tag/furgal-test/) - [historia PSC](https://blog-progress.pl/tag/historia-psc/) - [spin](https://blog-progress.pl/tag/spin/) - [lruskips](https://blog-progress.pl/tag/lruskips/) - [Memory Profiler](https://blog-progress.pl/tag/memory-profiler/) - [VS Code](https://blog-progress.pl/tag/vs-code/) - [Riverside](https://blog-progress.pl/tag/riverside/) - [extenty](https://blog-progress.pl/tag/extenty/) - [prostrct](https://blog-progress.pl/tag/prostrct/) - [Copilot](https://blog-progress.pl/tag/copilot/) - [czatGPT](https://blog-progress.pl/tag/czatgpt/) - [OE MCP Connector](https://blog-progress.pl/tag/oe-mcp-connector/) - [network](https://blog-progress.pl/tag/network/) - [prefetch](https://blog-progress.pl/tag/prefetch/) - [FIPS](https://blog-progress.pl/tag/fips/)