Kurs: Wprowadzenie do Azure. Egzamin AZ-900

2020-05-26

Utrzymanie wysokiego poziomu wiedzy jest w IT zupełnie naturalna. Są jednak takie chwile, kiedy dbałość o kwalifikacje jest szczególnie ważna. Takie czasy zbliżają się wraz z kryzysem po epidemii. W tej bardzo niekorzystnej sytuacji, trzeba próbować znajdować okazje. Ciekawostką jest to, że w czasie miesięcy kwarantanny zdalne formy nauczania zyskały na popularności. Przyczyn można pewnie upatrywać w ograniczonych możliwościach szkoleń stacjonarnych, ale również większej ilości wolnego czasu, kiedy nie można korzystać ze sportu,  spacerów, kina i innych rozrywek.  Z całą pewnością ci, którzy zamiast Netflixa zdecydowali się na zdobywanie nowych kwalifikacji, mogą powiedzieć, że wychodzą z kwarantanny wzmocnieni o nową wiedzę.

Mówi się, że na naukę nigdy nie jest za późno. Dlatego nawet jeśli kwarantanna już za nami, proponuję wzmocnić się kursem  o Azure:

Kurs ma dwa główne cele:

  • Wprowadzenie do korzystania z MS Azuzre. Liczy sie tutaj umiejętność poruszania w portalu Azure, pracy z podstawowymi usługami Azure, ale też znajomość zasad rozliczania opłat, obliczania SLA, korzystania ze wsparcia technicznego, terminologii stosowanej w pracy z chmurą
  • Przygotowanie do egzaminu Azure Fundamentals AZ-900. Wymogi egzaminacyjne są publikowane na stronie Microsoft i od czasu do czasu aktualizowane. Ten kurs jest zgodny ze stanem wymagań z roku 2020.

Budowanie kompetencji w Azure może być tym bardziej interesujące, że Microsoft rozpoczął w Polsce budowanie nowego regionu Azure. Wartość inwestycji to ok. 1 mld USD. Wydaje się więc, że już niebawem firmy wspierające i korzystające z Azure będą poszukiwać specjalistów w tym zakresie: administratorów, programistów, project managerów, architektów, analityków i specjalistów w innych dziedzinach – nawet księgowych!

Więcej na ten temat:

https://www.centrumxp.pl/Publikacja/Azure-dociera-do-Polski-Microsoft-buduje-centrum-danych-nad-Wisla

 

Daj się porwać chmurze Azure!

By Rafał Kraik in Aktualności

R: Invalid argument: Graphics error: Plot rendering error

2020-05-06

Oprogramowanie Open Source jest fajne. Ciągle się dziwię i nadziwić się nie mogę, jak to się dzieje, że darmowe i na prawdę dobre oprogramowanie istnieje i się rozwija. Przecież stoją za nim ludzie, którzy poświęcają swój czas w celu tworzenia oprogramowania za darmo (!) i z otwartym kodem (!!). Dlatego jeśli napotkasz błąd w Open Source, postaraj się poszukać rozwiązania, bez wyrzutów względem autorów. Znając tych szlachetnych ludzi, to i tak pewnie chętnie poprawią błędy…

No dobrze, ostatnimi czasy podczas generowania wykresów i ogólnie grafiki w R, ale też w Python zdarzyło się spotkać błąd:

'Invalid argument’ Graphics error: Plot rendering error

Chwila grzebania po sieci, pozwoliła ustalić, że możliwa przyczyna to  polskie literki występujące w nazwie użytkownika. Tymczasem wiele programów pracuje z plikami tymczasowymi, które są tworzone w katalogu tymczasowym użytkownika… w efekcie pliki tymczasowe w nazwie zawierały polskie literki i to się już bibliotekom graficznym nie podobało…

Obejściem problemu jest zmiana katalogu na pliki tymczasowe. Kliknij prawą myszką na „Komputer” i wybierz właściwości:

W polu oznaczonym jako „6” wprowadź ścieżkę do katalogu na dysku, który będzie wykorzystywany jako katalog na pliki tymczasowe, np. c:\temp. Upewnij się oczywiście, że ten katalog jest na dysku.

Potem zapisz zmiany, zrestartuj komputer i już powinno wszystko być dobrze!

 

 

By Rafał Kraik in R

Azure: Nie działa wyzwalanie triggera w logic app z event hub

2020-04-25

Co może póść nie tak, kiedy idziesz krok po kroku zgodnie z łopatologiczną instrukcją z helpa Microsoft? Poprawna odpowiedź to wszystko albo nic.

https://docs.microsoft.com/en-us/azure/event-grid/monitor-virtual-machine-changes-event-grid-logic-app

Miałem dziwny przypadek, bo w jednej subskrypcji ta metoda zadziałała, a w innej nie. Porównałem kod logic app zapisany w formacie JSON linijka po linijce i był taki sam. O co więc chodzi?

Rzut oka na „overview” applikacji wykazywał, że trigger wcale sie nie uruchomił. Trigger z kolei był oparty o event hub. Najprawdopodobniej więc to coś nie tak z event hub. Właściwie ten wniosek, to już 90% rozwiązania.

Jak to jest ładnie opisane tutaj: https://toonvanhoutte.wordpress.com/2019/01/08/logic-apps-event-grid-trigger-not-firing/

należało:

  • wejść do swojej subskrypcji
  • przejść do zakładki „Resource provider”
  • i odszukać na liście EventGrid
  • jeśli w statusie zobaczysz wartość „Not Registered”, to znalazłeś przyczynę!
  • zaznacz linijkę i kliknij register

 

