Skip to Content

IT nieuczesane.
author

Author: nExoR

foreach valuefrompipeline

*EDITED

mały tutorial o przetwarzaniu przekazywanych wartości, który może radykalnie zmienić czas przetwarzania skryptu. wiadomka – pipelining jest podstawowym mechanizmem PS a przy przetwarzaniu wielu elementów, czasem wręcz odruchowo, wpisuje się ‚%’ czyli foreach-object. przykładowo – znajdź wszystkich, którzy mają nazwisko na ‚x’ i wyślij im wiadomość:

a teraz standardowy scenariusz z życia codziennego: dostajemy jakieś listy w postaci pliqw tekstowych. załóżmy, że są w nim nazwy kont, z którymi coś trzeba zrobić. szkielet jest trywialny:

…mija czas i okazuje się, że nasze ‚do-something’ rozbudowaliśmy do postaci skryptu, ponieważ ilość wykonywanych czynności rośnie i oneliner jest zbyt mało wygodny. wartości można do skryptu przekazywać na dwa sposoby – bezpośrednio, jako parametr lub – tak jak powyżej – przez pipelining. druga metoda nie działa ‚od ręki’, wymaga włączenia poprzez specjalny parametr: ‚valueFromPipeline‚ [lub valueFromPipelineByPropertyName… ale to na inny wpis].

żeby pokazać co się będzie działo załóżmy, że mamy listę komputerów i operacja wymaga uwierzytelnienia się do zdalnego zasobu:

w takim przypadq, aby uruchomić skrypt dla całej listy, należy przekazać listę przez parametr:

polecenie w nawiasach ‚( )’ zostanie przetworzone, listing pliq zwraca tablicę stringów string[] i to zostanie przetworzone w skrypcie. jak na razie oczywiste oczywistości. nuda… ale zadanie nad którym pracujemy chcemy coraz bardziej automatyzować, cały proces do którego piszemy skrypty jest dość rozbudowany, a więc nasze skrypty muszą ze sobą gadać – output z jednego chcemy móc przekierować na kolejny. czyli trzeba włączyć pipelining:

jeśli przekażemy wartości przez parametr tak, jak do tej pory, to nic się nie zmieni. ale jeśli przekażemy przez pipe … coś nie halo:

..wyświetli tylko dla ostatniego elementu /: [zwróć uwagę, że skrypt ‚do-something’ wywołany jest bez parametru – valueFromPipeline oznacza ‚jeśli potok wyjściowy jest przekierowany, przekaż go do tej zmiennej oznaczonej valueFromPipeline’ ]

ah! no oczywiście! zapomnieliśmy foreach:

[tutaj już musi być parametr – $_ . a to dla tego, że nawiasy klamrowe ‚{ }’ definiują blok danych, separując potok od polecenia. niby niuans ale pokazuje, że totalnie zmienia się mechanika pod spodem]

hmm… no ale mamy kolejny problem – teraz skrypt przed każdym wywołaniem prosi o dane uwierzytelniające. lama poradzi sobie dodając parametr ‚credential’ i przekazując go podczas wywołania. ale to nie jest zawsze dobry sposób i dobrze wiedzieć czemu tak się dzieje. błąd został popełniony w momencie dodania ‚foreach’ (2). parametr ‚identities’ w skrypcie został sprytnie zadeklarowany jako tablica, a więc powinien tablicę przyjąć. ale dodając ‚foreach’, rozbijamy tablicę na poszczególne elementy i uruchamiamy skrypt wiele razy, przekazując każdą kolejną wartość jako parametr wywołania. a nie o to chodziło.

rozwiązaniem jest dodanie składni ‚begin-process-end’ do skryptu. standardowo skrypt czeka na pojedynczą wartość, po dodaniu tego bloq tworzy ‚pułapkę’ zawartą w bloq ‚process’, która będzie się uruchamiać dla każdego kolejnego elementu. co więcej, ‚process’ zostanie wykonany dla każdego przekazywanego elementu dokładnie tak, jak ‚foreach’, a więc można się pozbyć tego fragmentu:

