Mssql instead of trigger – implementacja

Powrót

Praca wre, coś się kompiluje, coś się linkuje coś się uruchamia, a coś nie. Tym czymś na “nie” była (była bo już rozwiązane) baza mssql. Problem który napotkałem wyglądał tak:

Geneza:

Chce aby oprócz śledzenia kanałów z RSSami, użytkownik śledzić mógł też poczynania innych użytkowników. Aby tego dokonać potrzebuje gdzieś w bazie danych posiadać klasę/tabelę, która będzie trzymać informację o tym kto i kogo obserwuje. Continue reading

Użytkownik czy użytkownicy? Jak nazywać klasy – moje doświadczenia.

Dobra nazwa

Szukałem porad w sprawie trudnej czynności jaką jest nazywanie .NET DEVELOPERS POLAND – facebook Co prawda w innym temacie, ale warto przeczytać aby uświadomić sobie jaka to ciężka praca. Także człowiek szuka i myśli i próbuje.

Próby

W ramach swoich poszukiwań i eksperymentowania z tworzeniem najlepszego i najczystszego kodu, najlepiej nazwanego i cacy. Dotarłem do takiej sytuacji, gdzie chciałem posiadać osobne klasy (kontrolery, serwisy, repo, co tam jeszcze) które rozróżniały operacja na pojedynczych obiektach lub na kolekcjach obiektów. Tworzyłem osobne klasy dla UserOperation jak i UsersOperation, ChannelService i ChannelsService. Koncepcja jak papier wszystko przyjmie. Niestety dosyć szybko zaczęło to boleć, bolało nawet dwa razy podobnie jak ostra papryczka. Continue reading

Nauka uczenia się i rozwijania się część 3 – podcasty

Oskar i Kokos zebrali w swoich postach całkiem sporo materiału na temat skąd i jak można czerpać wiedzę i o tym jak się uczyć. Ich wpisy można znaleźć:

Oskar: Nauka uczenia (się)
Kokos: Jak się rozwijać?

Ja dodam od siebie jeszcze jedną rzecz, która nie została wcześniej wymieniona, a moim zdaniem daje sporo. To podcasty. Słuchając ich nie tyle uczę się danej technologii, czy jednego słusznego rozwiązania, a raczej dowiaduje się o innych, alternatywnych do codziennej pracy, rozwiązaniach które może kiedyś da się wykorzystać. Moja lista podcastów:

  • .Net rocks – pierwszy podcast którego słuchałem, skupia się wokół .net
  • A moment of science: Audio – krótkie historyjki ze świata technologi i ogólnej wiedzy
  • Being the worst – mam na liście, ale jeszcze nie dotarło do odtwarzania
  • Coding Blocks – techniczny podcast, skupiający się na .net
  • Full Stack Radio – różnie bywa, czasami wywiady z autorami produktów/bibliotek, czasami opowieści o architekturze i programowaniu. Warto posłuchać tych opowieści, mnie zainspirowały do kolejnego wpisu
  • Hanselminutes – sam Hanselmann, kiedyś technicznie, teraz równouprawnienia, szczerze mówiąc od jakiegoś czasu najczęściej przeskakuje, przykro mi Scott
  • Herding Code – technologicznie, różne osoby, różne technologie
  • JavaScript Jabber – javascript
  • Mała Wielka Firma – podcast o budowaniu własnego przedsiębiorstwa, bardzo fajnie i ciekawie opowiadają
  • Radiolab – opowieści, świetnie przygotowane słuchowiska, czasem moralizujące, czasem opowiadające historię leków, czasem po prostu zabawne, przesłuchałem od początku wszystkie
  • TED Radio Hour – TED w radiu
  • ThoughtWorks – opowieści z firmy, liczę że będą kiedyś ciekawe rzeczy

I ile wcześniej słuchałem każdego epizodu z każdego źródła od deski do deski, to teraz mają ich duży wybór pomijam te, które nie są tak bardzo porywające. Zdarza się także, że jedna osoba występuje w różnych wywiadach dla różnych podcastów, a mówi o tym samym, wtedy również szkoda czasu.

Jeśli chodzi o aplikację do podcastów to szczerze polecam Podcast Addict dla androida. Używam od 2 lat I nie zamierzam zmieniać na nic innego.

Zapis i odczyt data-attribute w DOM

Czasami trzeba zapisać coś w strukturze DOM, a potem odczytać te dane ponownie. I ponownie zapisać i odczytać i jeszcze raz. Z pomocą przychodzi wtedy nieśmiertelne jQuery. Znajdujemy wtedy interesujący nas element $(element) a następnie przy pomocy metody .data(“…”) odczytujemy wartość, lub .data(“…”,”…..”) zapisujemy wartość. jQuery lubi te dane sobie zapisać w swoim cache. Może się więc okazać, że każdy kolejny odczyt wskazywać będzie zawsze tą wartość, którą odczytaliśmy za pierwszym razem. Co wtedy? Są dwa sposoby; kiedyś udało nam się rozwiązać ten problem korzystając z innej metody, ale też jQuery; mianowicie .attr(“data-….”) i symetrycznie .attr(“data-…”, “…”) do odpisu i zaczytu (literówki!). Czasem i to nie wystarcza i wtedy należy sięgnąć po wanilie i skorzystać z getAttribute(“data-…”) oraz setAttribute(“data-…”,”…”) – te ostatnie zawsze działają. Jeden jedyny minusiczek, to taki: że jest to wyłom w spójności kodu, tzn. jeśli wszędzie używamy jQuery, a gdzieś wanilii, to dla części może to kłuć w oczy.

 

//EDIT (05.03.2016)
Przygotowałem przykład dostępny w jsfiddle jak i w giscie. Wygląda na to, w zmęczeniu przegapiłem pewne zależności lub coś działało jeszcze inaczej. Mianowicie problem z odczytem pojawia się wtedy gdy zapiszemy do data przy pomocy setAttribute a odczytamy za pomocą $.data, lub zapiszemy $.attr i odczytamy $.data. W tych przypadkach dane nie zostaną odświeżone. Sami sprawdźcie. Podziękowania dla @jarekkoziol za bycie ciekawskim.

GIST:

JSFiddle:
https://jsfiddle.net/jstadnicki/ydtry0c9/