Logowanie przez owin – jak zaoszczędzić trzy tygodnie

niewiem

Walka!

Tak wyglądały moje ostatnie 3 tygodnie pracy nad projektem isthereanynews.pl (jest już online). A z czym walczyłem? Z klasycznym, acz partyzanckim – u mnie działa.

Social

Modne i praktyczne, w zasadzie to drugie, jest logowanie się do różnego rodzaju serwisów przez użycie konta z G+, FB czy Twittera. Ja też tak chciałem – w ten sposób mogłem uciec od problemu trzymania hasła gdzieś u siebie i wszystkich problemów z tym związanych.

Continue reading

Co załadowane nie jest nie pisze się w rejestr

Mówili mi ludzie, czemu sam rejestrujesz zależności w autofacu, skoro można skorzystać z konwencji, sam wszystko rozpozna, wykryje co masz załadowane do pamięci i z tego rozkmini. Jak się domyślacie wpis ten wziął się stąd, że nie zawsze tak się dzieje.

Otóż tak stworzona rejestracja czasem powoduje problemy:

Problemy wygladają tak:

None of the constructors found with ‘Autofac.Core.Activators.Reflection.DefaultConstructorFinder’ on type ‘IsThereAnyNews.Mvc.Controllers.HomeController’ can be invoked with the available services and parameters: Cannot resolve parameter ‘IsThereAnyNews.DataAccess.IRssChannelsRepository rssRepository’ of constructor ‘Void .ctor(IsThereAnyNews.Services.IUserAuthentication, IsThereAnyNews.Services.ILoginService, IsThereAnyNews.Services.ISessionProvider, IsThereAnyNews.DataAccess.IRssChannelsRepository)’.

Brak zarejestrowanej implementacji klasy, ale jak to nie ma skoro napisałem wcześniej żeby się automagicznie samo się. Na szczęście na stackoverflow są mądrzy ludzi i w dziesięć minut mi to wytłumaczyli.

AppDomain.CurrentDomain.GetAssemblies() call. According to MSDN the method:
Gets the assemblies that have been loaded into the execution context of this application domain.

Czyli co jakiś czas (najczęściej po restarcie IIS), projekt z MVC się ładuje, ale nie załadował wszystkich referencji jeszcze, więc nie podczas rejestracji autofaca ten wykrył interfejsów oraz implementacji, przez to nie zrobił pełnej rejestracji.
I uwaga, po mojemu to tak, że jeśli nie ma interfejsów, to nie trzeba szukać do nich implementacji, a skoro ich (tych interfejsów) nie ma to nie ma też błędów czy ostrzeżeń. I dalej autofac się robił i rejestrował, teraz gdy generowane było żądanie http do kontrolera, ten przychodził do autofaca a ten naburmuszony mówił: “jaka implementacja? jaki interfejs? gdzie mi tu z łapami! dawaj domyślny konstruktor! Jak to? Nie masz?! Gleba i EXCEPTION!” – resztę historii już znacie, żółty ekran na prodzie – fak je.

Ale żeby nie płakać, to rozwiązanie jest takie proste:

Tutaj należy zwrócić uwagę na linię (@5) gdzie ładowane są referencje. Taki sposób pobierać ma listę wszystkich referencji, najwyraźniej nawet tych jeszcze nie załadowanych. A zatem, nawet jeśli moje *services czy *repositories nie będą załadowane, to będą widnieć na liście referencji, a ta zostanie przekazana do autofaca do skanowania i na pewno zostanie wczytana, co wreszcie spowoduje że nie będzie miauczeć że nie zna typa czy jego implementacji. Oddech i dziękuje.

Otwórz szufladę

szuflada

Miałem przyjemność brać udział w targach pracy. Rozmawiałem tam z kilkoma osobami, młodszymi i starszymi, bo jeden by chciał do nas ale nie wie co musi umieć (stary umiesz wystarczająco, dawaj!), inny też by chciał ale nie ma czym się pochwalić w CV i czy nie będzie siary. No to odpowiadam takiemu i innemu: a masz githuba albo inne repo? Bo nie ważne kim jesteś i co studiowałeś, liczy się to co teraz umiesz teraz i to co teraz wiesz – wrzuć do swojego CV link do swoich projektów, do tych które działają, albo do tych który jeszcze nie działają i wysyłaj.

Nie masz się czym pochwalić? Nie masz pomysłów na projekt? Zrób tak: gdy uczysz się czegoś nowego, nowego frameworka, nowej biblioteki, nowego języka, nowego czegoś, załóż do tego publiczne repozytorium i wrzucaj to tam. W ten sposób możesz pokazać że się uczysz, w jakim tempie i jak daleko już zaszedłeś.

Taka informacja daje rekruterom technicznym tysiąc-pięćset-milionów razy więcej informacji o kandydacie niż znajomość C# na 4/5 gwiazdek w kolorowym CV

Proste? Dołącz link do swojego repozytorium do swojego CV.
Jesteś ciekawy co ja mam?
https://github.com/jstadnicki
https://bitbucket.org/jstadnicki

 

Panie kierowniku

Bycie kierownikiem, szefem, menadżerem, liderem, mentorem, nie oznacza możliwości, rządzenia, szefowania czy rozkazywania. To przede wszystkim odpowiedzialność za ludzi, za ich pracę, za ich rozwój, za ich wyniki.

Robisz tak, bo chcesz żeby ludzie byli zadowoleni z pracy, dostarczali to na co się umówiliście lub więcej,  rozwijali się, rozwijali twoją organizację.

Somewhere over the rainbow

Gdy wychodzisz przed ludzi trzęsą ci się ręce, zaczynasz się pocić, a głos łamie się w gardle. Przed oczami przebiega całe życie i myślisz że umierasz – tak dla części z nas wygląda pierwsze wystąpienie przed mniejszą lub większa publiką. Myślisz sobie, wyśmieją mnie, zaczną zadawać trudne pytania, powiem jakieś bzdury.
Gdy tak myślisz pomyśl sobie takie coś: to ty występujesz przed nimi, to ty jesteś tym na kogo oni patrzą i to ty jesteś tym, który niesie wiedzę. Oni przyszli ciebie wysłuchać, dowiedzieć się co ty masz w głowie i czego mogą się od ciebie nauczyć.
Poczuj się jak młody Mirek Langer, który przyszedł przełamać swoją nieśmiałość: http://patrz.pl/film,mirek-langer,41461.html
On to zrobił przed bandą obcych ludzi (plus telewizyjne szoł), ty masz przed sobą tylko kilka, naście, dziesiąt, set twarzy, które wiedzą mniej niż ty. Jesteś zwycięzcą!