DSP #3 – F# i zaczynamy pracę nad projektem

Wystartowałem w DSP nie tylko, aby zacząć blogować, ale chciałem także nauczyć się jakiegoś nowego języka, więc wybrałem F#.

Ef hashtag, a co to za cudo?
F# – jak mówi nam Wikipedia to wieloparadygmatowy język programowania zawierający w sobie głównie cechy języka funkcyjnego, ale umożliwiającym także pisanie kodu imperatywnego oraz obiektowego.

Twórca języka to Microsoft. Dostępny on jest na platformie .NET.

Ostatnio można zauważyć modę na języki funkcyjne. Wydaje się, że to coś nowego. Faktycznie język ten powstał stosunkowo niedawno. Wersja 1.0 języka została wydana w 2005. Jednak języki funkcyjne są z nami już znacznie dłużej, bo już od roku 1950. Wtedy to powstał LISP.

Przygotowania
Jak wiadomo aplikacja, którą tworzę będzie pobierała dane z Twittera. Do tego celu należy posiadać ApiKey oraz ApiSecret, aby móc wykonać autentykację. By otrzymać wymagane klucze należy wejść na stronę https://apps.twitter.com/ kliknąć „Create new” ,wypełnić formularz i nacisnąć „Create your twitter application”. Po utworzeniu aplikacji dostaniemy dostęp do dwóch wymaganych kluczy.

No to można pokodować
Aby mieć dostęp do twittera z poziomu f# dodałem następującą bibliotekę FSharp.Data.Toolbox.Twitter.
Poniżej kod pobierający ostatnie 10 tweetów ze słowem fsharp.

 member this.tweets 
 = this.connect.Search.Tweets("#fsharp", count=100).Statuses 
 |> Seq.map(fun x-> x.Text) 
 |> Seq.toList

Niestety na początku pracy z projektem już napotkałem pewne problemy, o których w kolejnym wpisie, na dzisiaj starczy.

DSP#3 – Pierwszy kod na blogu.

W tym wpisie pojawi się w końcu trochę kodu, nie za dużo, ale zawsze coś.

Visual Studio 2017

Z okazji konkursu zainstalowałem najnowsze Visual Studio w wersji Community. Jest to darmowe środowisko dla małych projektów do 5 osób, zawiera wszystkie funkcjonalności z wersji Professional. Na początek zainstalowałem RC, aby po instalacji dowiedzieć się, że już jutro oficjalna premiera najnowszego VS. Na szczęście instalator bez problemowo to zaktualizował i wszystko póki co działa ;).

Największym zdziwieniem było to, że po instalacji ukazało mi się VS w polskiej wersji językowej. Ojej! WTF? Nie za bardzo mogłem się połapać, na szczęście sytuacja już opanowana i środowisko już jest w jedynym słusznym języku. Chociaż moja żona uważa, że po polsku też ładnie. I ona by pewnie taką wersję chciała.  Co sądzicie o tłumaczeniu środowiska programistycznego na język polski? Może od razu przetłumaczmy cały Framework na PL? Tak jak to ma miejsce w Excelu;)? SUMA() i LICZ.JEŻELI()

Język F#

Konkurs był dobrym powodem, aby nauczyć się czegoś nowego, więc padło na język funkcyjny, a że jestem po Microsoftowej stronie mocy to wybrałem F#. Początkowo miałem w planie stworzyć cały kod projektu w F#. Niestety napotkałem na pewne problemy, więc żeby się nie zrazić blogowaniem to uznałem, że tylko biblioteka generująca dane statystyczne będzie utworzona w tym języku. Aplikacja webowa natomiast zostanie napisana w dobrze znanym C# z wykorzystaniem najnowszego cudu techniki firmy Microsoft jakim jest .NET Core.

Statistics.MVC

Stworzyłem w VS nowa solucje z wymaganymi projektami i wygląda to tak:

Aplikacja aktualnie jedynie wyświetla tekst „Hello from F#”. Cóż za funkcjonalność normalnie MVP (Minimum Viable Product).

Oto obiecany na początku wpisu kod w języku F#:

namespace Statistics.Core
type Hello() =
   member this.Hello = "Hello from F#"

Całe troszkę kodu dostępne jest na moim GitHubie o tu -> „kod”.

Kolejny wpis, jeśli oczywiście mi się nie znudzi blogowanie. będzie na temat samego języka F#.

DSP #2 – Praca zdalna

W dzisiejszych czasach taki rodzaj wykonywania obowiązków zdobywa coraz większą popularność. Istnieją pewne profesje, które nie wymagają obecności w danym miejscu. Rzecz jasna nie wszystkie. Pielęgniarka swoimi pacjentami nie zajmie się zdalnie, natomiast programista; grafik; projektant bez problemu może swoją prace wykonywać z dowolnego miejsca na świecie. Siedząc w ogrodzie, kawiarni czy w ciepłym fotelu w domu.

Problemem niestety są pracodawcy, którzy na pracę zdalną patrzą niechętnie. Ostatnio w branży IT trochę się pozmieniało i praca ta ma coraz większą rzeszę sympatyków.

Ja osobiście od ponad dwóch lat pracuję całkowicie zdalnie, a dokładnie w swoim domu. Wcześniej jednak pracowałem dwa lata w biurze i dwa lata częściowo zdalnie (2 lub 3 dni tygodniowo u zleceniodawcy). Zauważam więc różnicę.

Czy praca zdalna jest dla każdego?

