CloudExpert.pl wspiera Startup Weekend w Poznaniu–zapraszamy! (zniżka w tekście)

Czerwiec 7, 2015 Dodaj komentarz

Z wielką przyjemnością chciałbym ogłosić, że zdecydowaliśmy się wesprzeć wydarzenie Startup Weekend w Poznaniu, który odbywać się będzie już od 12 do 14 czerwca.

Tym razem tematyką jest Smart City czyli bardzo blisko tego co w ramach CloudExpert robimy na codzień z Naszymi klientami wykorzystując chmurę obliczeniową, beacony, telefony i wbudowaną w nie nawigację.

image

Zapraszamy do rozmowy na miejscu, będziemy dostępni dla uczestników wydarzenia od soboty.

Bardzo chetnie doradzimy w:

  • modelu biznesowym
  • zastosowaniu chmury w rozwiązaniu
  • koncepcji aplikacji mobilnej
  • … i pewnie wielu innych aspektach, o które zdecydujecie się Nas zapytać.

Mamy dla Was jeszcze ostatnie bilety z zniżką, oto kod (30% zniżki):

https://swpoznansmartcity.eventbrite.com/?discount=SWPOZfriends

Kategorie:Innowacja Tagi:

Instalujemy Windows (10) używając USB

Szczęście w nieszczęściu na biurku leży nieużywany Surface 2 (i5, dysk SSD), który chciałbym by posłużył mi do testów nowego Windows 10.

Windows 10 dla osób, które uczestniczą w programie Windows Insiders jest obecnie w wersji 10074 i taki też ściągnąłem.

Aby wszystko zadziałało ISO, które mamy musimy zainstalować na Pendrive, który ma ponad 4GB używając specjalnego narzędzia – ja używam narzędzia RUFUS – http://rufus.akeo.ie/

Po ściągnięciu narzędzia uruchamiamy i wybieramy plik do nagrania (ISO)

image

Upewniamy się, że wszystko jest ustawione w podobny sposób

image

i klikamy start

image

Wkładamy Pendrive do komputera… i restart

Po instalacji cieszymy się nowo zainstalowanym systemem

IMG_1458

Kategorie:Microsoft, Windows 10

Zapraszam Cię na mini-konferencję pod nazwą Build Viewing Party 29 kwietnia w Microsoft Polska

Kwiecień 21, 2015 Dodaj komentarz

Mam przyjemność zaprosić wszystkich na organizowane wspólnie z Microsoft Polska wydarzenie (mini-konferencję) wieczorem, 29 kwietnia.

Oto zaproszenie:

Interesują Cię technologię Microsoft takie jak Windows 10, Windows Phone, Visual Studio czy HoloLens …?
Mimo szczerych chęci nie masz możliwości uczestniczenia w konferencji BUILD 2015 w San Francisco i usłyszeć o tym wszystkim z dużej sceny?

Jeżeli wszystko się zgadza – mam dla Ciebie propozycję. Zapraszam na specjalne wydarzenie organizowane przez społeczność wraz z Microsoft Polska, gdzie podczas kilku godzin będziesz mieć możliwość:

  • Zobaczenia SESJI GŁÓWNEJ (Keynote) konferencji BUILD
  • Uczestniczenia w mini-wykładach o technologiach zaprezentowanych podczas SESJI GŁÓWNEJ
  • Dyskusji z innymi uczestnikami w ramach zorganizowanych Paneli Dyskusyjnych

Będziemy na Ciebie czekać w budynku Microsoft Polska w Warszawie przy Alejach Jerozolimskich 195A na parterze. Nie zapomnij się wcześniej zarejestrować, tylko osoby zarejestrowane wezmą udział w losowaniu nagród oraz w kolacji.

AGENDA:

17:00 – 17:45 – Rejestracja uczestników

17:45 – 18:00 – Networking, dyskusje przy kawie, …

18:00 – 20:00 – Transmisja SESJI GŁÓWNEJ z konferencji BUILD

20:00 – 20:30 – Chwiila na ochłonięcie, dyskusje – KOLACJA

20:30 – 21:00 – SESJA (TEMAT BĘDZIE PODANY PODCZAS KONFERENCJI) – MARCIN BORECKI

21:00 – 21:15 – PANEL DYSKUSYJNY

21:20 – 21:50 – SESJA (TEMAT BĘDZIE PODANY PODCZAS KONFERENCJI) – MARCIN BORECKI

21:50 – 22:00 – PANEL DYSKUSYJNY

