Brace yourselves, functions are coming

Używam Azure Functions. Coś tam tutaj nawet o nich wspominałem. Czasem się lubiliśmy bardziej, czasem mniej, ale zasadniczo nastały ostatnio czasy względnej stabilizacji jak sądzę (wersja 1.0 do czegoś zobowiązuje, chyba…) i coś bym z nimi znowu zawalczył. Przyznaję, że do tej pory trochę z braku jakichś poważniejszych rozwiązań oraz nieco z lenistwa korzystałem tylko z tego, co oferuje portal. No ale ileż można pisać kod w okienku przeglądarki? To jest jednak smutne i debugging na oko, z logiem do konsoli jest delikatnie mówiąc partyzanckim rozwiązaniem. Dlatego jutro zabieram się (o ile nie prawo Murphy’ego) za ogarnięcie się pod tym kątem. Znalazłem nawet odpowiednio obszerny opis co połapać, żeby pracowało się miło i przyjemnie. Jeśli ktoś ma ochotę bawić się ze mną, to tutaj można poczytać co jutro będę klikał.
Do zobaczenia niebawem w kolejnym odcinku „Fun with Functions” 😉

Dzień premier

No co to się dzisiaj w Internetach wyprawia?

Z samego rana nowy, pierwszy mięsisty wpis na nowym blogu Architekci Chmury z przekrojowym opisem jak tu wystartować z aplikacją i jakie technologie dobrać do niej na dobry początek. Praktyka, dużo linków do materiałów, tutoriali, dokumentacji. Czekałem i się doczekałem. Jeśli wszyscy wpisani w startowym poście bloga ruszą z takim contentem jak Michał dzisiaj to klękajcie narody.

A jakby tego było mało to po powrocie z pracy ogłoszenie nowego vloga przez Macieja Aniserowicza. No ciekaw jestem co to będzie, chociaż przyznaję, że najwięcej czasu na tego typu materiały mam w samochodzie, więc w moim wypadku będzie bardzo ciężko przebić tą formą devtalka. Czas pokaże, a tymczasem nowa pozycja do subskrybowania, tutaj.

7 urodziny Azure

No dobra, wszyscy, którzy mieli już o tym napisali, ja tylko odnotuję fakt i dorzucę parę swoich spojrzeń wstecz przy okazji – Azure 7 lat wystartował komercyjnie. Mnie to osobiście przeciętnie dotyczy w bezpośredni sposób bo chmurą zajmuję się dopiero od nieco ponad dwóch lat. To, że padło na Azure, to też akurat nie był mój wybór, tak się złożyło, ale nie narzekam. Mogę za to rzucić paroma wydarzeniami, które mnie w jakiś sposób przez te dwa lata dotknęły. Nie piszę o wszystkich nowych usługach i wszystkich zmianach, które się w tym czasie pojawiły i których użyłem bo na samą myśl ile by tego było kręci mi się w głowie. Czytaj dalej 7 urodziny Azure

Moje dwa światy

Czyli co tam widać jak stoję nogami w chmurze, ale spojrzę przez lewe ramię? No ciekawe rzeczy widać, ale od początku. Wczoraj pojawił się taki wpis: Connect industrial assets with ProSoft, powered by the Azure IoT Gateway SDK i to mnie zmotywowało to zerknięcia przez owe ramię i rozejrzenia się nieco. Branżę co prawda zmieniłem, ale 10 lat pracy w automatyce swoje zrobiło i chociaż się tym na co dzień nie zajmuję, to jednak lubię czasem poczytać. Czytaj dalej Moje dwa światy

Azure SQL i wyczerpanie connection pool size

„Timeout expired. The timeout period elapsed prior to obtaining a connection from the pool. This may have occurred because all pooled connections were in use and max pool size was reached.”

Dla bardziej doświadczonych ode mnie programistów pewnie nie ma to żadnej tajemnicy. Wiedzą co może powodować takie zachowanie, potrafią napisać kod, który będzie bezpieczny od takiego „efektu”. Z kolei administratorzy DB wiedzą bez wątpienia jak namierzyć i monitorować takie niebezpieczne sytuacje. Czytaj dalej Azure SQL i wyczerpanie connection pool size

Optymalizacja procesu

Fajny temat. Wątki, procesory, profilery… Ale nie o nie tym razem chodzi. Tym sprawa dotyczy czasu poświęcanego na zrobienie czegoś przez człowieka. Ile fizycznie osobo-czasu zajmuje jakiś projekt, jego część, albo nawet pomniejsze akcje danego typu? Jak to wpływa na zasób ludzki, gdzie się najwięcej inwestuje, albo traci?

Ostatnio zacząłem (znowu) badać to u siebie, jeszcze muszę zbudować odpowiednie przyzwyczajenie żeby gromadzić pełnię danych, ale jest obiecująco. Mimo, że jeszcze nie mam osobistych efektów to sprzedałem swój patent zespołowi w pracy i wygląda na to, że to może zaskoczyć.

