O mojej skrzynce z narzędziami, w której znajdziemy: #ansible #terraform #packer #docker #vagrant #capistrano.
Video: https://www.youtube.com/watch?v=fPZ7JZJGPTE
LocalStack to framework udostępniający łatwe w użyciu mocki usług stosu AWS. Podczas prezentacji Maciej skorzystał z serwisu zbudowanego z użyciem serverlessowego Boilerplate autorstwa The Software House oraz skorzystał z takich usług AWS jak API Gateway, DynamoDB, Lambda, StepFunctions czy SQS. Następnie omówił podejście do testowania rozwiązania. Dzięki prezentacji możecie poznać wady i zalety LocalStack. A na koniec Maciej pokazuje przepływ testowy w GitHub Actions, który zwiększy pewność przyszłych zmian.
Optymalizacyjna magia, czyli jak wyciągać króliki z kapelusza SzymonSadlo
Wydajność aplikacji to trudny temat, często specyficzny dla danej aplikacji, a optymalizacja czasami postrzegana jest jako czarna magia. Czy z tego kapelusza można wyciągać białe króliki? Można. Na bazie konkretnej aplikacji pokażę na co zwracać uwagę oraz jakie usprawnienia wprowadzać, aby ze swojego kodu, od podstaw, krok po kroku wyciągnać coraz więcej.
O mojej skrzynce z narzędziami, w której znajdziemy: #ansible #terraform #packer #docker #vagrant #capistrano.
Video: https://www.youtube.com/watch?v=fPZ7JZJGPTE
LocalStack to framework udostępniający łatwe w użyciu mocki usług stosu AWS. Podczas prezentacji Maciej skorzystał z serwisu zbudowanego z użyciem serverlessowego Boilerplate autorstwa The Software House oraz skorzystał z takich usług AWS jak API Gateway, DynamoDB, Lambda, StepFunctions czy SQS. Następnie omówił podejście do testowania rozwiązania. Dzięki prezentacji możecie poznać wady i zalety LocalStack. A na koniec Maciej pokazuje przepływ testowy w GitHub Actions, który zwiększy pewność przyszłych zmian.
Optymalizacyjna magia, czyli jak wyciągać króliki z kapelusza SzymonSadlo
Wydajność aplikacji to trudny temat, często specyficzny dla danej aplikacji, a optymalizacja czasami postrzegana jest jako czarna magia. Czy z tego kapelusza można wyciągać białe króliki? Można. Na bazie konkretnej aplikacji pokażę na co zwracać uwagę oraz jakie usprawnienia wprowadzać, aby ze swojego kodu, od podstaw, krok po kroku wyciągnać coraz więcej.
Vicodein - Krystian Knapik o tym jak .NET Core wspomaga budowę nowoczesnych, wydajnych i świetnych pod względem User Experience aplikacji SPA. Także o tym co oferuje framework i dlaczego jest odpowiednim wyborem. Idzie nowe!
Vicodein - Krystian Knapik o tym jak .NET Core wspomaga budowę nowoczesnych, wydajnych i świetnych pod względem User Experience aplikacji SPA. Także o tym co oferuje framework i dlaczego jest odpowiednim wyborem. Idzie nowe!
This is my presentation about Red Gate SQL Doc that I have presented on one of the meatings of Lodzka Grupa Profesjonalistow IT & .NET. Presentation in Polish.
4Developers 2015: Orleans - aplikacje, które skalują i dystrybuują się same -...PROIDEA
Krzysztof Suszka
Language: Polish
Duża dostępność chmur spowodowała, że tworzenie olbrzymich, skalowalnych systemów stało się dostępne dla każdego. Jednak sama chmura nie rozwiązuje wszystkich problemów. Nadal trzeba włożyć sporo wysiłku w taką konstrukcję systemu, która pozwoli z tej chmury efektywnie korzystać. Orleans jest eksperymentalną platformą, która próbuje odnieść się do tego problemu, zrzucając z programisty obowiązek myślenia o fizycznej dystrybucji elementów aplikacji. Orleans dostarcza API zbudowane w oparciu o sprawdzony Actor Model. W czasie prelekcji przedstawione zostaną podstawowe mechanizmy działania tej platformy oraz prosty przykład pokazujący fragment jej możliwości.
Spróbujemy odpowiedzieć na pytanie: Jaki framework będzie dla nas najlepszy? Opowiem dlaczego to pytanie jest takie ważne oraz o tym czego potrzebujemy by znaleźć na nie odpowiedz, która wcale nie jest taka trywialna.
Prezentacja dotyczy architektury aplikacji internetowych od strony back-endu oraz front-endu działającego w środowisku wykonania przeglądarek internetowych.
O prezentacji:
Chcąc uzyskać type safety w projekcie możemy zdecydować się na samodzielne tworzenie, utrzymywane oraz współdzielenie typów. Inną możliwością jest skorzystanie z gotowego rozwiązania (np. generatora typów), które stworzy typy za pomocą komendy. Obie te opcje wymagają jednak dodatkowego nakładu pracy. tRPC niweluje ten problem pozwalając na natychmiastową synchronizację zmian między backendem a frontendem.
Podczas prelekcji opowiem o obecnych możliwościach i ograniczeniach tRPC, a także kiedy warto z tego narzędzia skorzystać. Dodatkowo podczas live codingu pokażę jak szybko i wygodnie można stworzyć API za pomocą tRPC i frameworku Next.js.
O prelegencie:
Karierę w IT zaczęła niecałe 3 lata temu jako programistka React Native. Szybko jednak zaciekawił ją także web dev i backend, co rozpoczęło jej drogę jako programistka full-stack. Uwielbia śledzić i wykorzystywać w projektach nowinki ze świata JavaScriptu. Poza pracą spędza czas uprawiając przeróżne sporty - od treningu siłowego i roweru, poprzez jogę, aż po narty.
Wprowadzenie do Kubernetesa oraz omówieni korzyści K8S w kontekście mojego doświadczenia z dwóch startupów, jeden z branży mobile ecommerce i jeden FinTech.
4Developers 2015: Property-based testing w języku Scala - Paweł GrajewskiPROIDEA
Paweł Grajewski
Language: Polish
Techniki Test-driven development (TDD) oraz Behavior-driven development (BDD) są dziś powszechnie stosowaną metodą poprawy jakości wytwarzanego oprogramowania. Obie zakładają w swej konstrukcji budowę zestawu przypadków testowych, ale stworzenie poprawnego i kompletnego zestawu takich przypadków jest nie lada sztuką. Często nie jesteśmy w stanie przewidzieć wszystkich sytuacji brzegowych, w skutek czego nie możemy być pewni na ile w rzeczywistości poprawny jest kod naszej aplikacji
Z pomocą może przyjść nam technika property-based testing, która w miejsce testowania poprawności działania systemu dla skończonego zbioru przypadków testowych wprowadza koncepcję “badania jego właściwości”. Idea ta zrodziła się już wiele lat temu, a dzisiaj znowu wraca do łask wraz ze wzrostem popularności funkcyjnych języków programowania. Zaufało jej już wiele dużych, złożonych projektów m.in. projekt kompilatora języka Scala oraz framework Akka. Prawidłowo zastosowana jest w stanie zapewnić wymierne korzyści - zwiększyć pokrycie kodu testami, ale przede wszystkim uchronić nas przed wieloma typowymi niedopatrzeniami.
Prezentacja przybliży koncepcję property-based testing oraz zademonstruje tę technikę na przykładach.
2. Agenda
• Rynek procesorów
• Idea programowania równoległego
• Parallel Extensions na platformie .NET
• Task Parallel Library od kuchni
• Parallel LINQ
• Visual Studio Async CTP
• Podsumowanie
• Bibliografia
• Pytania
3. Rynek procesorów
• Prawo Moore’a
Liczba tranzystorów w układzie elektrycznym
podwaja się co 18-24 miesiące.
• Kres procesorów jednordzeniowych
• Alternatywa:
Procesory wielordzeniowe
5. Przyszłość …
• Analitycy z firmy Forrester Research przewidują,
że już w 2012 roku rozbudowane procesory
wyposażone w 64 rdzenie będą instalowane w
komputerach domowych.
• Już niedługo zabraknie programistów z
doświadczeniem w tworzeniu aplikacji
wykorzystujących przetwarzanie równoległe. –
Dan Reed
… To już ostatni dzwonek, aby przekonać młodych
programistów o wartości przetwarzania równoległego
- dodaje
6. Procesory wielordzeniowe
"Różnica jest taka jak między szybkim
sportowym autem, a autobusem
szkolnym. Pierwszy szybko przewiezie
dwie osoby, a drugi, choć trochę
wolniej - czterdzieści„
– Dan Reed
7. Równoległe a Współbieżne
• Współbieżność – wykonywane wątki są przełączane co
pewien ustalony (krotki) czas, przez co mamy wrażenie
równoległego ich wykonywania.
SINGLE CORE
• Równoległość – wątki są wykonywanie fizycznie
równolegle na różnych jednostkach obliczeniowych
MULTI CORE
9. Parallel Extension
• Biblioteka .NET napisana w C#
• Przenośne, lekkie środowisko uruchomieniowe
• Wsparcie wielowątkowości
• Wspólny model wyjątków
Nowość na platformie .NET w wersji 4.0
11. Walk Tree
• Tabela wyników:
Wysokość Liczba Czas – Czas – Czas -
drzewa węzłów synchronicznie wątki równolegle
10 2047 49,238 s 190,833 s 27,779 s
9 1023 25,310 s 63,875 s 13,771 s
8 511 12,674 s 23,630 s 7,030s
7 255 6,375 s 10,237 s 3,511 s
12. Task Manager
LQ
WG
LQ LQ
T6
WG WG T7
GLOBAL QUEUE
T5
T4 LQ
T3
T2 WG
T1
13. Imperative Task Parallelism
Task zamiast Thread
• Zalety
• Brak nakładu związanego z przełączaniem
kontekstu
• Mniejsze zużycie pamięci
• Równomierny rozkład pracy
• Skalowalność
15. Imperative Data Parallelism
• Parallel class
• Zbiór statycznych metod
• Metody pomocnicze do tworzenia Task’ów
• Realizacja podstawowych wzorców
• For
• ForEach
• Invoke
17. Declarative Data Parallelism
• PLINQ to „Równoległy” Linq to Objects
• Prawie N – krotny wzrost wydajności
• Minimalny wpływ na dotychczasowy Linq
var q = from p in people.AsParallel()
where p.age < MaxAge &&
p.age > MinAge &&
p.state == STATE
order by age ascending
select p;
18. Visual Studio Async CTP
• Nowy model programowania asynchronicznego
• Zrezygnowanie z używania metod zwrotnych
• Nowe słowa kluczowe: async, await
19. Visual Studio Async CTP
public void displayPageTitle()
{
var client = new WebClient();
client.DownloadStringCompleted += whenCompeted;
client.DownloadStringAsync(
new Uri("http://www.pw.edu.pl"));
}
void whenCompleted(object sender, EventArgs e)
{
WriteLinePageTitle(e.Result);
}
20. Visual Studio Async CTP
public async void displayPageTitle()
{
WriteLinePageTitle(
await new WebClient().DownloadStringTaskAsync(
new Uri("http://www.pw.edu.pl")));
}
public static Task<string>
DownloadStringTaskAsync(
this WebClient webClient,
Uri address);
21. Visual Studio Async CTP
public async void displayPageTitle()
{
WriteLinePageTitle(
await new WebClient().DownloadStringTaskAsync(
new Uri("http://www.pw.edu.pl")));
WriteLinePageTitle(
await new WebClient().DownloadStringTaskAsync(
new Uri("http://www.elka.pw.edu.pl")));
WriteLinePageTitle(
await new WebClient().DownloadStringTaskAsync(
new Uri("http://www.samsung.com")));
}
22. Kilka rad...
• Szukajmy w naszych aplikacjach niezależnych
zadań i uruchamiajmy je równolegle. np.
rekurencja
• Unikajmy synchronizacji
• Operacje wykonywane równolegle powinny być
czasochłonne.
• Przekształcajmy jedynie pętle zewnętrzne
23. Więcej informacji…
Channel 9
http://channel9.msdn.com/tags/Parallel+Extensions/
Microsoft Professional Developers Conference 2010
http://microsoftpdc.com
MSDN
http://msdn.microsoft.com/en-us/concurrency/
MSDN Blogs
http://blogs.msdn.com/pfxteam
http://blogs.msdn.com/nativeconcurrency
http://www.danielmoth.com/Blog/
http://www.bluebytesoftware.com/blog/
Mój Blog
http://blog.fones.pl