22:00 – 22:30 – Konkurs i losowanie nagród

22:30 – 23:00 – Podsumowanie wydarzenia



Konferencja BUILD w zakresie tematycznym obejmuje technologie firmy Microsoft – w tym roku Microsoft bardzo silny nacisk będzie kładł podczas wykładów na Azure, Windows 10, Office 365 oraz HoloLens.


Konferencja jest organizowana przez:

Microsoft DX (dawniej DPE)

pod patronatem

/

Dodatkowo zapewniamy jedzenie dla zapisanych!!!

 

Link do rejestracji http://buildwarszawa2015.evenea.pl/

Kategorie:.NET, Azure, Microsoft Tagi:

SQL Server i programista .NET–czyli jak uruchomić procedurę składowaną z getdate i nie zwariować

Kwiecień 17, 2015 Dodaj komentarz

Dzisiaj chciałem sobie potestować procedurę składowaną, która ma następującą definicję:

CREATE PROCEDURE [dbo].[Event_GetDetailedInfo]
    @UserId uniqueidentifier,
    @FromDate datetime,
    @City nvarchar(4000),
    @Tag nvarchar(4000),
    @LastEventId uniqueidentifier

 

używając oto takiego testu:

exec [dbo].[Event_GetDetailedInfo1]
    @UserId = NULL,
    @FromDate  = getdate(),
    @City  = ‚Warsaw’,
    @Tag = ‚c#’,
    @LastEventId  = NULL

 

i jakież było moje zdziwienie kiedy dostałem błąd:

Msg 102, Level 15, State 1, Line 8
Incorrect syntax near ‚)’.

Wyszło na to, że mam błąd przy GetDate(), a tak na prawdę przy nawiasach…choć GetDate ma przecież wymagane nawiasy…

Wyszło na to, że nie mozna przekazać wyniku funkcji do uruchomienia metody – dobrze wiedzieć!!

Aby zadziałało wpisuję:

DECLARE @tmp DATETIME

SET @tmp = GETDATE()

exec [dbo].[Event_GetDetailedInfo1]
    @UserId = NULL,
    @FromDate  = @tmp,
    @City  = ‚Warsaw’,
    @Tag = ‚c#’,
    @LastEventId  = NULL

 

i działa.

Kategorie:SQL

Nomicja Microsoft do programu Microsoft Azure Cloud Advisor

W zeszłym tygodniu Microsoft nominował mnie do elitarnego programu Microsoft Azure Cloud Advisor, w którym będę miał jeszcze bardziej realny wpływ na to jak Azure będzie rozwijany i postrzegany na rynku.

Dodatkowo zyskuję dostęp do osób na całym świecie tak samo pozytywnie zakręconych Azure-em jak ja(!)

 

clip_image002

Tysiące godzin spędzony z samą technologią, setki godzin spędzone na salach warsztatowych z klientami są podstawą do konstruktywnej rozmowy mojej z zespołem Azure.

Jeżeli ktoś z Was ma jakieś uwagi – prywatne, od klienta, … – proszę dzielić się w komentarzach.

Kategorie:Azure Tagi: ,

Surface (2)–jak uruchomić boot z USB

Teoretycznie prosta sprawa, nawet człowiek nie myśli o tym aż do momentu kiedy faktycznie wkłada do tabletu Microsoftu klucz USB i czekając na uruchomienie jego zawartości widzi zawód…na ekranie – nie działa…hmmm?

W normlanej sytuacji powiedziałbym wejdę do BIOSu i ustawię USB jako napęd startowy, ale tutaj nie ma BIOSu.

Innym razem pomyślałbym, że mogę wcisnąć jakiś klawisz na klawiaturze by pokazało się MENU, ale nie każdy Surface przecież ma klawiaturę.

maxresdefault

Rozwiązaniem okazuje się boczny przycisk ściszania – tak tak, VOLUME DOWN.

Wystarczy zrobić następujące kroki by wszystko zadziałało jak chcemy:

  1. Upewniamy się, że Surface jest wyłączony
  2. Wkładamy klucz USB do portu
  3. Wciskamy VOLUME DOWN
  4. Wciskamy przycisk Uruchomienia tabletu

Po chwili zobaczymy, że tablet się włącza, a klucz USB zadziałał.

Działa to na każdym SURFACE, czyli wersjach RT, 1, 2, 3 PRO i 3.

Kategorie:Microsoft, Surface

