Strona główna - poczytaj o JavaScript, jQuery, CSS i HTML5

meet.js – Wielka Ofensywa Lipcowa!

29 lipca w Poznaniu, 30 lipca w Warszawie, 31 lipca w Krakowie – oto najświeższe daty spotkań meet.js. Ruszamy z Wielką Ofensywą Lipcową!

więcej…

Stan społeczności front-end w Polsce w dobie HTML5

Co to front-end? Nic trudnego. Najprościej – zewnętrzna warstwa software’u. Znamy tę definicję bardzo dobrze (mniej lub bardziej zmodyfikowaną dla swoich potrzeb). Wszystko to, co widzimy, co możemy kliknąć, a także czym zachwycamy się od strony wizualno-interakcyjnej. Przy okazji stron internetowych, w skład front-endu wliczamy najczęściej CSS, JavaScript, HTML, aspekty dostępności, użyteczności. Od niedawna grupa wspomnianych technologii (którym często przygrywa określenie „standardy sieciowe”) — z uwagi na ich powszechność, prostotę i skalowalność — podbija rynek aplikacji mobilnych (HTML5), a JavaScript dodatkowo zdobywa popularność po stronie serwera, m.in. dzięki node.js. Jak w zaistniałej sytuacji wygląda polska społeczność front-end, od której zależy przecież tempo zachodzących zmian w kraju?

więcej…

Konkurs JavaScript na najkrótszy skrypt

Szymon Piłkowski wpadł na pomysł, by zrealizować konkurs na najkrótszy skrypt będący rozwiązaniem problemu, nad którym ostatnio pracował. Idea bardzo szybko przypadła mi do gustu i momentalnie uzyskała ostateczną formę.

O co chodzi?

Przypuśćmy, że pracujemy nad skryptem, który indeksuje odpowiedzi do pytań używając liter, np.:

Jak masz na imię?

  1. Adam
  2. Adrian
  3. Bartosz
  4. Dariusz

Weźmy jednak pod uwagę, że pracujemy ze skończonym alfabetem, np. abcd, wtedy pytanie z sześcioma odpowiedziami będzie wyglądać tak:

a. Adam
b. Adrian
c. Bartosz
d. Dariusz
aa. Hieronim
ab. Łukasz

Czternaście odpowiedzi?

a. Adam
b. Adrian
c. Bartosz
d. Dariusz
aa. Hieronim
ab. Łukasz
ac. Marian
ad. Paweł
ba. Piotr
bb. Prometeusz
bc. Protazy
bd. Robert
ca. Władysław
cb. Zbigniew

Potem analogicznie np. przy większych liczbach aaa, aab, aac, aad, aba, abb, abc, abd etc. Mądrym głowom na pewno przypomina się pewien dział matematyki.

To, co chcemy uzyskać, to dwie funkcje.

Pierwsza zwróci odpowiedni układ liter dla n-tej odpowiedzi. W powyższym przypadku, dla szóstej odpowiedzi (licząc od zera) będzie to: ac.
Druga zachowa się dokładnie odwrotnie, na podstawie układu liter, np. cd, zwróci nam, że chodzi o 15. odpowiedź.

Uznajemy, że kod startowy wygląda tak, jak poniżej. Wielokropek oznacza, że możecie dokonywać tam modyfikacji.

var alfabet = "abcdefghjpz679";
var convertToLetters = function(...){...};
var convertToNumber = function(...){...};

Zabroniona jest jakakolwiek modyfikacja skryptu startowego, choćby usunięcie średników!

Input/output

convertToLetters(6); // "g"
convertToNumber("a"); // 0
convertToNumber("ab"); // 15

Kod ma działać dla dowolnego alfabetu bez powtórzeń, składającego się ze znaków ASCII. Co za tym idzie, rozważyć powinniście też jednoznakowy alfabet. Zabronione jest używanie zewnętrznych bibliotek, liczy się tylko czysty JavaScript (ECMA 3/5). Wygrywa osoba, która przedstawi działające rozwiązanie, posiadające jak najmniej znaków. Liczymy je dla każdej funkcji oddzielnie i sumujemy. Pod uwagę bierzemy oczywiście białe znaki jak spacja czy nowy wiersz!

Zakładamy, że wszystko ma działać dla n >= 0 (funkcja convertToLetters). Zabronione są używanie predefiniowanych zmiennych globalnych (natomiast możecie je deklarować w funkcjach) i zmiana natywnych prototypów.

Rozwiązania będziemy testować w środowisku node.js v0.4.7 (i tu docelowo skrypt ma działać) bez dodatkowych modułów.

Rozwiązania i terminy

Konkurs trwa do końca lipca. Rozwiązania należy wysyłać używając prostego formularza. W przypadku kilku zwycięzców zadecyduje termin oddania pracy.

Nagrody

Wyróżnimy trzy skrypty! Każda osoba z podium dostanie wejściówkę na konferencję onGameStart, która odbędzie się w Warszawie, 22-23 września (podziękowania tutaj dla Michała Budzyńskiego). Ponadto, dla wszystkich wyróżnionych mamy naklejki tej konferencji, a także smycze Mozilli.

Od nas natomiast, zwycięzca może wybrać dla siebie nagrodę główną pomiędzy licencją Personal License na IDE WebStorm i książką Christiana JohansenaTest-Driven JavaScript Development. To, co zostanie, automatycznie przechodzi w ręce osoby na drugim miejscu.

Let’s get ready to rumble!

Zmiany na JS News – stwórzmy społeczność na FB!