Passwordless dla Microsoft Account

niedawno Microsoft ogłosił funkcję 'passwordless’ dla kont 'Microsoft Account’ – czyli tych nie-firmowych/nie-szkolnych. wszystkie arty dot. braq haseł rozpływają się w zaletach tego rozwiązania i ah, oh [fapfap] … więc daruję sobie powtarzanie zalet braq hasła. funkcję włączyłem i … obniżyłem sobie bezpieczeństwo dostępu.

trzeba jasno odgrodzić passwordless dla firm i funkcje Windows Hello for Business, który zakłada MultiFactor Auth – z naciskiem na ’Mutli’, od passwordless dla kont MS. zastanawiałem się jak to będzie praktycznie zrealizowane, włączyłem –  i osobiście mnie to trochę przeraża – ponieważ z MFA wracamy do Single Factor Auth, którym jest nasz smartfon. nie spodziewam się, aby wiele osób miało na kontach dane warte ucięcia komuś kciuka [i przechowywania w odpowiednich warunkach], ale mimo wszystko logowanie, w którym JEDYNYM czynnikiem jest kliknięcie na ekranie telefonu, budzi u mnie alarm. jakiś czas temu, o ile pamiętam, była opcja dodatkowego zabezpieczenia apki Microsoft Authenticator PINem. dziś znajduję w opcjach jedynie 'require biometric or PIN’ ale bez możliwości wyboru – wygląda na to, że ustawienie pobierane jest z systemu (sprawdzałem na Android) – a więc czy będzie to odcisk, czy PIN – będzie to TEN SAM odcisk/PIN, co do reszty. ciekawy jestem czy ta formuła faktycznie zadziała – dowodem będzie, że przez najbliższe kilka lat będzie funkcjonować w tej postaci, będzie używana, a w prasie nie zaczną się pojawiać arty o tym jak to wypłynęła porcja danych/zdjęć/doqmentów bo ktoś zgubił smartfona. imho bardzo szybko pojawi się nowa wersja apki lub ustawienie, które doda jakiś drugi czynnik – może PIN, może kod SMS, czy choćby wybór obrazka. co ciekawe w ustawieniach konta nadal widzę 'Two-step auth ON’ – pomimo, że loguję się teraz tylko przykładając palec do ekranu.

niezależnie od mojej subiektywnej opinii, każdy powinien zrewidować swoje ustawienia haseł i upewnić się:

  • czy na pewno mamy skonfigurowane dodatkowe metody uwierzytelnienia?
  • czy je pamiętamy? [np. czy znamy odpowiedzi do pytań weryfikacyjnych]
  • czy ustawienia tych metod nie zapętlają się?

jeśli naszą drugą metodą jest adres email, który ma włączone MFA oparte o tą samą apkę – to tracąc telefon nie zalogujemy się nigdzie. powinniśmy mieć realną alternatywę inaczej czeka nas długie przebijanie się przez support. jeśli coś takiego wydarzy się gdy nie mamy czasu, będziemy w kropce. każdy powinien poświęcić czas chociaż raz, i 'na niby’ zgubić telefon. wyłączyć go i sprawdzić gdzie jest w stanie się zalogować, czego braqje, ile to trwa czasu. w firmach na podobne scenariusze powinny istnieć procedury, ale sprawę ułatwia, że zazwyczaj jest kilq administratorów, więc w większości scenariuszy są sobie w stanie pomóc na wzajem. prywatnie, nas czeka przebijanie się przez linie wsparcia – warto przynajmniej spróbować, żeby oszacować ile to może trwać czasu i jak w ogóle taka procedura wygląda.

z jednej strony firmy dwoją się i troją, żeby było bezpieczniej a zarazem łatwiej… wygoda na pewno się zwiększa – ale w momencie kiedy coś się sypnie, zaczynają się schody. i wcale nie jest łatwo wymyśleć i skonfigurować swoje konta tak, aby faktycznie odzyskać awaryjnie dostęp szybko i bezpiecznie.

ciekaw jestem opinii – bo na razie nie trafiłem na te negatywne czy krytyczne. moja jest dość mieszana – niby wygodnie, ale [w przypadku kont prywatnych] na pewno nie bezpieczniej!

eN.

 

„nie można zainstalować drukarki – brak dostępu”

