Trot's Den

Co nowego?

28.06.2023 - Nadchodzą zmiany.

Po blisko dwóch latach w projekcie, powoli nadchodzi czas zmian. Nasz klient stwierdził, że zespół developerski jaki obecnie pracuje nad projektem jest nieco za duży i z końcem sierpnia zostanę "bez pracy". Nie jest to chyba dla mnie zdziwienie, gdyż w kuluarach mówiło się o tym od dawna. Jest to też związane z obecną sytuacją na rynku IT. Wielu klientów szuka oszczędności więc naturalnym wydaje się, że zmniejszanie kosztów poprzez redukcję zespołów jest jedną z możliwości.

Mam nadzieję, że nowy projekt okaże się ciekawy i wymagający oraz że będę mógł się rozwinąć. Dla programisty to chyba najważniejsze.

08.05.2023 - Urlop i po urlopie.

Jak to w życiu bywa, to co ma swój początek musie mieć i swój koniec. Urlop się skończył, wróciłem do codzienności.

W projekcie wielkie mergowanie, z główną gałęzią łączy się sub-projekt który był w przygotowaniu od dłuższego czasu. Będzie to ciekawy okres, tym bardziej że na boku gdzieś czekają zmiany wykonane przed mergem. Zawsze tego typu akcje są trudne i mam nadzieję, że nic się jednak nie zepsuje.

Z ciekawostek, jestem po swojej pierwszej w życiu prelekcji. Było lekko nerwowo, ale jakoś dałem radę. Myślę nawet, że wyszło znośnie. Na pewno jest pole do poprawy ale mimo wszystko jestem zadowolony z efektów. Kto wie, może za rok wystartuję z jakimś technicznym tematem? Czas pokaże.

02.04.2023 - SForce Summit 2023.

W tym roku będę jednym z prelegatów na SForce Summit. Opowiem trochę o swojej historii przebranżowienia, o problemach i sukcesach. Razem z dwoma innymi kolegami z pracy postaramy się przedstawić blaski i cienie całego procesu. 

Prelekcja odbędzie się 25.04.2023 o godzinie 18.00. Serdecznie zapraszam.

07.03.2023 - Zabawa z VIMem.

Od pewnego czasu w mojej głowie tlił się pomysł aby nauczyć się obsługi VIMa. Jest to narzędzie, które może pomóc w produktywności (w szczególności znajomość skrótów klawiszowych) oraz szeroko dostępne w każdym środowisku Linuksowym czy Unixowym. Zastanawiałem się czy dałoby się połączyć mój świat kręcący się wokół Apexa i Salesforcea oraz edytor Vim. Okazało się że możliwości jest kilka ale najbardziej obiecująca to użycie edytora NeoVim z LSP (Language Sercer Protocol) używanym we wtyczkach do VS Code. Spędziłem godziny ucząc się konfiguracji tego edytora, pluginów, jak to wszystko działa, co można a czego nie. Wstępnie udało mi się wypracować działający config, potrafi wczystać pliki apexa, parsować składnię, kolorować oraz stosować podpowiedzi z LSPka. Nieźle. Teraz prowadzę rozpoznanie, czy uda się tak samo ograć Apex Replay Debugger, przyznam że to bardzo fajne narzędzie i często z niego korzystam. 

16.12.2022 - Niebawem święta.

Dopiero co pisałem o urlopie a tu już święta za pasem. Ponieważ pracuję na UoP to naturalnym jest, że biorę kilka dni urlopu. Po świętach a jeszcze przed sylwestem zapowiada się intensywny okres nauki. W końcu.... postanowiłem przygotować się do certa. Robię to już od kilku lat i jakoś mi nie po drodze. Po akademii przypomniałem sobie trochę teorii, która oczywiście zawsze gdzieś ze mną była, ale nie pamiętałem o niej. 

W przerwach między nauką może coś pokoduję. Znowu wróciłem do Fluttera, tym razem postanowiłem nieco podszlifować znajomość języka Dart, gdyż okazało się, że jak zwykle, diabeł tkwi w szczegółach. Na warsztat wziąłem sobie oprogramowanie bota pod Discorda, Przy okazji znalazłem ciekawe rozwiązanie, tzw. backend-as-a-serwice. W skrócie jest to kontener Dockera z aplikacją - tzw. backendem, który udostępnia funkcjonalności zbliżone do Firebase. Chcę napisać serwer do obsługi VPSa na którym mamy postawiony serwer dedykowany pod grę. W dłuższej perspektywie taki serwer Discorda stanowić będzie Hub dla innych serwerów gier, gdzie w wygodny sposób będzie można nimi zarządzać. Pierwsze testy okazały się pomyślne, umiem w prosty sposób komunikować się z botem, zapisywać dane w bazie, uruchamiać tzw. cloud functions. Następnym krokiem będzie pewnie aplikacja mobilna wykorzystująca wspólne funkcjonalności wystawione jako cloud functions.

