This blog post is an overview of testing focus behavior in web browser. During the work on Azure Portal I spent quite a bit of time on ensuring rich keyboard support. This requires appropriate focus management. When user press some keyboard shortcut, the focus should move to appropriate element. Focus behavior should be also tested very succinctly. As it is very easy to change (break) with even the smallest change in the HTML or JavaScript.
We received a big present for the 10th anniversary of jQuery, jQuery 3.0 has reached beta status. Let’s take a look at what’s new in jQuery and how to use it.
Quoting Wikipedia: Blue Monday is a name given to a day in January (typically the third Monday of the month) reported to be the most depressing day of the year. The concept was first publicised as part of a 2005 press release from holiday company Sky Travel which claimed to have calculated the date using an equation. [...] In 2016 is predicted quite late, on 25th of January. So still there is a time to fulfill my New Year's resolution: try more new JavaScript front-end frameworks. Especially that there ...
From time to time we need to use npm packages on Continuous Integration build agentwith no access to internet (usually CI agent)with slow internet proxy Moreover as Windows developers we have Windows servers. ...
Czasami w widoku wywołujemy funkcję JavaScript z parametrami, które są przekazane za pomocą ViewModel z kontrolera. Załóżmy, że nasza metoda w kontrolerze wygląda następująco...
The current state of front-end software development is great, and considering how active the open source community is, the future looks very promising. In this article we will show how to transfer back-end practices to front-end development and list the benefits of doing so.
Recently, together with my co-worker Breck, we were looking at the error logs. One of our ideas – in order to investigate errors that were hard to diagnose – was to check in which part of the World users who get errors are located.
Last Saturday I had a pleasure to speak at Seattle Code Camp. It was an amazing event, which was free. There were over 50 talks, 500 attendees, and raffle with many prizes, e.g., Microsoft Surface Pro 3! Check out videos, code, and slides from my talks!
Last Thursday I had a pleasure to give a talk about Speech Recognition in the Browser at the Code Fellows in Seattle. Many people were surprised how easy it is to add speech recognition to your website with pure JavaScript. So I thought I will share a few code snippets here.
Kilka postów wcześniej pisałem o JSONP, jako sposobie na wywoływanie serwisów znajdujących się w innych domenach z poziomu JavaScript. Domyślnie przeglądarki blokują takie wywołania ze względu na bezpieczeństwo. Załóżmy, że mamy następujący serwis w jakiejś domenie...
Recently I learned the hard way about setTimeouts side effects...
Bardzo często tworzymy osobne usługi, które dostarczają jakieś dane. Pisząc aplikacje ASP.NET Web nierzadko chcemy korzystać z zewnętrznych usług, zamiast hostować dane w tym samym projekcie. Niestety może to spowodować problemy, jeśli chcemy skonsumować usługę w JavaScript, a należy ona do innej domeny. Załóżmy, że mamy jakąś usługę REST. Dla testów posłużyłem się http://www.mocky.io. Polecam tą stronę, można generować tam własne “mocki”. Dla tego wpisu stworzyłem mock, który zwraca następującą treść ...
Programowanie rozproszone 3440 dni, 16 godzin, 6 minut temu 189 źrodło rozwiń
Yesterday I had a pleasure to speak at .NET Developers Association meetup in Redmond, about building web applications with TypeScript...
Although ECMAScript6 has not been officially released yet, we can play around with new language features today. There are tools such as Traceur or Babel which are able to convert ECMAScript6 into ECMASciprt5, thus we are able to run the code in every browser. So let's try to run the snippet below, which leverages destructuring assignment using those tools ...
We all know that JavaScript has some bad parts. However, one of them is usually forgotten, and skipped in most of “JavaScript Bad Parts” lists on the Internet. It is a Date object. You can have hard time working with it, especially if you want to support time zones. In this post I would like to outline quircks of Date in JavaScript.
Dziś wpis, który nie tak dawno temu zapowiadałem już na Facebooku – na temat ECMAScript 6 prowadziłem ostatnio Lightning Talka (krótka prezentacja, maks 15 minut) u mnie w firmie i pomyślałem, że szkoda by było zmarnować zebrany materiał. Dlatego też dziś wersja blogowa tamtej prezentacji Na początek, dla porządku warto wspomnieć (w razie jakby ktoś nie wiedział), że ECMAScript to standard obiektowego języka p...
One of the features I miss the most in AngularJS is ability to easy unsubscribe event handlers. There is no convenience function opposed to $on, so in order to unsubscribe event, we have to call method returned by $on function (function () { angular.module('app.download', []) .controller('downloadCtrl', downloadController); function downloadController($scope) { // keep the unsubscribe function in local variable var afterRenderUnsubscribe = $scope.$on('afterRender', onAf...
W pierwszej części pokazującej dziedziczenie w JavaScript, pokazałem tzw. podejście „klasyczne”, mające niby być najbardziej zbliżonym do tego, spotykanego w językach programowania posiadających silne typowanie. Tamten wpis wywołał pewne kontrowersje… Być może ja nie do końca dobrze wszystko wyjaśniłem, a może to ja się mylę Nie jestem alfą i omegą… Jednak zostawmy już w spokoju podejście „classic” ponieważ jest ono mało sz...
There are couple of ways of injecting dependencies into AngularJS components. The most common one is just to specify the dependency name in the function's argument list (function() { angular .module('app') .controller('shellCtrl', function ($scope, $http) { $scope.title = "Title"; }); })(); However this technique fails in real life scenarios, because for production we usually (or rather always) minify and uglify javascript files. Uglify proces renames our varia...
Ostatnio w projekcie natrafiłem na problem, który najlepiej było rozwiązać stosując dziedziczenie. Niby prosta sprawa, „podstawowe podstawy” każdego obiektowego języka programowania. Jak jednak się pewnie domyślacie, dziedziczenie w JavaScript „nieco” różni się od tego klasycznego podejścia, znanego z innych języków programowania, a ja zdałem sobie sprawę, że choć na tym blogu poruszam różnorakie (i na różnym poziome skompli...