repairtiaaa… dawno nie było takiego wpisu q: czasem trafiają do mnie zadania czysto administracyjne. taki lajf. ostatnio trafił do mnie taki właśnie kejs jak w tytule – przy próbie dodania drukarki sieciowej na Windows 1o, wyskaqje takiż komunikat.. albo podobny (; minęło trochę czasu od kiedy zajmowałem się politykami GPO, ale finalnie i tak to nie one były przyczyną problemu. przeważnie chodzi o fakt, że użytkownik nie ma możliwości instalacji sterowników, i można to rozwiązać konfigurując dwa ustawienia w GPO: link tutaj

  • Computer Configuration\Policies\Administrative Templates\System\Driver Installation\Allow non-administrators to install drivers for these devices setup classes
    • Enabled
    • Device class GUID of printers: {4d36e979-e325-11ce-bfc1-08002be10318}
  • Computer Configuration/Policies/Administrative Templates/Printers/Point and Print Restrictions
    • Enabled
    • Security Prompts: When Installing Drivers for a new connection = Do not show warning or elevation prompt

ale… okazało się, że to nie pomogło. rozwiązaniem było ustawienie uprawnienia 'view server’ na poziomie Print Servera:

printerpermission01printerpermission02

eN.

Windows 1o: run as different user

repairdzisiejszy wpis przygotowany jest przez Adriana. ostatnio zrobiło się mocno PowerShellowo, a dzięki takim wpisom udaje się wrócić do pierwotnej formuły W-F, ponieważ pomimo, iż pojawiają się fragmenty kodu, to temat jest czysto systemowy (:

„Jako priority number uno przyjmuję udowadnianie jak bardzo wizerunek człowieka związanego z branżą IT różny jest względem przyjętych stereotypów (podobno czasem się udaje) . Jestem pasjonatem technologii Microsoft, a szczególnie rodziny produktów System Center, nie zapominam jednak o innych dobrych rozwiązaniach. Architekt , Analityk, Administrator (AAA?) – a gdy się ściemni PowerShell Ninja. Słowem nieco udomowiony Geek zarażający swoją pasją Syna. I odpowiadając na pytanie – Nie, do snu nie czytam mu dokumentacji technicznej ;-)

.oOo.oOo.oOo.oOo.oOo.oOo.oOo.oOo.oOo.oOo.oOo.oOo.oOo.oOo.oOo.oOo.oOo.oOo.oOo.oOo.oOo.

Pracując od dłuższego czasu na najnowszym systemie operacyjnym ze stajni Microsoftu- Windowsie 10 coraz to bardziej doskwierał mi brak bezpośredniej możliwości uruchomienia programu w kontekście innego użytkownika z poziomu GUI a konkretnie z wyszukanych aplikacji w Menu Start.  Administratorom systemowym niejednokrotnie potrzebna będzie możliwość uruchomienia danej aplikacji nie tylko przy pomocy zwiększonych uprawnień (elevated rights) ale również przy wykorzystaniu zupełnie innego konta.

Niestety funkcjonalność ta domyślnie nie jest dostępna  w Menu Start – opcje które widzimy ograniczają się do poniższej listy

image1

Zanim powiemy sobie w jaki sposób dodać tutaj magiczny „Run as different user” powiedzmy w jaki sposób na szybko możemy spróbować obejść ten problem nie rozpisując się zbytnio nad każdym z nich

  1. Możemy wyszukać aplikacje i przypiąć ja do TaskBar’u po czym użyć dobrze nam znanej kombinacji
    Shift + prawy przycisk myszy na skrócie i wybór opcji „Run as a different user”  – tadam
    unnamed
  2. Dla oldschoolowców znających ścieżkę aplikacji lub posiadających ścieżkę do niej w zmiennej typu path możemy wykorzystać  Command Line i opcje Runas z przysłowiowego palca
    Najprostszy syntax wygląda następująco  :

    Runas /user:login@domena aplikacjadouruchomienia.

    unnamed02
    Więcej na temat dodatkowych opcji i samego syntaxu aplikacji Runas znajdziecie tutaj – https://technet.microsoft.com/en-us/library/bb490994.aspx

  3. Oczywiście można by wykorzystać tez powershella który jak zwykle daje nam „nieco” więcej możliwości Commandlet który może przyjść nam z pomocą to „start-process” z przełącznikiem credentials (lub jak kto woli „runas”)

unnamed03Więcej na temat dodatkowych opcji i samego syntaxu commandletu Start-Process znajdziecie tutaj – https://technet.microsoft.com/library/hh849848.aspx lub za pomocą komendy „get-help start-process” (pamiętajcie o aktualizacji „helpa” ;) )

 

Ale przecież nie o to nam chodzi – mimo całej wspaniałości jaka niewątpliwie jest powershell lub możliwość klikania jednak fajnie by było dorzucić sobie opcje uruchomienia w kontekście innego użytkownika bezpośrednio z GUI

Jak więc to zrobić? –  z pomocą przyjdzie nam pewna drobna modyfikacja rejestru – aby nie dawać uprawnienia każdemu polecam dokonać edycji w hive Current User

GUI version  – Regedit

Uruchamiamy Menu start i wpisujemy Regedit – uruchamiamy  i przechodzimy do ścieżki

HKEY_CURRENT_USER\SOFTWARE\Policies\Microsoft\Windows

Tworzymy nowy klucz (Key) o nazwie Explorer  jeżeli jeszcze nie istnieje

W nowo powstałym kluczu tworzymy wartość typu Dword o nazwie ShowRunasDifferentuserinStart i zmieniamy jej wartość na 1

Restart i gotowe ;)