22.09.2022 - Wakacje i po wakacjach.

Wakacje to taki uroczy moment w pracy zawodowej, kiedy o niej zapominamy. Właśnie wróciłem z urlopu, powoli wracam do codziennych obowiązków, spotkań i problemów. Fajnie było nie myśleć o tym wszystkim, wyciszyć się i cieszyć wolnym czasem, niestety wszystko co dobre kiedyś się kończy.

W tym roku polecieliśmy do Hiszpanii, a konktetnie do Torremollinos czyli miasta oddalonego od Malagi o jakieś 15 km. Lot w obie strony był spokojny, nasz pobyt był dłuższy, gdyż postanowiliśmy odpoczywać aż 10 dni. Dodatkowo w ciągu całego pobytu dużo zwiedzaliśmy, nie było czasu na nudę, nigdy chyba tyle kilometrów nie zrobiłem na nogach. 

Niestety miałem też mały wypadek przed samym wyjazdem, mianowicie kolizję na hulajnodze z rowerzystą. Na szczęście nie jechałem szybko, jednak w wyniku kolizji uszkodziłem sobie nadgarstek, początkowo myślałem że złamałem rękę. Przez cały wyjazd nosiłem ortezę, nie było to zbyt wygodne ale lepsze niż gips. Po powrocie odbyła się kontrolna wizyta, na szczęście ręka goi się prawidłowo.

Dzięki mnie kilku kolegów i koleżanek uświadomiło sobie, jak niebezpieczne są hulajnogi, można zrobić krzywdę sobie i innym uczestnikom. Ochrona ciała to podstawa. Na nowy sezon na pewno kupię lepszy kask oraz ochraniacze na nadgarstki. Póki co sezon zamykam z 1 kolizją oraz 700 km przebiegu. Dużo, mało? Trudno powiedzieć. W międzyczasie dotarły do mnie wszystkie części do modyfikacji hulajnogi, jednak po kolizji musze jeszcze wymienić to co uległo uszkodzeniu, np. klamki hamulców. Będzie co robić w jesienne wieczory :)

27.05.2022 - Hulaj dusza, a właściwie to noga.

Jak to w życiu bywa, specyfikacja techniczna swoje a rzeczywistość swoje. Moja hulajnoga nie ma zasięgu 50km, przy oszczędnej jeździe w dobrych warunkach 40km bym zrobił. Średnio wychodzi 35km zasięgu co uważam za akceptowalny wynik, biorąc pod uwagę sposób w jaki się nią poruszam. 

Ogólnie jestem z niej zadowolony, spełnia swoje zadanie. Próbowałem przekonać Żonę na drugą ale nie czuje się bezpiecznie jadąc hulajnogą. W konsekwencji kupiła sobie rower elektryczny. Chwilę pojeździliśmy razem i w tym szaleństwie jest metoda. Co prawda nie jeździ tak szynko jak hulajnoga ale przyjemność z jazdy jest dużo większa niż na zwykłym rowerze. Zaczynam się zastanawiać czy nie zamienić hulajnogi na rower. Ciężki wybór.

Razem z nowymi sprzętami zacząłem szukać sposobu na bezpieczne ich przechowywanie. Codzienne wnoszenie i znoszenie nie należy do przyjemności, tym bardziej dla mojej Żony. W dostawie jest już u-lock marki Kryptonite, pozostaje jeszcze wymyśleć w miarę niezawodny sposób zapięcia w docelowej "przechowalni". 

22.06.2022 - Copilot dla każdego.

Github Copilot to technologia Microsoftu wspierająca pracę programisty za pomocą sztucznej inteligencji. W dużym skrócie AI wspiera programistę sugerując wstawki kodu w zależności od kontekstu i tego co potrzebujemy. Jako źródło danych wykorzystywany jest, oczywiście, Github i wszelkie repozytoria, które się tam znajdują. Początkowo wspierane były języki takie jak Java czy Javascript jednak okazało się, że nawet dla Salesforce developera Copilot może być użyteczny. Z dniem wczorajszym Github Copilot stał się ogólnodostępny, dla każdego, kto chce spróbować. Wcześniej trzeba było zapisać się do testów wersji Preview i czekać na zaproszenie. 

Oczywiście z oficjalnym startem wiąże się też to, że od teraz produkt ten jest płatny, jednak ceny nie są (przynajmniej na ten moment) zbyt wygórowane. Za miesięczny dostęp musimy zapłacić 10$ lub możemy wybrać subskrypcję roczną za 100$.