Wykorzystywałem w przeszłości różne narzędzia z listami to-do, zarządzające projektami itp. i jakoś nigdy nie udało mi się mierzyć swojego czasu mimo dostarczonych w nich funkcjonalności. Zawsze było to jakieś toporne, zbyt dużo czasu zajmowało przełączanie kontekstów, zmiana zadań, wprowadzenie ewentualnych zmian nie było trywialne, popełnione pomyłki i niedopatrzenia zniechęcały do dalszego wykorzystywania.

Czytaj dalej Optymalizacja procesu

Back in business

Ostatni raz byłem w pracy 23 grudnia. Tak, ponad 5 tygodni temu. No tak się jakoś złożyło, że do po świętach był urlop do końca roku, potem jedno dziecko zachorowało i nie mogło chodzić do przedszkola, potem drugie dziecko wzięło i się urodziło, więc tatuś kolejne dwa tygodnie spędził w domu… No i się nazbierało.

Żeby było jasne – uwielbiam swoją żonę i dzieci, ale dziś wyszło na jaw, że brakowało mi troszkę innego trybu, do którego przywykłem i że ja jednak lubię tę robotę. Cały dzień latałem między ludźmi dowiadując się o coraz to ciekawszych problemach i projektach, w które powinienem włożyć paluchy. To był dobry dzień i chyba od razu udało się pomóc paru osobom. Połapałem właściwie więcej niż planowałem i jestem diablo zadowolony.

Wracając do domu utknąłem w korku, ale to nic, wygrzebałem ze schowka płytę Blind Guardian, -10 do wieku. Pozostaje tylko zacytować klasyka:

Oh, it’s good to be back!

– Tony Stark

Go Azure!

Tak się zabawnie złożyło, że niedawno rozpoczął się nowy rok. Wtedy obroty siłowni rosną, a programiści robią postanowienia, że w wolnej chwili ogarną jakiś nowy język. Dla odświeżenia szarych komórek, dla sportu, dla satysfakcji, obojętnie, ale ogarną.
Jednocześnie Gutek pisze o nauce i poznawaniu języków, zapowiada serię wpisów o Go, a ja dowiedziałem się (no jakoś nie trafiłem na to info wcześniej, chociaż projekt na GitHubie jak widzę rozpoczął się pod koniec 2014), że trwają prace nad Azure Go SDK.
No i co? No i chyba trzeba będzie się wgryźć w tą serię i czegoś o języku dowiedzieć. Skoro będzie się dało z tego ogarniać Azure, którego używam na co dzień, to ciężko znaleźć jakąś wymówkę. Tylko lista rzeczy do nauczenia się w tym roku jakoś niebezpiecznie się rozrasta, a to dopiero styczeń 😉

Zarządzanie usługami z kodu C#

Czyli biblioteki Azure Management Libraries for .NET. Właśnie wyszła Beta 4, do której dodano obsługę całkiem pokaźnej paczki usług:

  • App Service
  • Azure SQL
  • Application Gateway
  • Traffic Manager
  • DNS
  • CDN
  • Redis Cache

To zaczyna być na prawdę interesujące rozwiązanie i opcje zaczynają być szerokie. Co prawda być może nie każdy ma na co dzień potrzebę dynamicznego tworzenia i usuwania usług, pewne scenariusze są zaadresowane przez inne usługi i rozwiązania (np. DevTest Labs), ale wykonywanie takich operacji z zarządzanego kodu, możliwość wplecenia tego w aplikację i tak jest ciekawe. Przyszło mi nawet do głowy jedno ciekawe, chociaż troszkę szalone rozwiązanie… Jak znajdę czas żeby się pobawić tą biblioteką to się podzielę bo to chyba fajna opcja do pokazania „a da się”. O ile się faktycznie da 😉 Zobaczymy.

Źródło: Manage App Service, SQL Database, and more – Azure Management Libraries for .NET

Nowe funkcje w T-SQL oraz niespodziewane odkrycie

Azure SQL wzbogacił się o kilka nowych funkcji z grupy String. Nie wchodząc w szczegóły i przykłady:

  • TRIM – wycina podane znaki z początku i końca napisu
  • STRING_AGG – skleja wartości wybranego pola z kolejnych wierszy w tabeli oddzielając je podanym znakiem (np. zrobi comma-separated listę e-maili per dział w firmie)
  • CONCAT_WS – skleja podane w parametrach wartości rozdzielając podanym znakiem (np. utworzy „nazwę” osoby łącząc spacjami pierwsze i drugie imię oraz nazwisko)

No i spoko, zawsze lepiej mieć gotowe (i prawdopodobnie wydajne) niż rzeźbić samemu i tworzyć własne rozwiązania w każdej bazie, w której się tego akurat potrzebuje.

Ale! Najlepsze jest to, że coś mnie tknęło w momencie kiedy chciałem zamarudzić „no dobra, contaty ładne, a gdzie jest split god damnit!?”. No i otworzyłem MSDNa, a tam pyk! STRING_SPLIT jest dostępny w SQL Server 2016, a że Azure SQL jest z nowinkami w miarę na bieżąco… Tadam!

Czego się to człowiek rykoszetem nie dowie przy okazji czytania newsów. Tak bardzo mi brakowało tego rodzaju funkcji jeszcze nie tak dawno. Już wiem co będę przerabiał jak wrócę z urlopu.

Źródło: New T-SQL string functions in Azure SQL Database