GUI Version – Gpedit

Uruchamiamy Menu start i wpisujemy gpedit  – uruchamiamy

W nowo otwartym oknie przechodzimy do „user Configuration” -> Administrative Templates -> “Start Menu and Taskbar” – następnie wyszukujemy ustawienie „Show ‘Run as Different user’ command on Start”  – przestawiamy ustawienie na Enabled ;)

No Restart Needed!

PS version 

Odpalamy Powershella I

#Begining 
Set-Location HKCU:\SOFTWARE\Policies\Microsoft\Windows 
if((Test-Path .\Explorer) -eq $false) 
    { 
        New-Item Explorer -Force 
    } 
Set-Location .\Explorer 


if((Get-ItemProperty -Path . -Name ShowRunasDifferentuserinStart -ErrorAction SilentlyContinue) -eq $null) 
    { 
        New-ItemProperty -PropertyType Dword -Name "ShowRunasDifferentuserinStart" -Value 1 -Path . 
    } 
        ELSE
   { 
            Set-ItemProperty -NAME "ShowRunasDifferentuserinStart" -Value 1 -Path . 
    } 
#End

Lazy Version

Chcemy mieć to z głowy ? Pobieramy plik Reg i uruchamiamy go dwukrotnie klikająć

http://1drv.ms/1MjsSaT

Restart i gotowe ;)

Jezli opcja konfiguracji która wybraliśmy wymaga restartu to po jego dokonaniu powinniśmy widzieć już dodatkowa opcje w menu kontekstowym po kliknięciu prawym przyciskiem myszy na aplikacji w menu start tadam.

image5

.oOo.oOo.oOo.oOo.oOo.oOo.oOo.oOo.oOo.oOo.oOo.oOo.oOo.oOo.oOo.oOo.oOo.oOo.oOo.oOo.oOo.

eN.

 

AD FS – zmiana certyfikatu SSL

AD FS (Active Directory Federation Services) to usługa bezpiecznego udostępniania tożsamości poprzez jednorazowe logowanie (SSO), dzięki tej usłudze jesteśmy w stanie zalogować się do aplikacji zewnętrznych wykorzystując login/hasło konta z Active Directory.

W przypadku mojej konfiguracji są to dwa serwery działające w trybie farmy AD FS, dzięki nim użytkownicy domeny którą zarządzam są w stanie zalogować się wykorzystując swój login/hasło np. do Google Gmail lub Office 365. Nadmienię tylko, że w trybie farmy konfiguracja serwerów jest synchronizowana – zmiany wprowadzamy tylko na jednym, głównym serwerze, przy próbie ręcznego wprowadzenia zmian na drugim serwerze dostaniemy informację, że zmiany możliwie są do wprowadzenia tylko i wyłącznie na serwerze oznaczonym jako „Primary”

….

Jak dobrze wiecie certyfikaty wygasają ;-) , więc pewnie za jakiś czas każdy kto zajmuję się usługą Active Directory Federation Services stanie przed problemem zmiany certyfikatu SSL.

AD FS 2.2 (2012 R2) nie wymaga IIS, więc zmiana certyfikatu odbywa się trochę inaczej.