Przez blisko pół roku (może i więcej) używałem Copilota do pisania kodu Apexowego i sprawdzał się nad wymiar dobrze. Nie wszystkie podpowiedzi były oczywiście prawidłowe i pomocne, co jest nawet zrozumiałe, ponieważ Apex nie jest oficjalnie wspieranym językiem. Oprócz podpowiedzi dotyczących nowego kodu Copilot analizował już napisany kod i starał się dopasowywać podpowiedzi do tego, co chcemy uzyskać. 

Osobiście polecam spróbować Github Copilot, teraz jest ku temu dobra okazja, ponieważ każdy chętny może za darmo testować go przez 60 dni.

Po więcej informacji odsyłam do oficjalnego bloga : GitHub Copilot is generally available to all developers | The GitHub Blog 

03.02.2022 - Problemy życia zawodowego.

W moim życiu zawodowym zaszły zmiany. Z końcem roku zakończył się mój poprzedni projekt i zostałem przydzielony do nowego. Chyba otworzyło mi to nieco oczy na moją "karierę" i oczekiwania. Powoli dochodzę do wniosku, że Salesforce nie jest do końca "tą" technologią. Przez te kilka lat wyrobiłem sobie zdanie czym jest platforma, jakie ma możliwości, jakie ma ograniczenia i jaki drzemie w niej potencjał. Doświadczenie sprawia, że programista czuje się dobrze w każdej technologii, a nauka czegoś nowego (poza elementem ekscytacji i zafascynowania) nie sprawia już tak wielu problemów. Stałem się poszukiwaczem czegoś dla siebie. Tylko co wybrać?.... JSa, Pyhtona, Darta, może jednak coś na JVMie, a może wrócić do korzeni i odnowić znajomość z C#, a może coś niszowego?....Web czy mobile... przeogromny i trudny wybór.

29.03.2022 - Backrooms, SCP i inne creepypasty.

Jakiś czas temu, zupełnie przypadkiem, znalazłem ciekawe filmiki o zjawiskach paranormalnych. Nie jestem osobą, która wierzy w tego typu zjawiska, uważam że w większości są one dobrze zaaranżowanymi przedstawieniami z nutką horroru. A jako że jestem fanem horrorów to oglądałem je jako swego rodzaju rozrywkę. Jednak po tygodniach oglądania owych produkcji zauważyłem ich pewną schematyczność i nudność. Szukałem czegoś innego i natrafiłem na Backrooms i SCP. Ponieważ jest to czysta fikcja to nawet nie doszukiwałem się w niej nuty autentyczności. Nie powiem, jest w tym wszystkim coś wyjątkowego, ciekawego i mrocznego zarazem. Czy ze mną jest coś nie tak, że interesują mnie takie pierdoły? Żona stwierdziła, że nie będzie ze mną oglądała kolejnego filmiku z żółtą tapetą ;) 

Swoją drogą temat i uniwersum budowane wokół Backrooms jest na tyle ciekawe, że można by na jego podstawie zrobić nie jeden ciekawy film. Chociaż dla przeciętnego człowieka byłoby to chyba mało ciekawe przedstawienie. A więc może jakaś gra? 

Z innych ciekawostek to odbieram dzisiaj hulajnogę elektryczną. W końcu po latach obiecywania sobie, że w końcu takową kupię, dzisiaj finalizuję zakup i odbieram sprzęt. Postanowiłem na swój pierwszy sprzęt wybrać Kugoo G2 pro. Silnik 800W, 15Ah, lekka amortyzacja, opony 10 cali no i prędkość do 50 km/h przy zasięgu sugerowanym 40-50km. Nie mogę się doczekać :)

30.08.2021 - Wakacje i po wakacjach.

W tym roku razem z Żoną postanowiliśmy zrobić sobie nieco dłuższe wakacje. Zamiast standardowych dwóch tygodni odpoczywaliśmy tydzień dłużej. Doszliśmy do wniosku, że po tak ciężkim początku roku potrzebujemy nieco odpoczynku, regeneracji. Wybraliśmy się na Teneryfę, już drugi raz. Niebawem postaram się podsumować nasz pobyt i opowiedzieć trochę więcej o naszych wyprawach na tą uroczą wyspę.

12.07.2021 - Droga przez mękę.

Z powodu awarii laptopa byłem zmuszony przez tydzień pracować z VSCode + Salesforce extensions, moje przygody i opinię możesz przeczytać w nowym artykule :

VSCode podejście drugie 

11.02.2021 - Spoczywaj w spokoju Tato.

