Webpack - Czym jest webpack i dlaczego chcesz go używać? - wersja krótkaMarcin Gajda
Narzędzia takie jak Grunt i Gulp są coraz częściej wypierane z użycia przez swojego następce, webpacka. Wynika to z prostego powodu – w kwestii pakowania assetów rozwiązuje on domyślnie wiele problemów, z którymi tamte narzędzia radzą sobie gorzej. Ta prezentacja omawia te zagadnienia i pokazuje jak skonfigurować webpacka od zera.
Prezentacja opisuje różne techniki optymalizacji aplikacji ASP.NET. Omawiane są role poszczególnych warstw wpływających na wydajność - od optymalizacji kodu po stronie klienta (techniki stosowane na poziomie kodu HTML i JavaScript) przez różne poziomy stosowania cache, wybrane ustawienia konfiguracyjne IIS aż po same techniki optymalizacji na poziomie kodu ASP.NET.
Webpack - Czym jest webpack i dlaczego chcesz go używać? - wersja krótkaMarcin Gajda
Narzędzia takie jak Grunt i Gulp są coraz częściej wypierane z użycia przez swojego następce, webpacka. Wynika to z prostego powodu – w kwestii pakowania assetów rozwiązuje on domyślnie wiele problemów, z którymi tamte narzędzia radzą sobie gorzej. Ta prezentacja omawia te zagadnienia i pokazuje jak skonfigurować webpacka od zera.
Prezentacja opisuje różne techniki optymalizacji aplikacji ASP.NET. Omawiane są role poszczególnych warstw wpływających na wydajność - od optymalizacji kodu po stronie klienta (techniki stosowane na poziomie kodu HTML i JavaScript) przez różne poziomy stosowania cache, wybrane ustawienia konfiguracyjne IIS aż po same techniki optymalizacji na poziomie kodu ASP.NET.
Nowe, potężne narzędzia do tworzenia stron internetowych pojawiają się niemal codziennie. My w zespole postanowiliśmy jednak cofnąć się o krok i postawić na to co proste, ale użyteczne. Efekt? Korzyści dla zespołu i dla klienta. Podczas prezentacji opowiem o tym, co zyskaliśmy oraz wprowadzę słuchaczy w świat Hugo – nowoczesnego generatora stron statycznych.
Co nowego w VS 2013 dla programistów ASP.NET?Bartlomiej Zass
Sesja z konferencji Microsoft Technology Summit 2013 na temat nowości, które pojawiły się w ASP.NET 4.5.1 oraz Visual Studio 2013 dla web deweloperów. Poruszane zagadnienia to m.in.: zmiany w IDE / Web Essentials, Web Forms, ASP.NET MVC 5, OWIN, SignalR, Web API 2
DynamoDB jest z nami od dłuższego czasu i pomimo rosnącej popularności dla części z nas logika kryjąca się za DynamoDB nie wydaje się być jasna. Wymaga od nas zmiany myślenia o strukturze danych, zmiany naszych przyzwyczajeń oraz dostosowania się do mocno wyznaczonych reguł. W swojej prezentacji Marcin postara się wytłumaczyć skąd biorą się różnice pomiędzy dobrze nam znanym światem SQL a światem NoSQL. Opowie również o tym, jak zacząć modelowanie tabel oraz czym są i do czego służą GSI.
Nowe, potężne narzędzia do tworzenia stron internetowych pojawiają się niemal codziennie. My w zespole postanowiliśmy jednak cofnąć się o krok i postawić na to co proste, ale użyteczne. Efekt? Korzyści dla zespołu i dla klienta. Podczas prezentacji opowiem o tym, co zyskaliśmy oraz wprowadzę słuchaczy w świat Hugo – nowoczesnego generatora stron statycznych.
Co nowego w VS 2013 dla programistów ASP.NET?Bartlomiej Zass
Sesja z konferencji Microsoft Technology Summit 2013 na temat nowości, które pojawiły się w ASP.NET 4.5.1 oraz Visual Studio 2013 dla web deweloperów. Poruszane zagadnienia to m.in.: zmiany w IDE / Web Essentials, Web Forms, ASP.NET MVC 5, OWIN, SignalR, Web API 2
DynamoDB jest z nami od dłuższego czasu i pomimo rosnącej popularności dla części z nas logika kryjąca się za DynamoDB nie wydaje się być jasna. Wymaga od nas zmiany myślenia o strukturze danych, zmiany naszych przyzwyczajeń oraz dostosowania się do mocno wyznaczonych reguł. W swojej prezentacji Marcin postara się wytłumaczyć skąd biorą się różnice pomiędzy dobrze nam znanym światem SQL a światem NoSQL. Opowie również o tym, jak zacząć modelowanie tabel oraz czym są i do czego służą GSI.
How to Improve Your Technical Test Ability - AADays 2015 KeynoteAlan Richardson
We often work on improving the testability of an application to better support our testing. And what if, in addition to this, we actively improved our "Test Ability"? Because then we can take advantage of the new and existing application features during our testing. Alan will describe the steps he has taken to improve his Test Ability. The main examples will be drawn from his experience of testing web and HTTP based applications. Alan will explain how you can use the inbuilt browser features to help you, and describe add-ons you can use. Also, how you can chain external tools like sniffers and proxies, and why you would want to. Because, and this is more important than the individual tool examples, Alan will describe how he models an application to identify gaps in his knowledge and tooling, and then improves his Technical Test Ability by filling those gaps.
In 2011, Symetra introduced its employee "Rules of Engagement" to help promote a more participatory culture- where feedback is encouraged, resources are shared and relationships are strong. The result? Symetra experienced a cultural shift that increases collaboration and encourages individuals to speak up.
Politie verklaart oorlog aan dronken bestuurdersThierry Debels
De geïntegreerde politie is op zoek naar nieuwe ademanalysetoestellen .
Op basis van het aantal bestelde mondstukken kunnen we afleiden dat het aantal controles de komende jaren sterk zal toenemen.
In jaar 1 (2017) gaat het om 100.000 mondstukken. Dat aantal stijgt naar 176.000 in jaar 2. Vervolgens gaat het naar 249.000 in jaar 3 om in jaar 4 op 318.000 stuks te landen.
In de jaren nadien worden telkens 318.000 stuks besteld.
Het toont aan dat het de politie menens is om dronken rijden hard aan te pakken.
Greetings from Virtue Insight,
I am happy to invite you and your colleagues to be a sponsor/ delegate for our upcoming “7th Annual Clinical Trials Summit 2016” The conference will Be held on 14th May 2016, The Lalit Hotel, Mumbai, India.
Following our past six highly successful events, this event focuses on “A Critical Guide for Successfully Conducting “7th Annual Clinical Trials Summit 2016” It gives me great pleasure in welcoming all of you to The Virtue Insight’s “7th Annual Clinical Trials Summit 2016”. I wish and pray that all our efforts will be beneficial to our industries folks at large.
CONFIRMED SPEAKERS FROM :- Takeda Pharmaceuticals (UK), Clinical Research & Development, Cadila, Sanofi Aventis, Johnson & Johnson, GNH India, Clintech India, Boehringer Ingelheim, Reliance Life Sciences, Abbott, Glenmark Pharmaceuticals, Sanofi, Nishith Desai Associates, Novartis, Tata Consultancy Services, Janssen India (Pharmaceutical companies of Johnson & Johnson), SIRO Clinpharm, and few more..
CONFERENCE BOOKING DETAILS:-
• Standard Price (10th April 2016):- 1 or 2 Delegates - (INR 7,000 + Tax (14.5%) per delegate)
• Group Discounts – 3 or 4 Delegates - (INR 6,500 + Tax (14.5%) per delegate)
• Group Discounts – 5 and above Delegates - (INR 5,500 + Tax (14.5%) per delegate)
• Conference Sponsor & Exhibition Stall - Should you wish to Sponsor, or purchase a Exhibition Stall (Booth) or a paid Speaker Slot, you can simply email your interest and queries to TEL: + 91 9171350244 or deepak@virtueinsight.co.in, deepakrajvirtueinsight@gmail.com
In case you or any of your colleagues might be interested in participating in the same, please let me know and I will be happy to call you and help you with the registration.
Thank you for your time and consideration. I look forward to hearing from you.
PS: - Please refer your friends or colleagues by forwarding this email to anyone you think may benefit from it.
Best Regards,
Deepak Raj
Delegate and Sponsorship Sales
Virtue Insight
Gsm - + 91 9171350244
Tel - + 91 44 65515693
Skype - edeepakraj143
This is my presentation from Denver Startup Week 2016 on security for applications and servers. This presentation covers everything you need to know about securing a Linux server and your application.
Service workers - bądź online, nawet kiedy jesteś offline!The Software House
Tomasz Wylężek: Nazwa Service Workery na pewno niejednemu z nas kojarzy się z Web Workerami, dla których w większości aplikacji nie ma zbyt dużego zastosowania. Czy SW to tak samo mało pożyteczny "Worker", czy może krok milowy w rozwoju przeglądarek? Na prezentacji omówię podstawy Service Workerów i postaram się odpowiedzieć na wyżej zadane pytanie.
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.
Krótka prezentacja na temat możliwości platformy Google Web Toolkit oraz przedstawienie sposobu stworzenia nowego projektu dla GWT w środowisku Eclipse.
W prezentacji przedstawię rozwiązanie frameworka do automatyzacji testów, które zaprojektowałem, aby zapewnić wydajną i tanią w utrzymaniu automatyzację testów dla aplikacji webowej.
Największym wyzwaniem było to, że aplikacja składała się z wielu modułów, z których każdy był tworzony, podobnie jak testy dla niego, przez inną firmę. Rozwiązanie oparte o repozytorium binariów pozwala na szybkie dzielenie się wytworzonym kodem testów aplikacji pomiędzy wszystkimi
zespołami, co przyspiesza i obniża koszt utrzymania testów automatycznych, oraz umożliwia szybkie pisanie testów przechodzących przez wiele modułów aplikacji.
1. Jak to zrobić w JavaScript
Mini warsztat automatyzacji testów
2. Podziękowania
Chciałbym na wstępie podziękować Łukaszowi Łukasikowi i Wojtkowi Łuczakowi za
inspiracje i pomoc w zmaganiach z JavaScript.
3. Wstęp
Materiał mini warsztatu zakłada, że uczestnik posiada
podstawową wiedzę o testowanie aplikacji web
podstawową wiedzę z zakresu programowania w dowolnym języku
podstawową wiedzę o css i xpath
Materiał nie ma za zadanie nauczyć programowania w JavaScript
Materiał dostarcza i opisuje wzorce, dzięki którym można stworzyć testy nie znając
dokładnie JavaScript
Repozytorium z przykładami znajduje się pod adresem
https://github.com/jacekokrojek/jak-to-zrobic-w-js
4. node.js
Środowisko pozwalające wykonywać kod JavaScript
Podstawowe komendy:
node – uruchamia kod JavaScript
• node – uruchamia interpreter
• node <plik> - uruchamia kod z pliku
npm – zarządza pakietami
• npm install [nazwa_modułu][@wersja] [- g]
• npm ls
• npm uninstall
5. Zadanie
Uruchom powłokę JavaScript, zdefiniuj poniższe zmienne i wykorzystaj polecenie
console.log() do wyświetlenia ich wartości.
var manuTitle = "Strona główna";
var pageTitle = "Agile & Automation Days " + "| Konferencja i Warsztaty";
var year = 2015;
var pageTitleWithYear = pageTitle + " " + year;
6. Zadanie
Uruchom powłokę JavaScript, zdefiniuj poniższe zmienne i wykorzystaj polecenie
console.log() do wyświetlenia ich wartości.
var menuTitle0 = "Strona główna";
var menuTitle1 = "O wydarzeniu";
var menuTitles = [menuTitle0, menuTitle1]
Czy umiesz wyświetlić każdy z elementów tablicy menuTitles osobno ?
7. Zadanie
Uruchom powłokę JavaScript, zdefiniuj poniższe zmienne i wykorzystaj polecenie
console.log() do wyświetlenia ich wartości.
var menuItem0 = { index: 0, title: "Strona główna"};
var menuItem1 = { index: 1, title: "O wydarzeniu "};
var menuItems = [ menuItem0, menuItem1 ];
Czy umiesz wyświetlić tytuł każdego z elementów tablicy osobno?
8. Protractor
Pracuje w środowisku node.js
Umożliwia testowanie zachowania aplikacji w przeglądarce
Bazujące na funkcjach Selenium Webdriver
Dostęp do funkcji WebDriver poprzez obiekt browser lub browser.driver
Rozszerza i ułatwia korzystanie funkcji WebDriver
Do uruchomienia testu wymagane są dwa elementy
Plik konfiguracyjny
Kod testu
9. Jasmine
Narzędzie organizujące testy w JavaScript
Dostarcza szablon testu
Dostarcza bogaty zestaw asercje (ang.machers) np.
expect(true).toEqual(true)
expect(true).not.toEqual(false)
10. Przykładowy test
Przykładowy kod łączący funkcje Protractor i Jasmine
describe('Agile & Automation Days homepage', function() {
it('should have Agile & Automation Days …'), function(){
var expectedTitle = "Agile & Automation Days " +"
"| Konferencja i Warsztaty";
browser.driver.get('http://aadays.pl/');
var pageTitle = browser.driver.getTitle();
expect(pageTitle).toEqual(expectedTitle);
});
11. Gulp
Narzędzie budujące i automatyzujące zadania
Konwencja code over configuration
function runSpec(confName, suiteName) {
return gulp.src([])
.pipe(protractor ( { configFile: confName, args: ['--suite', suiteName] } ) )
.on('end', function() {
console.log('Test completed.');
})
.on('error', function (e) {
throw e
});
}
13. JasmineReporter
Dla Jasmin zostało napisanych kilka modułów poprawiających sposób raportowania
wyników.
jasmine-reporters – zapisuje wyniki w formacie JUnitXML
jasmine-spec-reporter – Wyświetla wyniki wykorzystując nazwy specyfikacji oraz
testów
protractor-html-screenshot-reporter – zapisuje wyniki testów w formacie HTML
wraz z screenshot'ami tworzonymi na zakończenie testu
15. element
Funkcja element pozwala na odnajdywanie elementu na stronie
element(by.css('p.copyright'));
element(by.xpath('//h3[contains(text(),"Agenda")]'));
element(by.tagName ('a'));
Na elemencie możemy wykonywać operacje
element(by.css('p.copyright')).isPresent();
element(by.css('p.copyright')).getText();
element(by.css('p.copyright')).getInnerHtml();
element(by.css('a.btn-big')).click();
17. element.all
Funkcja element.all pozwala na odnajdywanie wielu elementów na stronie i tworzenie
z nich tablicy
element.all(by.css('div.frontpage-block-wrap > h3'));
element.all(by.css('figcaption'));
Do elementów w tablicy mamy dostęp poprzez funkcje
element.all(by.css('div.frontpage-block-wrap > h3')).first();
element.all(by.css('div.frontpage-block-wrap > h3')).last();
element.all(by.css('div.frontpage-block-wrap > h3')).get(1);
18. Zadanie
Uzupełnij kod 2 kolejnych specyfikacji
* Wykonaj zadanie korzystając z funkcji map oraz filter
19. require and export
Funkcja require wczytuje moduł JavaScript
var homePage = require("home.js"); // var homePage = require("home");
var homePage = require("data.json"); // var homePage = require("data");
Funcja export pozwala wyeksportować obiekt
module.exports = {config: {db_host:"localhost", db_port: "3303" }}
module.exports = new HomePage();
20. Page object pattern w JavaScript
W JavaScript istnieje kilka możliwości tworzenia obiektu, jedna z nich to
var HomePage = function() {
this.registerButton = element(by.css('a.btn-big'));
this.get = function() {
browser.driver.get('http://aadays.pl/');
};
this.clickRegisterButton = function() {
this.registerButton.click();
};
};
var homePage = new HomePage(); // module.exports = new HomePage();
21. Zadanie
Zmodyfikuj kod obiektu home.js o funkcję pozwalającą na sprawdzanie tekstów linków
w stopce strony. Następnie zmodyfikuj specyfikację home.spec.js tak aby sprawdzała
poprawność linków w stopce.
Zmodyfikuj specyfikacje smoke.spec.js tak aby zawierała test sprawdzający czy
użytkownik jest przeniesiony do strony 'O wydarzeniu' po naciśnięciu odpowiedniego
link'a ze stopki.
22. Importowanie modułów
Możemy tworzyć moduły nie tylko dla stron ale również dla ich powtarzających się
fragmentów a następnie importować je do wybranych stron.
var HomePage = function() {
this.footer = require('../modules/footer');
…
}
module.exports = new HomePage();
24. Dziedziczenie w JavaScript
Klasa bazowa i jej funkcje powinna być zdefiniowana jak poniżej
var Page = function () {};
Page.prototype.load = function (url) {
browser.get('http://aadays.pl/' + url);
};
Page.prototype.getTitle = function() {
return browser.driver.getTitle();
};
module.exports = Page;
25. Dziedziczenie w JavaScript
Obiekt dziedziczący powinien należy zdefiniować w następujący sposób:
var Page = require('page');
var HomePage = function() {
Page.call(this);
this.registerButton = element(by.css('a.btn-big'));
this.clickRegisterButton = function() {
this.registerButton.click();
};
};
HomePage.prototype = Object.create(Page.prototype);
HomePage.prototype.constructor = HomePage;
26. Zadanie
Bazując na pliku page.example.js stwórz obiekt paga.js, który będzie funkcją bazową
dla obiektu homePage. Dodaj do obiektu page.js moduł stopki.
Zmodyfikuj pliki event.js oraz home.js tak aby zdefiniowane w nich obiekty dziedziczyły
funkcje z obiektu page.
27. Co jeszcze
Repozytorium zawiera przykłady
Przesuwania elementów strony
Logowania
Pobierania informacji o czasie ładowania strony
Screenshot'y