Byłem przekonany, że zmiana certyfikatu Service communication odpowiedzialnego za szyfrowanie wszystkich połączeń klientów wystarczy, okazało się,że nie. Przeglądarka twardo informowała, że korzysta ze starego certyfikatu…

Zmiana certyfikatu Service communication

AD FS Management -> Service -> Certificates -> Set Service Communication Certificate

Sam certyfikat, który wykorzystywany jest przez przeglądarkę zmienimy już tylko wykorzystując polecenia PS.

Set-AdfsSslCertificate -Thumbprint thumbprint

Do sprawdzenia czy został zmieniony:

Get-AdfsSslCertificate

Na koniec restart usługi AD FS, test w przeglądarce.

ozz.

Active Directory Fine-Grained Password and Account Lockout Policy

AD DS: Fine-Grained Password Policies, czyli możliwość tworzenia polis dotyczących haseł dla poszczególnych security groups lub użytkowników. Uwaga: nadpisują domyślne ustawienia z GPO ;-) .

Ostatnio stanąłem przed problemem kilku kont, w których nie mogłem pozwolić sobie na blokowanie po „x” próbach błędnego logowania. Oczywiście ustawienia dotyczące blokowania kont, złożoności haseł, długości haseł itd. miałem zdefiniowane w Default Domain Policy Pamiętałem, że od czasu wersji 2003 można ustawić w domyślnej polisie wszystkie ustawienia dotyczące hasła, ale… nakłada się to na wszystkich użytkowników. W takim razie jak ustawić inne wartości długości hasła, jego wygasania, czasu „lockout-u” itd.?

Co prawda do wersji 2012 R2 włącznie, nie zmieniło się, to że wszystkie ustawienia dotyczące haseł definiujemy w polisie domyślnej, natomiast od wersji 2008 wprowadzono Fine-Grained Password Policies. W bardzo prosty sposób czy to przy wykorzystaniu GUI czy też wszechobecnego PS jesteśmy w stanie ustawić inne ustawienia dla użytkowników lub całych wcześniej zdefiniowanych grup zabezpieczeń.

Dla przykładu zdefiniujmy polisę, która będzie miała dla jednej grupy zabezpieczeń ustawienia:

-długość minimum 8 znaków
-historię 6 haseł
-musi spełniać wymagania złożoności
-maksymalny wiek hasła 90 dni
-brak blokowania konta po nieudanych logowaniach

Na początek GUI (przykład na 2012 R2).

Otwieramy Active Directory Administrive Center, po lewej stronie rozwijamy naszą domenę -> System -> Password Settings Container

PPM -> New -> Password Settings

Otrzymamy okno jak poniżej:

1

Wypełnijmy poszczególne pola według wymagań, jakie wypisaliśmy powyżej. Dla wyjaśnienia Precedence, to priorytet. W sytuacji, kiedy mamy jedną polisę dla grupy X, drugą polisę dla użytkownika Y, który jest w grupie X, to na użytkownika Y nałożona zostanie polisa z niższą wartością Precedence.

2

Na koniec pozostaje wybranie grupy zabezpieczeń lub jednego/kilu użytkowników dla których ustawienia mają nadpisać „Default Domain Policy”. W sekcji „Directly Applies To” klikamy Add i wybieramy, dla kogo ma być aplikowana.

Ot cała filozofia. W celu sprawdzenia, na jakie konta nakłada się utworzona polisa należy skorzystać z polecenia w PowerShell Get-ADFineGrainedPasswordPolicy.

Utworzenie tej samej polisy przy wykorzystaniu PowerShell’a sprowadza się do wydania poniższego polecenia:

New-ADFineGrainedPasswordPolicy -Name Operatorzy_Pass_Policy `
-DisplayName Operatorzy_Pass_Policy `
-Precedence 1 `
-ComplexityEnabled $true `
-ReversibleEncryptionEnabled $false `
-PasswordHistoryCount 6 `
-MinPasswordLength 8 `
-MaxPasswordAge 90.00:00:00 `
-MinPasswordAge 00.00:00:00

Następnie w celu dopisania kont lub grupy zabezpieczeń dla których ustawienia mają funkcjonować

Add-ADFineGrainedPasswordPolicySubject -Identity Operatorzy_Pass_Policy -Subjects operatorzy

Po więcej informacji odsyłam tutaj.

 

Windows Updates z linii poleceń

