Latest Event Updates

Wpisy które warto przeczytać co jakiś czas

Posted on Updated on

Chcesz ciekawie pisać i malować? Kradnij jak artysta (i 9 innych zasad, których nauczyłem się sam)

Advertisements

Skype i Outlook – rozpocznij chata w kontekście konkretnego maila.

Posted on Updated on

W prawym górnym rogu każdej wiadomości w Outlooku mamy przycisk “IM”

Start skype message directly from outlook

Po kliknięciu otwiera się zwykły skype‘owy chat z tym, że okno będzie miało tytuł z emaila (tutaj “External components” – ucięło “RE”) i od razu prościej połapać się o co chodzi w tej rozmowie.

Skype chat with title from outlook message

F# linki do nauki

Posted on Updated on

Ten post to taki WorkInProgress. Jest to post żeby nie zapisywać rzeczy w inne niedostępne miejsca, które trzeba utrzymywać.

https://fsharpforfunandprofit.com/why-use-fsharp/

https://fsharpforfunandprofit.com/installing-and-using/#visual-studio

nie kompiluje się?
A może złe wcięcia czyli 5 zamiast 4 spacji. Tak działa F#.

Concat conditions:

if isAlreadyRemoved = false &&  current >= treshold then (lista, treshold, true)
    else (current::lista, treshold, isAlreadyRemoved)

Droga przejścia na F# z projektu pisanego w C#

Posted on Updated on

Jak należy przepisać istniejący kod (nie wszystko należy przepisać, ale na pewno nowy kod w C# powinien być pisany w oparciu o to) w C#:

– proste struktury danych muszą być immutable
– złożone struktury danych (zawierający kolekcje innych struktur) “powinny” być immutable (nie mam jeszcze na tyle doświadczenia, żeby stwierdzić czy bardziej “muszą” czy “powinny”)
– kod powinien być pisany bez for i foreach a zamiast tego z użyciem LINQ (Select, Zip, SelectMany, Concat, itd…)
– świat bez nulli – wytłumaczę później

Sposób na wyrugowanie nulli z projektu

Posted on Updated on

null to zło: https://www.infoq.com/presentations/Null-References-The-Billion-Dollar-Mistake-Tony-Hoare

A teraz jak sobie z tym radzę:
– nigdzie explicite nie tworzyć null
– uczynić wszystkie obiekty immutable z konstruktorem mającym Guardy przeciw null, zapobiegnie to inicjalizowania nullami gdy nic nie zostało ustawione explicite
– uważać na metody LINQ typu FirstOrDefault(), więc albo unikać “OrDefault”, czyli korzystać z First(), Single(), albo odpowiednio zająć się sytuacjami gdy jednak ten defaultowy null może być przekazany
– Guardy na input z zewnętrz do naszych serwisów, chodzi o wywołania naszego kodu przez kod kliencki (ale gdyby to miał być UI to sytuacja jest analogiczna – nie wpuszczać nulli).

Przeoczyłem coś oczywistego?
Czy może ktoś uważa, że to jest naiwnie zbyt proste i się nie uda.

Pomysły na kolejne posty

Posted on Updated on

Taka moja lista TODO:

* Kod before/after gdy unikamy powtarzania kodu wewnatrz if i else. Może obrazek z gitk. no i kod swoją drogą.

* Kod before/after, przekład gdy zamiaste filtrować dane przed wejściem do metody (i mieć customowego Guarda), zrobić to już w środku. Odpada test.

* Testy których nie pisać – powielanie Guardów, czy nulle, czy wartości >=0

* Co to jest Guard.

* Przetłumaczenie https://www.lucidchart.com/techblog/2015/08/31/the-worst-mistake-of-computer-science/

* Filmik o:
* Jak w gicie poprawić instniejący commit: wycofać commita, z poziomu SourceTree wybrać tylko to co istotne i zrobić nowego commita.
* jak zrobić poprawne “git pull –rebase” i jak wygląda gdy ktoś to źle zrobił.

* Przenieść (i zamienić stary na linka)
* https://dzienwpracy.wordpress.com/2016/08/17/okazjonalne-regularne-czyszczenie-kodu-resharperem/