teraz jeśli uruchomi się ‚do-sthelse | do-something’ – zostaniemy zapytanie o credsy tylko raz, po czym wykonana zostanie część ‚process’, a na koniec jednokrotnie wykona się klauzula ‚end’. wyrzucam ‚gwmi’ żeby pokazać przetwarzanie i zostawiam tylko write-host:

o to chodziło.

co zapamiętać

czym innym jest przekazanie tablicy a czym innym kolejne przekazywanie parametrów tablicy – czyli foreach. jeśli skrypt jest duży, to można dużo oszczędzić. dla tego przy pokaźnych operacjach warto zajrzeć do pomocy, opisu parametrów skryptu i sprawdzić czy deklaracja:

  • pozwala na przekazanie tablicy – np. [string[]]
  • pozwala na przekazanie przez pipe – valueFromPipeline

ponadto trzeba pamiętać, że ponieważ ‚valueFromPipeline’ jest pewnego rodzaju wskaźnikiem ‚TU PRZEKIERUJ WSZYSTKO CO WPADA’ – to może być zadeklarowane tylko raz. zadeklarowanie wielokrotnie nie spowoduje błędu składniowego, skrypt uruchomi się, ale wyniki będą mocno niedeterministyczne…

eN.

Azure Stack GA

cloud computing australia

kilka luźnych myśli…