jakoś ostatnio zauważam coraz więcej problemów z Windows Updates po stronie klienta – a to nic nie wyświetla, a to nie działa w ogóle 'wejście’ do listy update’ów – jakby link był martwy… no i oczywiście dochodzą serwery bez GUI.

a przecież po zainstalowaniu wersji Core dostępna jest commandline’owa wersja instalacji poprawek. wystarczy więc zajrzeć gdzie to sobie leży … i:

PS C:\Windows> cscript C:\Windows\System32\en-US\WUA_SearchDownloadInstall.vbs
Microsoft (R) Windows Script Host Version 5.8
Copyright (C) Microsoft Corporation. All rights reserved.

Search for for (A)ll updates or (R)ecommended updates only? a

Searching for all applicable updates...

List of applicable items on the machine:

1> Microsoft Silverlight (KB2668562)
2> Security Update for Windows 8, 8.1 and Windows Server 2012, 2012 R2 (KB2917500)
3> Microsoft SQL Server 2012 Service Pack 2 (KB2958429)

Select an option:
(A)ll updates, (N)o updates or (S)elect a single update?

[...]

warto zapamiętać: C:\Windows\System32\en-US\WUA_SearchDownloadInstall.vbs. w razie co, łatwo znaleźć:

ls c:\windows -recurse -ea SilentlyContinue -filter WU*.vbs