Azure w realnych zastosowaniach: Aktualizacja paczki produkcyjnej Cloud Service bez posiadania kodu źródłowego aplikacji czyli historia z życia wzięta na produkcji

Styczeń 19, 2015 Dodaj komentarz

Dzisiaj to co opiszę to wyzwanie, które przytrafiło mi się kilka dni temu w mojej firmie CloudExpert.pl. Klient, który do mnie przyszedł musiał podmienić na stronie www certyfikat bezpieczeństwa SSL ponieważ wygasł, ale nie miał kodu źródłowego do rozwiązania, które miał postawione w chmurze – ot taki przypadek gdzie firma X, która to wdrożyła zdążyła się zwinąć i zniknąć zanim przekazała kod i dokumentację.

 

SIC!!

 

Rozwiązanie było wdrożone w Azure jako Cloud Service (czyli wysłane do azure w postaci paczki cspkg).

Pierwsza moja myśl była taka, że zaloguję się do portalu Azure, podmucham trochę na szczęście, wyślę nowy certyfikat, wpiszę jego Thumbprint w ustawieniach serwisu i już!!
Można by pomyśleć, że zlecenie zostanie wykonane w ciągu maksymalnie 1 godziny. Niestety naiwność jest tutaj kluczowym aspektem tej historii..

 

Podejście naiwne

 

Zrobiłem jak opisałem wyżej, dostałem od klienta nowy certyfikat w formacie pfx i hasło do niego. Wszedłem do ustawień serwisu w Azure do zakładki Certificates

image

i dodałem nowy certyfikat używając opcji Upload.

Potem na zakładce Configure podmieniłem w sekcji Certificates aktualny Thumbprint

image

 

Niestety po uruchomieniu strony strona pokazała mi cudownie czerwono, czarno, biały komunikat o błędzie web.config.

Widząc błąd web.config można było zobaczyć na moim czole lekki pot, nie dlatego, ze nie lubię plików web.config, ale dlatego, ze to oznaczało ingerencje w DEPLOYMENT paczki, do której przecież nie mamy kodu źródłowego, ba! nawet nie mamy paczki, która została wysłana kiedyś przez magicznych programistów do Azure.

Bardzo na tym etapie mnie zastanawiało dlaczego jest błąd web.config. Ale by tego się dowiedzieć potrzebuje go zobaczyć, a by go zobaczyć musze przystąpić do “poważniejszej pracy”.

i to tyle z mojego podejścia naiwnego.

 

Podejście zwane Praca Magika czyli zdobywamy paczkę

 

Mam kilka problemów startowych z dalsza praca. Po pierwsze by zmodyfikować web.config potrzebuje “poprosić” Azure o to by mi oddal paczkę, która została kiedyś przez programistów wysłana do chmury.

Po lekkim działaniu w R&D okazało się to możliwe sposobami cywilnymi czyli takimi, które nie wymagają wciągania do sprawy aspektu znajomości w firmie na M.

Pierwsza myśl naiwna trochę mogła by być taka, ze gdzieś na portalu mogę taka paczkę uzyskać, albo po prostu jest w jakims storage – ale nic bardziej mylnego. Musze do tego zaangażować tak zwane Azure Management API. Microsoft wystawia jest zarówno w formie serwisu RESTowego oraz SDK dla C#. Po lekkich bojach z REST poszedłem do sprawdzonego C# – ale i tu nie było tak prosto…

Aby moc z C# się podłączyć do Azure i wykonać tam jakakolwiek operacje musimy ściągnąć tak zwany profil publikowania z Azure, który jest plikiem zawierającym dwie bardzo ważne dla Nas informacje:

  • Subscription ID
  • Certyfikat w formie łańcucha znaków

Do dzieła – gdzie jest ten profil publikowania? Ano tutaj musimy (w sumie to nie musimy, ale nie mam pamięci do adresów URL) zaangażować PowerShell i to nie byle jaki bo Azure PowerShell

image

w ktorym wpisujemy komende

image

wtedy uruchamia sie okno przegladarki internetowej z logowaniem do konta Azure:

image

Po zalogowaniu ukazuje się okno z wyborem subskrypcji – wybieramy, potwierdzamy i czekamy aż ściągnie się plik na Nasz dysk.

image

i mamy to czego potrzebujemy – sekcja ID i sekcja ManagementCertificate to to czego szukaliśmy!.

Odpalamy Visual Studio, tworzymy projekt w C# aplikacji konsolowej i przechodzimy do instalowania paczki NuGET i instalujemy to co zaznaczyłem

image