Niestety smutnie zaczął się ten rok. W środę w nocy zmarł mój Tata. Przegrał walkę z covidem. Jest mi bardzo smutno, że nie mogłem mu pomóc :(

01.12.2020 - Next gen.

Na fali zachwytu i hypu jaki powstał wokół nowej generacji konsol postanowiłem dołączyć do zacnego grona ich posiadaczy. Nie inwestowałem w PC od dobrych kilku(nastu) lat, więc mój sprzęt już niedomaga. Ponieważ nie robię się młodszy, a nigdy też nie posiadałem konsoli, postanowiłem nabyć świeży egzemplarz. Po przeanalizowaniu parametrów, możliwości, ekosystemu wybór padł na nowiutkiego Xbox Series X. Zamówiłem pre-order i już w dniu premiery cieszyłem się z nowej maszynki do grania. Przy okazji dokształciłem się co to właściwie jest ten cały game pass...

Moje wrażenia po niespełna miesiącu użytkowania są w większości pozytywne. Większość gier działa i wygląda nieźle jednak są małe zgrzyty i problemy. Są tytuły, które za nic nie chcą się uruchomić na konsoli a w dodatku powodują jej całkowite zawieszenie. Nie wiem jeszcze czy to problem natury oprogramowania czy jednak poważniejszy - sprzętu. Póki co śledzę fora i tematy i liczę że MS w końcu wypuści jakieś poprawki do firmware konsoli, które naprawią problem. Nie chciałbym już na starcie przygody z konsolą oddawać jej do naprawy. 

Z pozytywów to to, że granie na padzie jest ok o ile nie są to FPSy. Dooma za nic nie idzie okiełznać na padzie, nie ma opcji. Wiem, wszyscy mówią, że to kwestia wprawy ale na tak dynamiczną grę pad jest chyba zbyt wolny i zbyt mało precyzyjny. 

Moja ocena nowej konsoli jest raczej pozytywna, podoba mi się cała otoczka, game pass i jak to wszystko się ze sobą łączy. Martwi mnie to, że np. nie mogę zagrać w Gears 5 i liczę, że MS weźmie się do roboty i szybko naprawi problemy wieku dziecięcego.

PS. Teraz pozostało tylko upolować lepszy telewizor :D

Update - 03.12.2020 : Po aktualizacji oprogramowania konsoli które pojawiło się 01.12.2020 okazało się, że problem się powiększył, obecnie nie mogę uruchomić już żadnej gry bo każda próba powoduje restart konsoli. Przywracanie do ustawień fabrycznych nic nie daje, dzisiaj konsola zostaje wysłana do serwisu. 

06.08.2020 - Pandemia trwa.

Od ostatniego wpisu minęło już sporo czasu, pandemia nadal trwa. W ostatnich dniach notujemy coraz więcej zakażeń, nic dziwnego, poluzowano na wakacje obostrzenia i taki mamy efekt. Planuję swój urlop w połowie września, zobaczymy czy uda się gdziekolwiek pojechać.

Jeżeli chodzi o pracę, to jestem na ostatnim etapie tworzenia nowego portalu do zamówień. Lada dzień (jutro) wrzucamy całość na produkcję i startujemy. Pół roku ciężkiej pracy w końcu będzie oddana w ręce klientów. Zobaczymy, czy będą zadowoleni (tak jak ja).

Podsumowując minione pół roku to dużo się nauczyłem. Sądziłem, że Apexa znam bardzo dobrze, a jednak udało mi się opanować nowe rzeczy, jak chociażby OOP i wzorce projektowe. Ponieważ nie mieliśmy nikogo odpowiedzialnego za architekturę kodu, sam dbałem o pewne techniczne rozwiązania. Opowiem o tym w osobnym wpisie. 

02.10.2020 - Flutter i Dart.

Kilka miesięcy temu całkiem przypadkiem trafiłem na framework do tworzenia UI dla systemów mobilnych - Flutter. Na początku śledziłem temat i rozwój projektu, gdyż wydawało mi się, że będzie to coś ciekawego i nowego, jeden kod dla wielu platform (iOS, Android, web a już niebawem i Windows). Postanowiłem trochę zgłębić temat, zacząłem przeglądać tutoriale i czytać dokumentację. Obecnie jestem na etapie próbowania swoich sił w stworzeniu czegoś prostego. Podoba mi się sam język Dart, ma dużo rzeczy, których mi brakuje w Apexie. Już za jakiś czas postaram się pewnie jakoś więcej opowiedzieć o mojej przygodzie z mobile development.

Póki co przerobiłem nieco kod (źródło : https://github.com/MarcusNg/flutter_covid_dashboard_ui) pod typowy build dla aplikacji webowej. Efekt tej pracy dołączyłem jako osadzona stronka (na Netlify). Oczywiście dane są tylko mockiem jednak planuję wykorzystać prawdziwe API oraz zrobić widget na stronę.

19.05.2019 - Salesforce critical issue.

W piątek 17.05 świat doznał szoku. Salesforce zaliczył poważną awarię. Początkowo wydawało się, że to może być jakiś krytyczny błąd zabezpieczeń, ponieważ wszystkie profile dostawały Modify All permission. Około 17 zgłoszonych było około 300 casów jednak do 19 ich liczba wzrosła do 3500. Lawinowo zgłaszane problemy zmusiły Salesforce do cofnięcia uprawnień Modify All. Zrobili to jednak tak nieudolnie, że dali jedynie Read Only nawet Administratorom. Gdy zorientowali się w sytuacji wyłączyli możliwość logowania się do "zepsutych" instancji. Akurat tego dnia mieliśmy imprezę firmową i nie wiem jeszcze czy nasze orgi padły ofiarą tego incydentu. Okaże się w poniedziałek. Cały problem trwał około 15 godzin. Na początku nie było nawet wiadomo co się dzieje, gdyż nie podano oficjalnego komunikatu. Pojawił się dopiero po kilku godzinach. Coś czuję, że ta akcja mocno nadszarpnie opinię Salesforce. A może to celowe zagranie? Nie dowiemy się. Śledząc jednak pewną grupę z USA widać, że panika jest duża gdyż od poniedziałku planują wdrożyć dodatkowe zabezpieczenia (płatne). Obawiałem się, że weekend będzie pod znakiem pracy, jednak póki co nikt nie dzwoni i nic nie chce :). A od jutra ruszamy ze sprintem... ciekawe czy będzie jak ruszyć. Możliwe że przez całą tą akcję będziemy musieli re-deploy robić na każdym orgu (a trochę ich mamy).

Nie mogę się doczekać... :/

11.03.2020 - Koronawirus w Polsce.

Od kilku tygodni na świecie informacją numer jeden jest koronawirus. Również w Polsce w końcu doszło do pierwszych zarażeń. Na chwilę pisania tego newsa jest to już (albo dopiero) 21 osób. 

W związku z wirusem i groźbą epidemii wielu pracodawców decyduje się wysyłać swoich pracowników do domu aby pracowali zdalnie. Wielu pracodawców myśli też, że praca zdalna nie jest możliwa ze względu na zasoby firmy. Okazuje się jednak, że chcieć to móc. Jest przecież wiele programów, które pozwalają połączyć się z zasobami firmy poprzez komputer w domu. Jednym z nich jest, pewnie znany wszystkim, Team Viewer. Proste i skuteczne narzędzie. Nawet system windows (który króluje na komputerach firmowych) wyposażony jest w Zdalny Pulpit, więc możliwości są. 

Mam nadzieję, że do globalnej epidemii nie dojdzie i że za dwa tygodnie wszystko wróci w miarę do normy (bo od jutra szkoły, przedszkola i uczelnie są pozamykane właśnie na 2 tygodnie). 

19.10.2018 - Krótkie podsumowanie.

Ostatnio zdałem sobie sprawę, że odkąd zmieniłem branżę (w sierpniu 2017r.) wiele się zmieniło w moim życiu zawodowym. Przede wszystkim sypiam bardzo dobrze, co przekłada się na moją produktywność i kreatywność. Poprzednio miałem z tym problemy, czułem się ciągle niedoceniony, gniew i rozczarowanie przekładało się na sen. Teraz problemu nie ma. Kolejna zmiana na plus to rozwój osobisty. W tej materii nastąpiły diametralne zmiany. Dużo się nauczyłem, miałem też okazję przez pewien czas poprowadzić projekt. Ludzie w końcu mi zaufali i się nie zawiedli. Obecnie pracuję głównie twórczo i umysłowo i pod koniec dnia na prawdę czuje się zmęczony... ale i zadowolony. Praca sprawia mi radość. Może to efekt świeżości, a może odnalazłem swoją drogę. Nie żałuję decyzji :) 