nie wiem czemu to jest w vbs, tak samo jak nie rozumiem czemu serwery w2k12 bez GUI otwierają cmd, ale wewnątrz widać proste polecania, które można łatwo przepisać na jakiś ludzki język (:

eN.

Lepsze wrogiem dobrego

Na dobre nastał Ms Office 2013. Funkcjonalność nowych wersji zgubiłem gdzieś w okolicach 2007, ale z tym da się żyć. Rozumiem też, że nowe wersje są konieczne z wielu powodów, głównie finansowych. Nie zmienia się jedynie procent wykorzystania możliwości kolejnych Officów przez „standardowego użytkownika”, który od wersji 95 oscyluje w granicach 1.
Nie o tym jednak jest ten wpis.
Cały czas staram się wskazywać klientom, że rozwiązania IT takie jak Ms Office to nie tylko edytor do napisania listu motywacyjnego, ale cały ekosystem, który odpowiednio użyty potrafi drastycznie zwiększyć wydajność każdej instytucji. Cały czas też spotykam się z tzw. „barierą Crtl-C/Crtl-V” – która jasno pokazuje, że te dwa skróty klawiszowe są maksymalnym pułapem wykorzystania funkcjonalności najlepszego programu biurowego poprzez „zwykłego użytkownika”. Fakt, że w roku 2014 wykorzystanie śledzenia zmian przy pracy nad dokumentem wciąż jest ewenementem wywołuje myśli samobójcze w działach IT i nie tylko ale też nie jest tematem tego wpisu.
Do rzeczy zatem. Na nic moje starania, gdy odbijam się od wściekłego użytkownika, który nie może pracować, bo „pan informatyk zainstalował nowe i zepsuł”  Potwierdzone, co prawda jedynie moim przeczuciem statystyki awaryjności Offic’a 2013 a ZWŁASZCZA Outlooka z ostatniego pół roku, które dotknęły wszystkich – od domowych użytkowników wersji „zgodny z oryginalną” po korporacje z domeną i tych z Officem 365 mówią jedno – coś poszło nie tak.
Zwiechy przy ładowaniu, przycinanie się, aż po całkowitą niemożność załadowania profilu wszystko po zainstalowaniu Office’a 2013. Dotyczy nie tylko Outlooka, ale także pozostałych programów.
Zanim dotrą łatki, rozwiązanie które działało w ok 95% przypadków.

Disable hardware acceleration

1. Run regedit (Win + R ; „regedit”)
2. Browse to HKEY_CURRENT_USER\Software\Microsoft\Office\15.0\Common
3. Create a New Key and name it „Graphics”
4. Select Graphics, right-click on the right panel and create a New DWORD (32-bit) Value and name it DisableHardwareAcceleration.
5. Enter Value data as 1

Nie mam bladego pojęcia, co robi ten wpis w rejestrze, ale działa.

Postaw ptaszka

Od wersji Windows Server 2008 mamy dostępną w AD opcję „ProtectedFromAccidentalDeletion”. Generalnie nigdy bym nie pomyślał, żeby kiedykolwiek miało by sens używanie tej opcji, ale od niedawna dodaję ją jako wymaganą i  k_r_ y_t_y_c_z_n_ą  praktycznie w każdej mojej dokumentacji, która zawiera opis obiektów AD.

Generalnie nie ma większego problem gdy skasujemy obiekt komputera czy użytkownika. Nawet jeśli jest to konto serwisowe, po kilku minutach możemy sytuacje  naprawić. Ja jednak byłem świadkiem sytuacji w której jakiś durny program, lub admin … a generalnie admin nawet jak był to program …skasował obiekt serwisu klastra (hosta Cluster Service). To spowodowało, że przestała działać cała instancja SQL oparta na tym klastrze i inne usługi (np.. MSDTC). Obiekt nie jest prosty, więc od tak nie można go sobie stworzyć. Cały klaster SQL oparty na MSCS w zasadzie byłby do przeinstalowania a dokładniej każdy node musiał by być wyciągnięty z clustra, następnie trzeba by było usunąć wszystkie ślady po cluster service i poinstalować wszystko od początku. Roboty, przy kilku nodach na około 8 godzin (a produkcja leży!). Na szczęście jest na to myk .. Ale o tym w kolejnych wpisach.

Generalnie myślałem, że problem był wyjątkowy i że już nic gorszego się stać nie może. Środowisko bez  SPoF. Cały sprzęt nadmiarowy, urządzenia sieciowe dobrej klasy, load balancery, macierze itp. … Ale nie doceniłem adminów.

Po kilku dniach kolejna awaria. Ktoś dopatrzył że są 3 podobne do siebie nazwy komputerów… SuperProdDB1, SuperProdDB2 i SuperProdDB. Popingał, popatrzył na listy VMwareów i postanowił zrobić porządek. Skasował wpisy DNS SuperProdDB. Był to host name dla instancji klastra SQL  składającego się z w/w nodów.

Naprawa tego poszła już znacznie sprawniej.

Generalnie … postaw ptaszka!

skąd brać materiały edukacyjne?

w IT od dawna funkcjonuje automatyczny forward na kwerendę 'a jak to się robi?’ -> RTFM. w dzisiejszych czasach nawet nie trzeba za bardzo czytać – pojawiły się media audio i video, podcasty, webinaria i tak dalej. jest tego na prawdę dużo. do poczytania jet oczywiście:

  • cały technet dla ITPpro. czyli wszelkie step-by-stepy, installation guide, whitepapers, opisy funkcji i dużo, dużo więcej.
  • MSDN dla devów. czyli głównie SDK i dostęp do bebechów

są to jednak materiały bardziej dla PROsów. co z tymi, którzy zaczynają i chcieliby się nauczyć? tutaj w sukurs przychodzą materiały video. jeśli chodzi o polski site z prezentacjami w naszym ojczystym, gdzie warto zacząć naukę – jest virtualstudy. można tam znaleźć zarówno krótkie prezentacje jak całe serie – szkolenia.

 

sam Microsoft również dostarcza wiele fajnych projektów – channel9 na zasadzie vbloga z różnymi tematami, w szczególności Edge – jeden z fajniejszych 'programów’ w TV9. ostatnio pobawiłem się w Microsoft Virtual Academy i muszę przyznać, że bardzo spodobała mi się idea. MVA jest wirtualną szkołą, gdzie dostarczane są pełne szkolenia z danego produktu. dodany jest też ciekawy sposób zachęcania do edukacji – punkty przyznawane za ścieżki, małe egzaminy przygotowujące do tych prawdziwych, za które również są punkty, możliwość tworzenia swojej 'ścieżki nauki’. braqje jeszcze szkoleń do niektórych produktów a sam interfejs pozostawia trochę do życzenia, niemniej uważam, że produkt jest bardzo wartościowy. największą wadą na tą chwilę jest brak lokalizacji – całość przeznaczona jest dla tych, którzy z angielskim problemu nie mają. zgaduję, że w przyszłości pojawią się napisy tak, jak to ma miejsce np. w prezentacjach TED.

nic tylko siedzieć i się uczyć.

AFAIK nie ma innej firmy, która dostarczałaby taką ilość materiałów edukacyjnych dla swoich produktów. uważam, że to potężna broń, która bardzo mocno przyczynia się do popularności tych a nie innych produktów. chapeau bas.

eN.