Nie, praca zdalna nie jest dla każdego. Wielu znajomych mówi mi, że nie mogli by pracować tak jak ja czyli we własnych 4 ścianach. A bo to brak kontaktu z ludźmi, brak motywacji aby rano wstać. Według mnie wszystko ma plusy i minusy. Nie każdy powinien pracować zdalnie. Mi ten sposób pracy odpowiada. Przez to mogę pracować z projektami z całej Polski lub nawet z całego świata i nie muszę się ograniczać do poszukiwania zleceń tylko w okolicy.

Jak pracę zdalną widzą inni?

Część pewno pomyśli, że pracując w domu nic nie robię. Siedzę w ciepłym kapciach. O przepraszam nie siedzę, ale leże cały dzień bez kapci i jeszcze mi za to płacą. Oczywiście można spędzić całą dobę w łóżku, ale z narzędziem pracy w części przypadków z laptopem (jeśli komuś wygodnie), ale trzeba zrobić to, co by się zrobiło w biurze czyli obowiązki muszą zostać wykonane

Plusy pracy zdalnej:
– Pracujemy gdzie chcemy – może to być własne biurko lub ogródek, bar lub kawiarnia, Polska, Szwecja, Bułgaria itd.
– Pracujemy kiedy chcemy – to już zależy od konkretnego projektu. Istnieją takie, w których wymagana jest obecność online o konkretnej godzinie, ale zdecydowaną większość czasu możemy pracować w dowolnie wybranym przez siebie czasie. Dzięki temu możemy np. odwiedzić miłych urzędników. Przy standardowej pracy w biurze należało by skorzystać z urlopu.
– Nie tracimy czasu na dojazdy – zyskujemy dużo czasu, który musielibyśmy przeznaczyć na dojazd do pracy, oszczędzamy też kasę na paliwo, bilety itp.

Minusy pracy zdalnej
– Brak kontaktu z ludźmi na żywo,
– Człowiek w domu zawsze potrzebny – Domownicy nie zawsze mogą zrozumieć, że mimo tego, że jestem w domu to pracuję i nie należy mi wtedy przeszkadzać.
– Problem oddzielenia pracy i domu.
– Motywacja do codziennego wstawania – no ciężko jest się zerwać z łóżka jak tak nie do końca trzeba o danej porze, ale się da.
– Rozłączający się Internet – no w pracy on-line dobre łącze to podstawa.

Temat pracy zdalnej nie został w tym wpisie wyczerpany, być może jeszcze wrócę do tego tematu. Jeżeli macie jakieś pytania napiszcie o tym w komentarzach. Macie jakieś swoje doświadczenia złe lub dobre związane z pracą zdalną? Zapraszam do dyskusji.

DSP #1 – Trochę informacji o moim projekcie.

W dzisiejszym wpisie chciałbym trochę opowiedzieć o samym konkursie i o moim projekcie.

Regulamin oraz opis konkursu znajdziecie na stronie dajsiepoznac.pl.

Najważniejsze zasady konkursu to :

  • Twórz projekt open source,
  • Wrzucaj kod na GitHub,
  • Bloguj o tym.

Aby spełnić wymogi konkursu należy publikować minimum dwa posty tygodniowo przez 10 tygodni. W tegorocznej edycji możemy w ramach konkursu blogować także na tematy nie związane z projektem, lecz na inne związane z programowaniem, pracą.

Zapisy do konkursu trwają do 12 marca więc jeszcze jest szansa na rejestrację. Można to uczynić pod linkiem: http://dajsiepoznac.pl/rejestracja. Do wygrania w konkursie jest wiele super nagród, ale ja osobiście nie biorę udziału w tym konkursie dla nagród, lecz dla własnej satysfakcji. Zwycięstwem dla mnie będzie wytrwać  ;).

Jak już wyżej wspominałem, aby brać udział należy prowadzić projekt open source. Co będzie moim tematem pracy? Co będę rozwijał w ramach konkursu?

Co, czym i dlaczego?

Projekt chce tworzyć w następujących narzędziach i technologiach.

  • Visual studio 2017 – dlaczego? Bo dopiero teraz zainstalowałem – można przy okazji zobaczyć co nowego.

  • F#  – bo napisałem w  życiu  w tym języku może 3 linijki kodu, więc jest szansa się czegoś nauczyć.

  • ASP.NET Core – bo zrobiłem za jego pomocą do tej pory pół projektu.

  • GIT – bo inaczej się nie da, gdyż jest to jeden z wymogów konkursu. Czy jest jakiś inny wybór?

Projektem będzie prosta aplikacja webowa prezentująca dane statystyczne.  Będzie ona pisana w technologii ASP.NET Core w języku F#. Do końca jeszcze nie wiem, jakie dane chcę przetwarzać, ale prawdopodobnie będą to dane z Twittera. Przykładowo wykresy częstotliwości występowania hasztagów w  danym czasie. Sama koncepcja i specyfikacja jeszcze wymaga doprecyzowania, ale może pomysły przyjdą w trakcie.

Blogować dopiero zaczynam. Do tej pory pisałem głównie kod a nie zdania, więc cały czas się uczę.
Myślę, że moje wypociny z posta na post będą coraz lepsze ;).

No to hop

Jeżeli czytacie ten wpis to znaczy, że się udało- w końcu się zmotywowałem i zacząłem prowadzić bloga. Pomysł ten pojawił się w mojej głowie już jakiś czas temu. Jednak na poważnie rozważałem to na początku roku 2016. Wtedy to Maciej Aniserowicz na swoim blogu poinformował, że startuje konkursu Daj się poznać. (więcej…)