przystępujemy do programowania

image

Powyższy napisany kod wymaga głębszego wyjaśnienia.

Metoda startowa Main odpala metodę w klasie statycznej, która napisałem po to by odwołać się do Azure. Ta metoda według mnie nie wymaga wyjaśnień.

To co wymaga wyjaśnień to kod metody Metoda(). Zaczynamy w niej od inicjalizacji klasy X509…, która będzie przechowywała Nasz certyfikat. Do tej zmiennej kopiujemy jako zawartość w miejsce XXX_… ciąg znaków z pliku publikowania, który przed chwila ściągnęliśmy. Certyfikat jest potrzebny do autentykacji w Azure Naszej aplikacji.

Dalej inicjalizujemy dostęp do subskrypcji podając certyfikat i subscription id, który tez mamy z pliku.

Kolejny krok to utworzenie klienta, który pozwoli “rozmawiać” z mechanizmem w Azure odpowiedzialnym za zarzadzanie serwisami z maszynami wirtualnymi (Cloud Services) – wystarczy mu podać zmienna dostępowa do subskrypcji.

Kluczowa dla Naszej operacji jest metoda BeginGettingPackageByNameAsync. To ta metoda będzie w stanie wydobyć paczkę z Azure. Ma ona jeden mankament, nie pozwala sciagnac paczki bezpośrednio, a wysłać ja na storage Azure’owy. To pociąga za sobą to ze musimy stworzyć storage w ramach Naszej subskrypcji, stworzyć tam Public lub Private Container i adres całości wkleić w miejsce adresu do Azure Storage w moim kodzie powyżej.

Niewyjaśnione są jeszcze dwa wcześniejsze parametry. Aby moc je wyjaśnić musimy przejść do Naszego Cloud serwis w portalu Azure’owym, kliknąć w niego i przejść na zakładkę Dashboard:

  • Nazwa, która widzimy w nagłówku to nazwa do wklejenia w NazwaSerwisu
  • Po lewej stronie przesuwając stronę w dol. znajdziemy pole Deployment Name i wklejamy w kolejna zmienna.
  • Po uruchomieniu aplikacji Nasza paczka na pewno będzie już na storage.

image

    Paczka nie będzie tam sama, dodatkowo Azure skopiuje do pliku konfiguracje tak zwany CSDEF, która Nam się przyda przy wgrywaniu Nowej paczki do Azure.