12.03.2019 - Tworzę grę.

Jakiś czas temu dzień w dzień grałem w PoE. Niestety przesyt gra sprawił, że musiałem ją odłożyć na jakiś czas. Swoich sił próbowałem również w EVE jednak tutaj samotna gra nie była tak emocjonująca. Znudzony postanowiłem poszukać jakichś darmowych, open sourcowych silników gier. Znalazłem ciekawy silnik - Godot. Początkowo skusiło mnie w nim to, że wspiera C#, pomyślałem że dobrze będzie sobie co nieco przypomnieć i trochę oderwać się od branżowego Apexa. Jednak znacznie ciekawszym i wspieranym jest tzw. GDScript, czyli wariacja na temat Pythona i JSa. Prosta składnia i całkiem przyzwoite możliwości. Sam silnik posiada mniejszy prób wejścia niż np. Unity. W ciągu kilku dni byłem w stanie robić już proste rzeczy, obecnie przerabiam jedną książkę, którą mam w sumie w ramach kontraktu w firmie, w której pracuję. Kto wie, może niebawem zrobię remake np. Gangs of Space, która to nota bene ma być zamknięta. Wielka szkoda. 

Zamieszczam filmik demonstracyjny mojej "pracy" a właściwie nauki.


20.06.2018 - Urlop.