Za radą z artykułu, wróciłem jeszcze do aplikacji i ją wyłączyłem (Disable) i włączyłem (Enable). Gotowe. Przy najbliższej okazji trigger się odpalił i aplikacja zadziałała tak jak należało 🙂

 

By Rafał Kraik in Azure

Klasa „4 i” LO nr 2 Opole 1988-1992 – 4i Liceum Ogólnokształcące w Opolu

2020-04-14

Cześć! Chodziłaś do tej klasy? Liceum Ogólnokształcące nr 2 w Opolu – klasa 4i w latach 1988-1992? Daj mi znać. Zorganizowaliśmy się lata po studiach, ale nadal się szukamy. Odezwij się do mnie i dołącz do wesołego grona. Brakuje nam Ciebie. Nie zastanawiaj się tylko pisz:

Dzięki!

Rafał

By Rafał Kraik in SQL

Python: Pandas: Formatowanie kolumn – metoda to_string i parametr formatters

2020-04-10

Dane to dane i kiedy przetwarzasz je w data frame, to generalnie nie należy się przejmować wyglądem tych danych. Jednak od czasu do czasu chcesz zadbać również o to jak te dane mają wyglądać.

Oto dataframe:

import pandas

d = {'col1': [1, 22, 333, 4444], 'col2': [4, 55, 666, 7777]}
df = pd.DataFrame(d)
df

Data Frame ma metodę to_string, a metoda to_string przyjmuje parametr formatter, który wpływa na sposób wyświetlania danych:

formatters={"col1": "{:,.2f}".format, "col2": "{:,.2f}".format}

print(df.to_string(formatters = formatters))

A co jeśli data frame zawiera dane napisowe – string? Te polecenia skonwertują nasz data frame do tekstu:

df = df.applymap(str)
df
df.dtypes

Tu przy pomocy parametru formatters określasz, że kolumna col1 ma być wyrównana do lewej strony i napis ma być umieszczony na 10 znakach, a col2 ma być wyrównany do prawej i też na 10 znakach:

formatters={"col1": "{:<10}".format, "col2": "{:>10}".format}
print(df.to_string(formatters = formatters))
By Rafał Kraik in Python

Python: Usuwanie duplikatów z listy

2020-04-04

Tak stworzymy sobie listę, w której niektóre wyrazy się powtarzają:

text='''
Industrial Light & Magic: In this case, you find Python
used in the production process for scripting complex,
computer graphic-intensive films. Originally, Industrial
Light & Magic relied on Unix shell scripting, but it was
found that this solution just couldn't do the job. Python
was compared to other languages, such as Tcl and Perl, and
chosen because it's an easier-to-learn language that the
organization can implement incrementally. In addition, Python
can be embedded within a larger software system as a scripting
language, even if the system is written in a language such as
C/C++. It turns out that Python can successfully interact with
these other languages in situations in which some languages can't.
'''
words = text.replace("\n"," ").split(' ')

Żeby sprawdzić jakie słowa się powtarzały możesz wywołać

sorted(words)

Jest tu dużo powtarzających się wartości. Oprócz listy jest też w Pythonie obiekt set (zbiór). O ile w liście kolejność jest istotna i elementy się powtarzają, to w secie kolejności nie ma i obiekty się nie powtarzają. Taką set robi się prosto:

set(words)

Ów set można znowu skonwertować do listy:

list(set(words))

 

Taka przekonwertowana lista nie zawiera już elementów powtarzających się

By Rafał Kraik in Python

Azure: Zmiana nazwy grupy zasobów

2020-03-29

W ramach testów utworzyłem ResourceGroup i z chwilowego braku fantacji nazwałem tę grupę ppp… Szczęśliwie się okazało, że  eksperymenty się udały i właściwie moje rozwiązanie mogłoby zostać tak jak jest, gdyby tylko nie ta głupia nazwa resource group…

Niestety nie ma możliwości zmiany nazwy grupy zasobów. Jest jednak trick 😉 Można utworzyć nową grupę zasobów, a następnie przenieść obiekty z feralnej grupy do nowo utworzonej grupy.

Jeśli wykonując to zadanie, nie chcesz zbyt dużo klikać, można skorzystać z powershella:

Get-AzResource -ResourceGroupName ppp | Move-AzResource -DestinationResourceGroupName OneDriveMailNotification_RG

Confirm
Are you sure you want to move these resources to the resource group
'/subscriptions/b0f2c2f3-c0ba-4f9b-b2ec-462472fdc456/resourceGroups/OneDriveMailNotification_RG' the resources:

/subscriptions/b0f2***56/resourceGroups/ppp/providers/Microsoft.Web/connections/onedrive
/subscriptions/b0f2***56/resourceGroups/ppp/providers/Microsoft.Web/connections/googledrive
/subscriptions/b0f2***56/resourceGroups/ppp/providers/Microsoft.Web/connections/gmail
/subscriptions/b0f2***56/resourceGroups/ppp/providers/Microsoft.Storage/storageAccounts/storageaccountppp8475
/subscriptions/b0f2***56/resourceGroups/ppp/providers/Microsoft.Logic/workflows/ProcessOrder
[Y] Yes [N] No [S] Suspend [?] Help (default is "Y"): y

WYkonanie nie było błyskawiczne, a wręcz myślałem, że coś się zawiesiło, ale koniec obiekty zostały poprawnie przeniesione. Teraz mogę rzeczywiście zrobić porządek 🙂

By Rafał Kraik in Azure