Skip to Content

IT nieuczesane.

ITechDays.. już za tydzień

eN.

Fluent Design System

koniec epoki kwadratu, taka jego mać, nadchodzi. ileż to razy wyrzygiwałem się na interfejs Windows 8+ [czy na Server 2o12]… praca z tymi systemami to czysta nieprzyjemność wizualna. wykrwawianie się o suche, minimalistyczne kanty. coraz większe rozdzielczości i wspaniałe matryce o świetnych parametrach i odwzorowaniu barw, są kaleczone banalnością obecnego designu i obrażane wykorzystaniem barw z zakresu słownika standardowego faceta. ‚Windows’ zaczął zamieniać się ‚Window’, graficznie cofając się do czasów możliwości Logo. trochę jakby uznano wszystkich odbiorców za ułomnych wzrokowo i globalnie wymuszono tryb ‚high contrast’.

ale to cierpienie powinno się skończyć już na jesieni! a może zdecyduję się włączyć sobie Insider Updates?

http://fluent.microsoft.com/ – czyż to nie jest piękne?

długo wymieniać cechy nowego interfejsu, więc po prostu polecam przykładowe arty na ten temat:

pozostaje moją obawą czy owe zabaweczki nie będą miały jakiś kosmicznych wymagań – podobnie jak było z Aero dla Vista, oraz czy to będzie stabilne. niestety stabilność sterowników dla mojej NVidii serii M pozostawia trochę do życzenia i zdarza mi się obejrzeć niebieski ekran z QRcode, nie ma też pełnej obsługi najnowszych DirectX /:

jedno jest pewne – nie pamiętam kiedy ostatnio ‚czekałem’ na jakiś update. a teraz *chcę go*, już zaraz (:

eN.

transformacja listy do csv

dane przekazywane są w różny, czasem dość dziwny sposób. ostatnio potrzebowałem danych do migracji w office365 i dane zostały przedstawione jako spis, gdzie jedynym wiążącym elementem była ilość wpisów dla każdego obiektu. coś takiego (example.txt):

takich wpisów było prawie 1oo a w efekcie chodziło o stworzenie tabeli, i dokonanie transpozycji:

nazwa parametr coś linia bez znacznika
jakaś nazwa wartość parametru tutaj jakaś wartość a tutaj kolejna wartość
inna nazwa inna wartość parametru coś i tu znów wartość
nazwa 3 parametr 3 tralalala blablabla
znów coś ciągle coś innego przykadowy ciąg znaków a tutaj kolejna wartość

 

jak widać zapis wygenerowany na stronie był dość luźny w stosunq do tego, co chciałbym mieć na końcu. tutaj poradziłem sobie przepisując ręcznie, ale przy dużej ilości wpisów…

wszystkiego nie ma sensu automatyzować, ale podstawowym zadaniem będzie owa transpozycja. w sumie to dwie linijki kodu:

pierwsza linijka to po prostu odczytanie zawartości pliq do zmiennej. a cała ‚transpozycja’ to de facto zauważenie, że:

  • każdy obiekt zapisany jest na 5 liniach
  • następnie jest pusta linia oddzielająca
  • kiedy sklei się wszystkie 5 linii średnikami.. to w zasadzie już

cały myk jak ładnie skleić wartości tabeli do stringa? wystarczy wskazać tabelę, i użyć ‚join’. ot – PowerShell. nie trzeba żadnych pętli ani wynalazków, wszystko zrobi za nas (; dodajmy do tego, że substrakt tabeli można uzyskać wskazując konkretne elementy, a jeśli są w zapisie ciągłym to wystarczy użyć ‚..’ . czyli tak:

inkrementując w pętli $i+=6 – to przeskakiwanie co 6 kolejnych linii.

‚podtabela’ma natomiast podane $i+5 aby ominąć ostatnią, pustą wartość.

…teraz wystarczy otworzyć w excelu i sobie resztę doklikać i uporządkować. voila.

eN.

 

Teams i grupy o365

taka drobna ciekawostka… większość aplikacji o365 opiera się na ‚Office 365 groups‚. ciekawe jest to, że zależnie od aplikacji to nie zawsze jest dokładnie ta sama grupa, a raczej zawartość jest synchronizowana do kopii grupy dla aplikacji. podobnie jak grupa w AD onprem jest synchronizowana do grupy AAD w o365.

efekt jest dość zaskaqjący. jeśli manipuluje się przynależnością do Teamu w Teamsach, z poziomu aplikacji, jako właściciel danego Teamu/grupy, to zamiany są odzwierciedlane natychmiast. ale jeśli dokonuje się manipulacji na grupie od strony office 365 [np. dodanie/usunięcie członka], jako administrator, to zmiany w Teams zostaną zsynchronizowane… w ciągu 24h [SIC!]. jest to trochę dziwne. np. w tym samym czasie SharePoint widział zmianę od razu.

dwa wnioski:

  • lepiej unikać zarządzania administracyjnego – lepiej zostawić to właścicielom Teamów
  • trzeba pamiętać, że ‚sowy nie są tym czym się wydają’

eN.

Misja na Marsa

pół żartem, pół serio, przed chwilą pisałem, że moim marzeniem jest wziąć udział w projekcie interplanetarnym. a tu proszę – Misja na Marsa.

eN.

ITechDays – rejestracja i agenda

od wczoraj można się już zapisywać na konferencję ITechDays 2o17. Dostępna jest już pełna agenda.

spóźniony news… ale ostatnio z pustą taczką latam (;

eN.

ITechDays [1-2].o6.2o17

konferencje ITechDay cieszyły się bardzo dużym zainteresowaniem – ostatnio 12o miejscówek rozeszło się w… 8o sec! [SIC!]. w związq z taką popularnością, organizatorzy ITD musieli pomyśleć o tych pozostałych i tak, z jednodniowego ITD odbędą się dwudniowe ITDs (: co więcej, aby nie ograniczać chętnym wstępu, konferencja odbędzie się w bardziej przestronnym miejscu…. w największym centrum konferencyjno-kongresowym w Europie Środkowej – PTAK Warsaw Expo. na szczegółową agendę trzeba jeszcze poczekać, ale już wiadomo, iż konferencja odbędzie się 1-2 czerwca, oraz znani są prelegenci.

tym razem w-files nie tylko patronuje medialnie, ale również jest w składzie prelegentów (:

eN.

compare uncomparable

*UPDATED

bardzo często korzystam z ‚compare-object’ ale ma niestety jedną bardzo, bardzo poważną skazę. pomimo swojej nazwy, wcale nie potrafi porównywać obiektów, a raczej wykrywać różne obiekty w tablicy. oto przykład:

$t1 i $t2 są takimi samymi obiektami, różnią się niektórymi wartościami atrybutów – np. Paged Memory [PM(K)]. compare różnicy nie widzi. oczywiście można porównać konkretne atrybuty [properties]:

ale kiedy poda się kilka parametrów, to compare-object traktuje je jako logiczny OR –
„czy którykolwiek z nich się różni?”:

moje odczucie jest takie, że compare-object został napisany z myślą o tabelach, gdzie dla kolejnych wierszy pokazuje różnice w kolumnach. w przypadq obiektów jest odwrotnie – każdy wiersz jest unikalny i ma wartość. więc albo trzeba byłoby skonwertować to do tablicy i dokonać transpozycji, albo obejść się bez compare-object /: jak się okazuje nawet PowerShell ma wady i nie jest idealny. ten przypadek jest szczególnie bolesny i niezrozumiały, zarówno ze względu na obiektowość PS, jak i zwodniczą nazwę.

jeden ze scenariuszy: szukałem różnic w wartości obiektów po migracji między usługami, żeby wykryć, gdzie była zmiana. dla ułatwienia zrobiłem sobie zrzut obiektu do CSV [ale to nie ma znaczenia]. efekt był dokładnie taki jak opisywany powyżej, czyli nie pokazywał mi różnic. i trzeba było sobie to ręcznie oprogramować:

PS szybko rozleniwia /:

/UPDATE

okazuje się, że Tatuśkowi też zabrakło takiej funkcjonalności więc napisał piękną funkcję do jej obsługi: Compare-ObjectProperty.

dzięki Kacper za linka (:

eN.

 

 

 

URI PowerShell dla Skype Online

PowerShell zarówno dla Exchange jak Skype Online dostępny jest poprzez stworzenie sesji WinRM i zaimportowanie zdalnych komend. prosta komenda połączenia do SkypeOL to po prostu:

…ale ja jakoś od zawsze trafiam w nietypowe przypadki [środowiska] i połączyć się nie mogłem, ponieważ DNS nie wskazuje jeszcze na środowisko, do którego się chcę połączyć. po przeczesaniu internetów wszędzie trafiałem na ‚pomoc’ aby dopisać parametr -OverrideAdminDomain “my.domain.365” . bezwartościowa, ponieważ tak jak pisałem, DNS nie jest jeszcze skonfigurowany. ale jest jeszcze jeden parametr, tym razem bardziej pomocny: -OverridePowershellUri . tylko to URI trzeba znać.

trzeba odpalić przeglądarkę na jakimś komputerze z DNS ustawionym na zewnątrz i wpisać: https://sched.lync.com . po uwierzytelnieniu zostaniemy przekierowani na URI dla naszego tenanta np: „https://webdir1f.online.lync.com/Scheduler/?AuthCookieName=RtcAuth” . dla PS będzie to: „https://webdir1f.online.lync.com/OcsPowershellLiveId”.

trochę wchodzenie przez komin, ale czasem trzeba pokombinować (; jak ktoś zna prostszy sposób to się proszę pochwalić.

eN.

unikaty i duplikaty

Duplikaty

łatwo jest przefiltrować listę tak, aby mieć tylko unikalne elementy – jest zarówno commandlet ‚get-unique’ oraz parametr ‚-unique’ przy select-object, ale jak wyłuskać duplikaty?

sposobów jest oczywiście wiele a ten, który mi się podoba to:

lub w hiperpoprawnym zapisie:

plik:

a teraz sprawdźmy duplikaty:

można jeszcze upiększyć output, pozbywając się śmieci:

Unikaty

powracając jeszcze do unikatów… wydawałoby się, że skoro jest oddzielne polecenie – get-unique, to powinno mieć większe możliwości i być bardziej elastyczne niż jakiś tam parametr do innego polecenia.

o dziwo jest odwrotnie. osobiście traktuję get-unique jako ciekawostkę i nie miałem scenariusza, w którym bym go użył. a to dla tego iż [msdn]:

The Get-Unique cmdlet compares each item in a sorted list to the next item, eliminates duplicates, and returns only one instance of each item. The list must be sorted for the cmdlet to work properly.

Get-Unique is case-sensitive. As a result, strings that differ only in character casing are considered to be unique.

eN.