W dniach od 6.06 do 18.06 byłem na urlopie. W tym roku udaliśmy się razem z żoną na wakacje na Bahamy. Było warto. Obszerna relacja wraz ze zdjęciami znajduje się TUTAJ. Miłego czytania.

24.12.2018 - Święta i nowości.

Kolejny rok, kolejne święta. Po trudach i męczarniach w kuchni w końcu będzie można zjeść wszystkie przygotowywane w pocie czoła potrawy, spotkać się z rodziną i spędzić miło czas. Tyle teorii. W praktyce nigdy nie jest tak kolorowo :)

Nie będę jednak rozpisywał się na temat świąt, każdy spędzi je po swojemu.

Wspomnę jednak o nowości (obecnie w fazie beta) która zawita do Salesforce już w następnym wydaniu - Lightning Web Components. Jak wiemy Salesforce promuje swój framework do tworzenia frontendu ale nie oszukujmy się, nie jest on doskonały. Pozazdrościli chyba Reactowi lub Angularowi i postanowili stworzyć tzw. web components - komponenty Lightninga do wykorzystania w czystym JSie. Brzmi ciekawie, chętnie wypróbuję te nowości.

19.04.2018 - Tips & tricks.

Pracując w prawdziwym, komercyjnym projekcie trafiłem na wymaganie, które z początku wydawało się proste, jednak im dalej w las tym było trudniej. Postanowiłem więc publikować ciekawe i przydatne rozwiązania, które może w przyszłości mi (lub komuś innemu) się przydadzą.

Pierwszy artykul mojego autorstwa znajduje się TUTAJ.

16.03.2018 - Rozwój.

Minęło już 8 miesięcy odkąd zmieniłem pracę. Każdego dnia po dniu rozpoczęcia nowej pracy ciesze się, że podjąłem tą decyzję. Teraz w końcu odzyskałem spokój, radość i jestem szczęśliwy.

Przez minione 8 miesięcy codziennie uczę się nowych rzeczy i chociaż projekt w jakim przyszło mi pracować jest, delikatnie mówiąc, starociem to jednak pokazuje mi jak nie powinno się pisać kodu. Mój kod też nie jest najlepszy, ciągle mam problem z nazwami dla metod i zmiennych ale staram się pracować nad tym. 

Widać też, że dziedzina w jakiej się obecnie specjalizuję również zyskuje na popularności. Nie ma tygodnia abym nie dostał oferty pracy związanej z Salesforce. Dopiero 8 miesięcy a zmiana jest kolosalna. W poprzedniej branży przez rok nie było zainteresowania moją osobą a teraz? Żałuję że tak późno podjąłem decyzję o zmianie.

24.11.2017 - DocMails.

W ramach ćwiczeń i przypomnienia sobie składni języka C#, stworzyłem prosty program do wyszukiwania w dokumentach Worda (doc i docx) oraz w PDFach wszystkich występujących w nich emaili. Program jest prosty a całą pracę wykonuje biblioteka Tika, a właściwie jej port pod .Net (TikaOnDotNet).

Link do aplikacji

21.11.2017 - Limity, wszędzie limity.

Buszując w sieci natrafiłem na ciekawy artykuł związany z limitami Salesforce. Do tej pory spotkałem się z limitami odpalając testy, gdzie przekraczałem ilość zapytań SQL.

Polecam TEN artykuł.

18.11.2017 - Prawdziwe wyzwania.

Już za kilka dni zaczynam swój pierwszy komercyjny projekt. Mam nadzieję, że szybko odnajdę się w tym wszystkim i dam radę. Do tej pory nie miałem styczności z tak dużymi projektami, to co robiłem było wyłacznie na własne potrzeby. Jestem jednak pozytywnie nastawiony.

Do dzieła :)

13.09.2017 - Dzień programisty.

Niebawem minie miesiąc jak pracuję w nowej firmie. Mimo tak krótkiego stażu udało mi się bardzo dużo nauczyć, wiele mechanizmów Salesforce, których do tej pory nie rozumiałem, stało się prostsze i zrozumiałe. Piszę projekt szkoleniowy, w którym używam przekrojowo wszystkiego czego się nauczyłem. Nowa praca jest ekstra. Chyba depresja mi minęła, czuje się weselszy i szczęśliwy.

Wracając jednak do tematu.. dzisiaj mamy 256 dzień roku. Tę liczbę zna chyba każdy programista. Sam uważam się już za takowego, dlatego składam sobie (i innym) życzenia. Jak na święto przystało, jest i słodko a wieczorem może i będzie % ;)

Chyba muszę zmienić layout strony, nie pasuje do nowego zawodu ;).

26.07.2017 - Niebawem urlop…