Kolejny krok to ściągniecie paczki na komputer, ja używam do tego narzędzia Azure Storage Explorer (https://azurestorageexplorer.codeplex.com/) – wchodzę do narzędzia, dodaje nowe konto, podaje nazwę storage i klucz dostępowy API. Przechodzimy do katalogu, w którym jest paczka i ściągamy plik CSPKG – na pewno ma wiele megabajtów.

 

Naiwności cześć druga – czyli rozłupujemy paczkę

 

Na szkoleniach opowiadam czasami o tym, ze paczka, ktora tworzy Visual Studio to plik ZIP. Nie klamie, to plik zip tylko z innym rozszerzeniem, dlatego pierwsze co robie, to zmieniam rozszerzenie pliku na ZIP i rozpakowuje.

Po rozpakowaniu widzę cos takiego:

image

widzę kilka dziwnych plików i jeden bardzo duży plik. Szukam ogólnie plików DLL i stron ASPX i nigdzie nie widzę – ciągle interesuje mnie ten plik CSSX…

…ryzykuje, zmieniam mu rozszerzenie na ZIP i próbuje rozpakować – BINGO – działa, to tez był ZIP.

Zawartość wygląda mniej więcej tak:

image

chodzę nerwowo po katalogach i BINGO po raz drugi, widzę w approot aplikacje! Myślę sobie jestem uratowany.

Szukam pliku web.config, przez który w ogóle się w to wszystko bawimy i widzę co jest nie tak:

image

Ktoś używa starego certyfikatu do usługi Microsoft Identity… myślę sobie tragedia, ale z drugiej strony podmienię zawartość Thumbprint i po sprawie.

Tak robię – podmieniam.

Nie zastanawiam się długo co zrobić dalej, przechodzę katalog wyżej, pakuje to wszystko do formatu ZIP i zmieniam rozszerzenie do CSSX, usuwam stary plik CSSX, a nowy nazywam tak samo jak stary i wkładam do pierwszego rozpakowanego katalogu. Kolejna operacja wydaje się być oczywista, pakuje całość do ZIP i zmieniam rozszerzenie na CSPKG.

Wchodze na portal, klikam w Cloud Service, wybieram Dashboard i klikam na belce dolnej UPDATE.

image

Teraz wszystko wydaje się znowu proste, wybieram w sekcji package FROM LOCAL i wybieram nowy plik CSPKG, a w konfiguracji wybieram FROM STORAGE i szukam chwile po storage gdzie jest plik, który sam Azure włożył mi na storage i działam! Daje OK i czekam i czekam i czekam i czekam… i po chwili EXCEPTION – BAD Argument. Try again. Myślicie, ze nie próbowałem? Z kilka razy. Poddałem się, nie działa.
Finalnie paczka nie zadziałała ponieważ Azure uznał, ze ktoś naruszył jej integralność, sumy kontrolne poukrywane w plikach się nie zgadzały i finalnie nie zadziałało.

 

Mierzymy siły na zamiary

 

Myślę myślę myślę i mam. Spróbuje przekonwertować paczkę na inny format, może w innym formacie da się edytować paczkę – skąd wiem o innym formacie? Słyszałem, ze są co najmniej dwa formaty tworzenia paczek do Azure. Skoro moja paczka jest w formacie X, to może format Y będzie edytowalny. Odpalam na razie CSPACK, które zajmuje się tworzeniem paczek w konsoli. Na razie znajdziemy jak uruchomimy konsole Azure CMD

image

jak wpiszemy CSPACK i damy enter to zobaczymy liste opcji. W opcjach jest m.in

image

wpisuje komendę

image

i błąd! cóż za załamanie… !!!!

Ale nie poddaje się i pobieram SDK 1.8 z strony Microsoft Azure – wersja z 2012 roku. Co za czasy…

Po zainstalowaniu uruchamiam konsole CMD dla Azure SDK w wersji 1.8 i widzę takie cos:

 

image

wpisuje komendę i

image

nie ma błędu, ale tez nie wiadomo czy działa. Faktycznie widzę na pulpicie nowy plik choć jest o polowe mniejszy, poprzedni ma 44 MB, a ten ma 21 MB. Dziwne.

Zmieniam rozszerzenie pliku NOWY.CSPKG na NOWY.ZIP i rozpakowuje i co za niespodzianka…

image

Chodzę po katalogach i brak moich plików, same dziwne pliki, np: jest tu katalog który ma tysiące plików bez rozszerzenia

image

i tym katalogiem zainteresowałem się bliżej, bo klikając na dowolny plik i otwierając go w notatniku zacząłem widzieć pliki ASPX, DLLki… czyli jakby ktoś wszystkim plikom odebrał nazwę i rozszerzenie i włożył w plaska strukturę do jednego katalogu…

Skoro tak, to gdzieś musi być spis tych plików – i faktycznie jest, jest to pik package.xml – o jeden stopień wyżej w hierarchii katalogów.

Wszedłem do pliku package.xml i zacząłem szukać web.config

image

i faktycznie był, tu tez dowiedziałem się ze web.config to tak na prawdę LocalContent/e923bf66c1114dc0b7d6888f13d6bd01 – znalazłem plik i podmieniłem mu zawartość na właściwa – w końcu to mój poszukiwany web.config

Teraz najgorszy moment, spakowalem calosc do pliku ZIP i nadalem rozszerzenie CSPKG – dalej nie wiem czemu zawartosc jest dwa razy mniejsza niz oryginal ale na razie ignoruje ten fakt. Zastanawiam sie czy portal Azure’owy rozumie ten format paczek, bo to moja jedyna przeszkoda teraz – ale co tam, ryzykuje. Wchodze jeszcze raz do okna UPDATE

image

i jak wyżej już opisywałem robię identycznie. Dodaje plik cspkg z dysku lokalnego, a plik z konfiguracja z Storage. Czekam czekam czekam… i czekam i czekam i czekam… i czekam i czekam i czekam… Widzę komunikat i nie wierze, komunikat

Completed!

 

Podsumowanie

 

Zycie pisze różne scenariusze. Siedzę w Azure już od 6 lat, widziałem sporo, wiem sporo – ale ten przypadek był bardzo ciekawy i powiem szczerze pierwszy takiego rodzaju. Klient z portalem, którego nie ma w postaci kodu, nie da się go zbudować, nie ma tez paczki i należy zaingerować w paczkę i zaktualizować portal.

To był bardzo ciekawy przypadek, intelektualnie wyczerpujący, ale ciekawy. Więcej proszę!

Kategorie:Azure