po pierwsze Azure Stack jest w GA i od przyszłego miesiąca można już zamawiać . oczywiście na liście 46 krajów Polski nie ma. dla tych, którzy jeszcze o Azure Stack nic nie wiedzą – jest to rozwiązanie Appliance, które można wstawić do własnej serwerowni, i korzystać z niego jak z Azure.. .którym w zasadzie jest. odwrócenie starej idei, gdzie firmy dzierżawiły kawałek publicznego Data Center aby mieć je do własnego użytkq. tutaj odwrotnie – wstawia się zabawki dostawcy do własnej serwerowni. ale rozlicza się nadal tak, jak Azure – czyli nie jest to zastępstwo dla Azure Packa, czy dobrze wdrożonego System Center. pomysł zaiste ciekawy, niewątpliwie organizacje, które z powodów wydajnościowych czy bezpieczeństwa chcą mieć dane u siebie, mogą teraz udomowić kawałek Azure (:

pełnej funkcjonalności nie ma, a część funkcji zawsze będzie potrzebowała sięgnąć gdzieś na zewnątrz, ale wiele dodatkowych scenariuszy to otwiera.

najciekawszy art jaki znalazłem dot. dostępności Azure Stack jest analizą rynkową. zabawne jest, że po kilq latach całego zamieszania wokół chmury, nadal powinno się zaczynać od ‚swojej definicji’ chmury. w podlinkowanym arcie pada cytat, że według AWS ‚chmura’ oznacza zawsze i tylko ‚chmurę publiczną’, zastanawiały mnie też małe liczby stojące za przychodami Microsoft ‚z chmury’ co wyjaśniło się w arcie na CNBC, z którego wynika, że Office 365 jest chmurą .. .i nie jest równocześnie O_o . efekt jest taki, że pierwszy art zdaje pytanie czy MS będzie w stanie doścignąć niedościgniony AWS [wartość 14,6 mld USD], w drugim widać, że ‚jeśli liczyć chmurę MS [wartość 6,8 mld USD] razem z Office 365 to wartość będzie 15,2 mld USD’. huh.

podobnie się czułem na prezentacji Archona na  Sysops/Devops gdzie przez pierwsze pół godziny nie byłem pewien o czym mówi… a chodziło to, że moje rozumienie chmury – bardziej PaaS i SaaS, rozmija się z projektami, o których mówił, gdzie aplikacje są budowane bardziej IaaS+docker. to była dobra lekcja (:

podsumowując – mówisz o chmurze, zacznij od kontekstu, czyli co przez to rozumiesz.

a na koniec trochę o ‚Project Olympus‚. jakoś do tej pory nie miałem okazji się z tym zderzyć a temat ciekawy. i znów pokazuje jak to świat stanął na głowie… to jest Open Compute Project – open source’owy projekt architektury data center, gdzie MS jest jednym z największych [największym?] kontrybutorem. i podczas gdy AWS, cytując z podlinkowanego artu:

We run our own custom-made routers, made to our specifications, and we have our own protocol-development team. It was cost that caused us to head down our own path, and though there’s a big cost (improvement)… the biggest gain is in reliability.

…w tym czasie MS staje się coraz bardziej integralną częścią open sourcowego świata, zarówno na poziomie dostosowywania swoich produktów do otwartych standardów, samego kodu źródłowego Linux i wielu aplikacji działających na tej platformie, aż po otwarte standardy hardware.

jest ciekawie.

eN.

 

kto ma licencję?

scenariusz

podczas migracji w hybrydzie jest taki dziwny moment, kiedy userzy są zawieszeni w dwóch środowiskach – onprem i online. skrzynki jeszcze onprem i czekają na swoją kolejkę do przerzucenia, ale już mają być włączone pozostałe usługi. zatem trzeba przypisać userom licencję z wyłączonym service planem dla Exchange Online – inaczej user będzie miał zdublowaną skrzynkę i część poczty nie będzie dochodzić [znaczy będzie, tylko nie do tej skrzynki co trzeba]. po jakimś czasie skrzynkę się migruje i włącza service plan dla usera. jest okres 3o dni ‚grace period’ kiedy wszystkie usługi – czy to Skype fB czy Exchange – działają bez licencji, m.in. po to, żeby bez względu na czas migracji był okres przejściowy na zrobienie porządq.

może się więc zdarzyć, że ktoś przez przypadek nie będzie miał włączonego service planu i po 3o dniach straci dostęp do mailboxa. np. wywalił się skrypt, albo ktoś zapomniał przy jakiejś fali migracyjnej to zrobić… whatsoever.

zarządzanie licencjami póki co jest niewygodne – z niecierpliwością czekam na zarządzanie licencjami prze grupy – a na razie, to właśnie zarządzanie licencjami jest sporą niedogodnością. konstrukcja obiektów licencyjnych jest dość nieprzyjemna, moduły MSOnline i AzureAD totalnie się różnią, co oznacza całkowite przepisanie starych skryptów [albo używanie v1 – póki co nie zapowiadają, że zostanie wyłączona], łącznie z logiką….

kto nie ma licencji?

.. to aqrat mega proste…

  • połączyć się do Exchange Online

  • połączyć się do AzureAD v2 [można i v1 – ale kod jest dla v2, trzeba mieć moduł AzureAD]

  • i sam kod

czego powyższa linijka nie wychwyci?

  • ktoś może mieć licencję, ale nie włączony service plan dla ExOL
  • ktoś może mieć licencję… np. na Project Online. i się nie wyświetli
  • skrzynki współdzielone nie potrzebują licencji

wyłączony service plan

a tu się zaczynają schody, bo trzeba zajrzeć do środka licencji. poniższy kod *nie jest skryptem* – to PoC, niechlujnie naskrobany na kolanie:

co jest źle w powyższym kodzie?

  • sprawdzany service plan jest dla licencji E3 – trzeba sprawdzić jak się nazywają service plany i obsłużyć różne typy licencji. tutaj robocze założenie, że wszyscy mają taką samą licencję… i że jest to licencja w ogóle zawierająca Ex
  • wykorzystywanie ‚write-host’ jako output jest dopuszczalne w roboczych sytuacjach, na szybko, ale jest bardzo złym zwyczajem w skryptach – trudno to potem obsłużyć, rozszerzyć, cokolwiek…

eN.

 

Send As w środowisq hybrydowym

scenariusz

przenosiny do o365 – codzienność. Hybryda Exchange – codzienność. teraz jak zaplanować migrację kont? alfabetycznie? a może lokalizacjami?

największym ogranicznikiem są uprawnienia dla skrzynek. w sfederowanej rzeczywistości nie wszystko jest przechodnie – uprawnienia nadane dla Exchange OnPrem niekoniecznie działają dla userów OnLine i vice-versa. oficjalny guide jest tu: https://technet.microsoft.com/en-us/library/jj200581(v=exchg.150).aspx . dla tego podstawowym wyznacznikiem powinny być skrzynki współdzielone, które powinny być przenoszone grupami -> skrzynka + wszyscy którzy mają do niej dostęp.

co do samego artu – pierwszą rzeczą, na którą warto zwrócić uwagę jest to, że dotyczy on wersji Exchange 2o13 i 2o16. niewprost jest zatem informacja, że Exchange 2o1o jest niewspierany. oficjalnie. ale nieoficjalnie działa tak samo – nie przetestowałem 1oo% przypadqw ale różnic nie widzę.

jest jednak ciekawe zdanie, na którym bym chciał się sqpić:

We don’t, however, support the use of the Send-As, Receive-As, or Send on behalf of mailbox permissions in hybrid deployments between on-premises Exchange and Office 365 organizations

z moich doświadczeń wynika, że jak najbardziej da się nadać SendAs dla dowolnej skrzynki. cały ambaras tkwi w tym, żeby uprawnienie nadać po dobrej stronie – tego DLA kogo są uprawnienia. zaraz pokaże na przykładzie.

jak to zrobić?

z tymi uprawnieniami to jest generalnie trochę namieszane – są aż 3 różne mechanizmy działając na różnych poziomach i do każdego jest inne polecenie. jest jak jest, i stało się tak, że jedna skrzynka jest lokalnie, druga zdalnie. co można zrobić?

środowisko:

  • testuser@w-files.pl jest na Ex 2o1o onprem
  • manager@w-files.pl jest zmigrowany do o365

przykładowe nadanie uprawnień dla skrzynki będzie wyglądało tak:

  • nadanie uprawnień Full Access, bo granularne nie działają. to uprawnienie działa na poziomie folderów w mailboxie.

  • nadanie Send on Behalf. to uprawnienie zapisywane jest dla mailboxa.

  • i na koniec uprawnienie Send As. to uprawnienie jest na poziomie obiektu Active Directory ponieważ wiąże się z delegacją uprawnienia. nie do końca rozumiem jak ten mechanizm jest obsługiwany przez Exchange, ale niewątpliwie informacja jest zapisywana dla obiektu AD. i tu jest clue dla działania SendAs dla hybrydy – ponieważ są dwa AD – OnPrem oraz OnLine, to najlepiej wykonać polecenie w obu, a na pewno musi być wykonane w AD, w którym jest obiekt korzystający z niego:

podsumowanie

no i działa.  a miało nie działać q:

eN.

 

 

office 365 – spojrzyj w przyszłość

office365 – jak zresztą wszystkie DevOpsowe zabawki – rozwija się bardzo szybko. czasem ciężko przygotować się do projektu bo nie wiadomo kiedy dana funkcjonalność się zmieni, pojawi lub zniknie. dodatkowym problemem jest to, że funkcje wdrażane są partycjami – i znów, coś co jest w GA dla jednego tenanta, może chwilę zając w innym…

a oto kryształowa, która przyszłość pokaże… office 365 roadmap

eN

wyłączenie odtwarzania video

doprowadzało mnie to czerwoności… czyta się jakiś artykuł np. techniczny, a tu wyskaqje filmik o d*pie maryny. a w FF wyłącza się bardzo łatwo:

about:config

media.autoplay.enabled:$false

eN.

Microsoft Teams – złe strony medalu

Problemy w MS Teams

ponieważ podzieliłem się ogólną oceną Teams, jak na członka Loży Szyderców przystało, czas podzielić się spostrzeżeniami, których raczej nie znajdzie się oficjalnych materiałach.

najciekawszy artyqł dotyczący słabości Teams znalazłem na Petri. poza opisywanymi komplikacjami związanymi z faktem, że nie do końca wiadomo gdzie tak na prawdę dane Teams, największym wynikającym z tego problemem jest fakt, że nie bardzo wiadomo jak tworzyć kopię zapasową danych, a zarazem bardzo łatwo je usunąć, nieomal przez przypadek.

usunięcie grupy o365

usunięcie jest stałe i nie ma tzw. ‚soft delete’ pozwalające na szybkie przywrócenie. jak może dojść do usunięcia całego projektu? otóż Teams oparte jest [m.in.] na mechanizmie Office 365 Groups. o365G są współdzielone z innymi aplikacjami – np. Planner. czyli jedna grupa jest podstawą dla wielu innych aplikacji. o obu tych rozwiązaniach – o365 Groups oraz Planner napiszę pewnie więcej w przyszłości ale teraz ciekawy, acz straszny scenariusz:

tworząc nowy zespół w Teams automatycznie tworzone jest wiele innych elementów: grupa o365, site SharePoint, plan w Planner i kilka innych elementów. Teams spina to w całość. plan można podpiąć w Teams jako zakładka albo wejść bezpośrednio przez aplikację Planner. no i załóżmy, że zrealizowaliśmy już zadanie w Plannerze i chcemy je usunąć wraz z taskami. robi się to klikając w trzykropek -> Edit Plan -> delete Plan… i tu zaczyna się ciekawie.

pomimo opisu ‚Delete Plan’ osoba, która się nie wczyta w treść ostrzeżenia dokona potwornej rzezi, usuwając grupę o365, a wraz z nią wszystko – Teams, doqmenty, portal SP i tak dalej… a ponieważ nie ma soft-delete ani kopii zapasowej… robi się bardzo smutno.

można powiedzieć, że o grupy o365 należy dbać jak o własne oko.

wiele planów

o ile z poziomu aplikacji Planner można założyć tylko jeden plan per grupa, o tyle z Teams można założyć kilka planówi – jako zakładki – czyli do jednej grupy będzie dowiązane wiele planów…. z tą drobną niedogodnością, że nie są one dostępne z poziomu Plannera. nie działają linki przekierowujące, a jeśli usunie się zakładkę, to pozostanie osierocony plan.

czyli – jeden zespół, jedno zadanie do zaplanowania…

synchronizacja grup

jakoś to jest dziwnie skonstruowane – jeśli założy się zespół, to grupa o365 widoczna jest natychmiast w panelu office365. ale jeśli założy się, lub zmodyfiqje grupę z poziomu panelu o365, to zmiana synchronizowana jest… do 24h [SIC!].

jest to ponoć w trakcie przeróbek i zachowanie powinno zmienić się w najbliższych miesiącach.

Skype

kolejnym problemem, a może w tym przypadku – ‚utrudnieniem’ – jest inkorporowanie usługi Skype for Business, nie korzystając ze standardowych bibliotek. to bardzo dziwny wynalazek, krytykowany również przez sam team odpowiedzialny za SfB w MS. wszystkie konwersacje prowadzone w ramach Teams nie są widoczne nigdzie w SfB ani zachowywane w mailbox, również Presence jest oddzielnym bytem. całe rozwiązanie działa rozłącznie z ‚lokalnym’ SfB i powoduje to sporo niejasności.

dostępność

Teams wymaga licencji. szczęśliwie dostępny jest w większości licencji, więc wewnętrznie dla firmy może to nie być problem, niemniej np. w projekcie w którym uczestniczę, ze względu na dużą ilość użytkowników, migracja następuje krokowo, a licencje przypisywane są użytkownikom w kolejnych falach migracji. w takim scenariuszu, duża część użytkowników nie jest w stanie współuczestniczyć w projekcie.

większym i powszechniejszym problem jest brak wsparcia dla kont z poza organizacji – ten feature jest zapowiedziany, z tego plotek wiem, że ma się pojawić w ciągu 2-3 miesięcy. zobaczymy.

inne problemy i niedogodności

to oczywiście tylko główne przykłady. według mnie ważnym problemem jest również brak możliwości tworzenia skrótów do pliqw w ramach Teams. powoduje to, że przesunięcie pliq zamiast być jedną z podstawowych operacji staje się krytyczną, i zostawia uszkodzone linki lub duplikaty.

innym problem jest brak możliwości linkowania doqmentów z OneDrive. to z kolei zaburza podstawową ideę pracy na pojedynczej instancji pliq. czyli jeśli zaczęliśmy pracę nad plikiem w OD, to trzeba go dodać do Teams i na wszelki wypadek skasować, żeby nie utrzymywać dwóch kopii.

ale i tak jest super

podobnych niedogodności zalazłem jeszcze kilka, właśnie w ramach obsługi pliqw i uprawnień. niemniej jeśli się wie co omijać – nie są to jakieś straszne problemy. biorąc pod uwagę szybkość rozwoju aplikacji o365 można spodziewać się, ze niniejszy wpis będzie stawał się nieaktualny i wkrótce będzie można o nim zapomnieć.

eN.

Microsoft Teams

razem

Microsoft Teams to najmłodsze dziecko Office365 – GA ledwie 4 miesiące temu. zgodnie z nazwą, jest to narzędzie ułatwiające pracę grupową. od lutego uczestniczę w projekcie wdrożenia Office365, w którym postanowiliśmy wykorzystać to narzędzie i sprawdzić co to jest w ogóle warte… i muszę przyznać, że Teams są REWELACYJNE.

jeszcze w lutym Kamil opowiadał o Teams ogólnie, na WGUiSW i trochę się podśmiewaliśmy, że kolejne niepotrzebne narzędzie – wystarczy już szmatławego Yammera, kulejącego SharePoint, przestarzałej poczty, i niedorobionego Skype for Business – po co kolejny tool, który nie daje w zasadzie nic nowego?

może stwierdzenie ‚nie potrafię sobie wyobrazić pracy bez MS Teams’ jest na tą chwilę przesadą, ale potrafię sobie wyobrazić projekty, gdzie staje się jedynym wykorzystywanym narzędziem komunikacji. ma olbrzymi potencjał i należy się z nim koniecznie zaznajomić. ma oczywiście wady – jak każda wczesna [i późna zresztą też (; ] wersja aplikacji, ale nie zamierzam się na początq sqpiać na złych stronach. zatem…

…czym MS Teams są, a czym nie są

w zasadzie, żeby zacząć od początq, powinienem opisać ‚Office365 groups’… ale nie skleja mi się to, zacznę zatem w typowy dla mnie sposób – gdzieś od środka.

jedną z największych bolączek we wszystkich projektach/firmach jest Poczta Elektroniczna aka e-Mail, wykorzystywana do wszystkiego. gdyby nie limity na wielkości załączniqw, to programy do obróbki video musiałyby obsługiwać serwery poczty jako storage. efekt jest taki, że każdy plik, nad którym się pracuje, kopiowany jest do wielu osób. te wprowadzają poprawki, odsyłają, tworząc kolejne wersje i kopie pliqw. wyszukiwanie aktualnej wersji, komentarzy do treści czy zmian, to masakra.

rozwiązaniem na te bolączki, już dawno temu, miał stać się SharePoint. miał to być prosty, intuicyjny CMS z bibliotekami pozwalający na współdzielenie różnego typu obiektów [pliki, kalendarze, kontakty, wiki etc] i co ważne – automatycznym wersjonowaniem. opis niemal ‚jak ulał’ pasuje do MS Teams… jaka jest zatem różnica? SharePoint owszem, daje wszystkie te możliwości techniczne, ale z pominięciem pierwszej części – ‚prosty i intuicyjny’. samo korzystanie z SP jest co najmniej nieprzyjemne, no i ten cholerny klient do synchronizacji bibliotek… niby jest NGSC a do dnia dzisiejszego sprawia problemy i nie wspiera bibliotek z ewidencjonowaniem. ile to już lat? 16! [SIC!] Microsoft strzelił sobie w kolano, nie potrafiąc przez tyle lat zrobić prostego narzędzia ułatwiającego korzystanie z bibliotek SP.

…aż pojawiły się MS Teams. to jest prosty, intuicyjny front-end, łączący w jednym miejscu wiele aplikacji Office 365 [i nie tylko] – SharePoint, o365 groups, Planner, SfB, Office WebApps i więcej. efektem jest przestrzeń do pracy grupowej, funkcjonująca w intuicyjny, ‚naturalny’ sposób. pojawiło się już tyle wideo prezentujących Teams, że nie jestem pewien czy jest sens pisać kolejną ‚instrukcję obsługi’ ale kilka słów od siebie dodam.

  • kolejne dwa problemy przy projektach – rzadko kiedy wszyscy wiedzą kto zajmuje się czym – zawsze są dziury, choćby z tego powodu, że pojawia się nowe, nietypowe zadanie i ‚kto to ma zrobić’. efektów jest wiele – od problemów ze znalezieniem właściciela akcji, po masy spamu projektowego, gdzie maile wysyła się do kilqnastu czy nawet kilqdziesięciu osób, tak na wszelki wypadek żeby dotarło. czasem okazuje się, że w nagłówq i tak zabrakło tej kluczowej postaci, a pozostali są wqrzeni, że dzień-w-dzień przychodzi masa informacji, która ich nie dotyczy. prosty mechanizm kanałów tematycznych, które może założyć każdy z członków, pozwala na wprowadzenie porządq. jednocześnie informacja pozostaje dostępna dla wszystkich, dzięki czemu może być łatwiej dostrzeżona, przekierowana i obsłużona

  • podczas dysqji pojawia się potrzeba dodania pliq [lub odwrotnie – pojawia się plik wymagający dysqsji] – wystarczy go dodać… i zacząć razem pracować. w trakcie edycji pliq [korzystając wersji Office Web], cały czas widać kontekstowy dialog. niby drobiazg – ale w końcu nie muszę przegrzebywać się przez stosy wątqw dotyczących tego samego pliq, w różnych wersjach! w jednym miejscu mam plik, oraz całą dysqsję, która go dotyczy.

  • w ramach kanału są różne potrzeby – planowanie/logistyka, materiały video, Knowlege Base… – i wszystkie te materiały można po prostu podczepić jako kolejna zakładka dla kanału. kolejne ‚niby nic’ – ale dzięki temu nie muszę trzymać oddzielnie bookmarków do różnych materiałów, w różnych aplikacjach. w prosty sposób możemy udostępniać je wszystkim, i do tego kontekstowo – co nie jest bez znaczenia. przykład z życia – w ramach jednego z wątqw projektowych, który mnie nie dotyczy, utworzony jest mały site SP, na którym coś tam sobie wymieniają z zewnętrznymi vendorami. generalnie mnie to nie interesuje, ale musiałem coś szybko zweryfikować. wyszukanie ‚jakiegoś’ URLa w mailach sprzed kilq miesięcy, wysłanych przez ‚jakąś’ osobę, to mówiąc delikatnie ‚strata czasu’. kończyło się zazwyczaj kolejnym mailem z pytaniem ‚czy ktoś widział, czy ktoś zna’. teraz po prostu wchodzę na kanał danej grupy, a strona jest podczepiona jako zakładka. poniżej przykład, gdzie na kanale ogólnym wisi mała aplikacja zrobiona na SP do zgłaszania i obsługi problemów w ramach projektu

  • proste mechanizmy, dzięki którym projekt nie jest tysiącem puzzli, porozrzucanych po rożnych aplikacjach, a każdy z członków widzi inne elementy układanki. w końcu jest zorganizowany w ramach jednej przestrzeni [workspace], i każda nowa osoba dołączająca do projektu w naturalny sposób ma dostęp do całości, w zorganizowany sposób, zamiast musieć odtwarzać całość.

podsumowując

dawno nie byłem tak hmmm… podekscytowany żadnym gadżetem czy apką [Polacy raczej się nie ‚get excited about’, ale o dziwo tym razem, to słowo pasuje]. a zatem to pierwszy i na pewno nie ostatni wpis w tym temacie. aplikacja ma potencjał, ale bez wiedzy o jej wadach i problemach można zrobić srogą krzywdę całemu projektowi, niemal przez przypadek.

na koniec jeszcze jedna drobna dygresja dotycząca oczywistej oczywistości – że choćby nie wiem jakie narzędzia i jak intuicyjne dostarczyć, trzeba chęci nauczenia się pracy nimi/z nimi. niejednokrotnie zdarzyło mi się pracować w projekcie, gdzie SP był podstawą pracy grupowej, współdzielenia doqmentów, w projekcie oczywiście wykwalifikowani i wielokrotnie certyfikowani inżynierowie… a tam w bibliotece pliki typu:

  • Projekt XYZ_v1.o.docx
  • Projekt XYZ_v1.2.docx
  • Projekt XYZ_v2.o.docx

…przyzwyczajenia prawdziwą naturą człowieka…

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.