Siedzę w domu i oczywiście “klepię kod”. Jakiś czas temu zajrzałem na AppExchange na platformie SF. Przeglądałem aplikacje i sposób w jaki są instalowane. Z ciekawości zainstalowałem niejaki AnyCalendar. Po wrzuceniu do App Buildera komponentu z kalendarzem wydał mi się on bardzo podobny do kalendarza, który kiedyś rozpatrywałem do aplikacji rachunków. I okazało się, że jest to dokładnie ten sam skrypt (FullCalendar). Autor aplikacji na SF był na tyle miły, że podzielił się kodem. Dzięki temu poznałem nieco tajniki użycia gotowych rozwiązań JavaScript i jQuery w Lightning Components. Wow… to takie proste i takie skuteczne. Na bazie tego, co tam znalazłem zacząłem analizować kod, czytać dokumentację kalendarza i nawet udało mi się napisać coś, co wyświetla moje rekordy z bazy w owym kalendarzu. Niby prosta rzecz a cieszy. Oczywiście długa droga do pełnej obsługi całej aplikacji. Planuję jednak użyć kalendarza jako głównego widoku. Jest to podejście, które chciałem już wprowadzić kiedy pisałem aplikację w Springu. Wtedy jednak zrobiłem najprościej jak się dało, czyli tabelkę. Korci mnie aby odkurzyć repo z aplikacją rachunków domowych i dodać ów kalendarz :).

BTW… Aplikacja wciąż działa na Heroku : Rachunki domowe

22.07.2017 - Ligtning Out.

Trochę eksperymentowałem z SF i Ligtning Components. Drążyłem również temat wyświetlania komponentów na zewnętrznych stronach. No i udało się. Kluczem do sukcesu jest albo zrobienie odpowiedniej aplikacji hostowanej np. na Heroku z wykorzystaniem Lightning Out i Node.js albo zrobienie prostego komponentu, wyświetlenie go na stronie VisualForce jako kontenerze dla aplikacji za pomocą Lightning Out. Pierwsza metoda wymaga jednak aby użytkownik się zalogował, chyba że ustawimy to inaczej na platformie SF i w samej aplikacji (demo pewnie kiedyś zaprezentuję), druga natomiast wymaga użycia odpowiedniej strony VF i wyświetlenie aplikacji w trybie gościa. Tym sposobem można pokazać światu nasze dokonania :).

Ja przygotowałem prostą aplikację pogodową. Niestety jedyną możliwością jej zaprezentowania jest użycie IFRAME, które niestety nie wygląda elegancko. Chodzi jednak o ideę. Poniżej to co udało mi się napisać.

Klik…

13.07.2017 - Ligtning Strike.

Zgłębiając tajniki platformy Force.com dotarłem do momentu, w którym pojawiły się Lightning Components. Początkowo nie bardzo wiedziałem jak to działa, jak z tym pracować, ale w miarę pozyskiwania nowej wiedzy i umiejętności cały framework stawał się coraz to bardziej “logiczny”. Niestety wykorzystanie Aury powoduje, że trzeba się przestawić na zupełnie inny tok rozumowania. Cała komunikacja pomiędzy komponentami za pomocą eventów jest trochę dziwna. No i wszechobecny JavaScript… Trochę mnie to przerasta, ponieważ moja wiedza z zakresu JSa nie jest wybitna. Odkąd wkroczyłem na ścieżkę pioruna programowanie w Apexie zeszło na dalszy plan. Trochę mnie to smuci. Z jednej strony fajnie jest robić coś ciekawego, a Lightning Components wpisuje się w to doskonale, z drugiej strony, może powinienem najpierw opanować VisualForce pages? Nastawienie na MVC jest mi naturalnie bliższe, ponieważ wszystkie webowe projekty realizowane do tej pory opierały się właśnie na tym wzorcu. SPA jest nowoczesne i na topie ale też bardziej skomplikowane. Oby tylko w nowej pracy był użytek z Lightning Componentów, ponieważ skupiłem się w 90% właśnie na tej technologii. Przy okazji poznałem kilka ciekawostek dotyczących Apexa. Już niebawem postaram się opublikować jakieś demo dzięki Lightning Out.

18.05.2017 - May the Force.com be with you.

Tak więc stało się. Miesiące nauki i wyrzeczeń w końcu przyniosły rezultat. W dniu dzisiejszym dostałem ofertę pracy na stanowisku Junior Developera na platformie Salesforce. Początkowo nie brałem na poważnie pisania kodu w czymś innym niż Java. Chciałem wykorzystać to, czego się nauczyłem w codziennej pracy. Jednak doszedłem do wniosku, że język nie ma znaczenia (chociaż COBOL, który gdzieś też się przewinął, mnie odstraszył). Czy jest to Java, C# czy Apex nie ma to znaczenia. Przestudiowałem dokumentację platformy Force.com, przejrzałem tutoriale, spojrzałem jak programuje się w Apexie i podjąłem decyzję, że jest to moja ścieżka kariery. Teraz długie 3 miesiące oczekiwania. Mam plan spędzić je na zgłębianiu tajników platformy aby do nowej pracy przystąpić z odpowiednim przygotowaniem.

15.05.2017 - GitHub Pages

Od pewnego czasu zastanawiam się nad przeniesieniem strony na GitHuba. Pozwala on na umieszczenie w repozytorium statycznych stron i zbudowaniu całego portalu. Jedyna wada tego rozwiązania to kłopotliwość w komunikacji z innymi użytkownikami. Wpadłem więc na pomysł napisania prostego projektu, który łączył by prostotę statycznych stron z treścią generowaną dynamicznie. Jak ma to działać? W repozytorium trzymamy ściśle ustaloną strukturę plików html. Każda strona ma “doklejany” kod JSa odpowiedzialny za komunikację za pomocą REST API z zewnętrznym serwisem hostowanym np. na Heroku. Serwis ten generuje statyczne strony i za pomocą GitHub API umieszcza je w repozytorium. Dzięki temu można mieć na stronie formularz, w którym wpisujemy np. komentarz do artykułu. Następnie zawartość formularza przesyłana jest do zewnętrznego serwisu, który generuje nam statyczną stronę z wypełnionymi danymi z formularza. Ale co w sytuacji, gdy mamy już jakieś komentarze? Trzeba by w jakiś sposób je przetworzyć. Dlatego widzę kilka rozwiązań. Użycie szablonów, odpowiednie tagi w HTMLu lub plik z danymi (np. SQLite) w którym trzymamy zawartość naszego portalu i na podstawie tego generujemy statyczne strony. Inne rozwiązanie to zamiast bazy SQLite użyć GitHub API i zapisywać dane w repozytorium jako pliki tekstowe lub (jeżeli zajdzie potrzeba) jako pliki raw (nawet szyfrowane). To rozwiązanie wydaje się ciekawe. Zastanawiam się jednak nad spójnością tego rozwiązania oraz potencjalnymi problemami jakie może ono spowodować. Czy będzie to wystarczająco szybkie? Temat muszę przemyśleć, ale wstępnie mi się podoba ten projekt. Ciekawe tylko kiedy dokończę projekt rachunków domowych ;)

07.04.2017 - 1+2=3?

Po kilku ciężkich miesiącach, nie do końca przespanych nocach i tysiącach kliknięć na klawiaturze, w końcu z dumą (głównie z siebie) zakończyłem kurs. Co wyniosłem z kursu? Z rzeczy materialnych nic, natomiast jeżeli chodzi o wiedzę to tutaj idealna byłaby reklama pewnego banku “kasę oddałem ale to czego się nauczyłem to moje”. W moim przypadku, na szczęście, nie musiałem się zapożyczać. Wracając do poprzedniej kwestii to cały kurs oceniam pozytywnie, dużo się nauczyłem (sam i przy pomocy trenerów), dopiero teraz widzę, że to co robiłem wcześniej nie można nazwać programowaniem. Czasu nie cofnę, ale zmieniłem podejście do tej dziedziny. Wiem jak ważne jest mieć pomysł i plan na aplikację, jak ważny jest czysty kod, odpowiednie testy, struktura projektu, wzorce projektowe i można by wymieniać dalej. Wcześniej nie zdawałem sobie z tego sprawy. Myślałem, że jak “coś wiem” to sobie dalej poradzę. Nie zawsze jednak 1+2=3. To znaczy 1+2 zawsze jest równe 3 ale nie zawsze o tym wiemy. Zazwyczaj nam się tylko wydaje. Rozpoczynam kolejny etap, szukanie pracy. Oby tym razem już mi się nie wydawało :)

10.03.2017 - Czas na rewolucję.

Niestety nowe szaty google nie są tak wspaniałe jak myślałem, zbyt wiele rzeczy działa nie tak jakbym chciał. Fakt, wygląda ładnie jednak nie robi to już na mnie takiego wrażenia, przez ostatnie miesiące trochę siedziałem we frontendzie i widziałem już takowe ciekawostki.

Nawiązując do frontendu i tematu newsa, to planuję w niedługim czasie wywrócić o 180 stopni moją karierę zawodową. Kończę szkolenie/zajęcia z programowania w Javie, buduję swoje portfolio projektów, uczę się wielu ciekawych technologii i frameworków. Czas w końcu wykorzystać tą wiedzę w praktyce. W najbliższym czasie będę szukał nowego zajęcia, a wtedy cała idea programowania pod PDMS nie będzie miała większego sensu. No cóż.. coś się kończy, coś zaczyna.