Bounty się skończyło, phpdeveloper wygrywa w Conway's Game of Life
Platforma internetowa rozwija się dziś w szybkim tempie. Funkcje, takie jak animacje CSS3 , transformacje , cienie i gradienty , <canvas>
, <audio>
i <video>
tagi, SVG , WebGL i wiele więcej znaczy, że można zrobić o wiele więcej w przeglądarce, aw znacznie mniej kodu niż kiedykolwiek wcześniej. Oczywiście wielu programistów nie korzysta z tych nowych funkcji, ponieważ witryny i aplikacje, nad którymi pracują, muszą być kompatybilne wstecz ze starymi, zjadanymi przez mole przeglądarkami, takimi jak IE6.
Co się stanie, jeśli zdejmiesz uprząż? Pozwolić sobie na korzystanie z dowolnych nowych funkcji, które lubisz? Żyj trochę, oszalej, używaj dziwnych, najnowocześniejszych funkcji, z których tylko 1% użytkowników będzie mógł skorzystać?
Oczywiście, mając nieograniczone zasoby i możliwość komunikowania się z serwerem, możesz robić różne rzeczy - ładować megabajty kodu, bibliotek i filmów itd. - ale wyzwania nie są bardzo interesujące bez ograniczeń. Głównym ograniczeniem dla tego konkursu jest: co można zrobić w pojedynczym, niezależnym, 4k data:
URI? Samowystarczalny oznacza, że nie może odnosić się do żadnych zasobów zewnętrznych, łączyć się z żadnym serwerem za pomocą WebSockets lub XHR ani niczego w tym rodzaju. Jeśli chcesz osadzić zasoby, takie jak PNG lub MP3, możesz dołączyć identyfikatory URI danych do identyfikatora URI danych lub wymyślić jakiś inny sprytny sposób osadzania sub-zasobów. 4k oznacza 4096 bajtów, poprawnie zakodowany URI, tekst ASCII (możesz użyć URI zakodowanego w base64, jeśli chcesz, aby uniknąć kodowania URI, ale zwykle tekst zakodowany w URI będzie mniejszy niż base64 dla zwykłego tekstu).
Aby zapewnić inspirację, tematem konkursu są memy StackOverflow . Stwórz grę z jednorożcem, generator faktów Jona Skeeta, program do rysowania oparty na kółkach odręcznych lub cokolwiek wspólnego z jednym z popularnych memów StackOverflow i meta.so.
Chciałbym zachęcić wpisy, które są w jakiś sposób interaktywne; nie tylko zwykła animacja lub obraz statyczny, powinny reagować na dane wejściowe użytkownika, czy to poprzez zdarzenia, najechanie kursorem CSS, przewijanie, zmianę rozmiaru okna przeglądarki, czy w dowolny inny sposób. Nie jest to jednak trudne wymaganie; zostaną wzięte pod uwagę świetne demonstracje, które nie są interaktywne, chociaż preferowana byłaby interaktywność.
Wpis musi być uruchomiony w co najmniej jednej publicznej wersji co najmniej jednej z 5 głównych przeglądarek (IE, Firefox, Chrome, Safari, Opera). Dozwolone są tylko główne wersje (nie kompilacje z gałęzi lub kompilacje wymagające łatek), bez specjalnych ustawień konfiguracji, wtyczek lub czegokolwiek, co nie jest dostarczane z przeglądarką podstawową. Nocne wersje, bety i kandydaci do wydania są w porządku. Podaj we wpisie, z którymi przeglądarkami testowałeś swój wpis. Nie ma żadnych ograniczeń dotyczących tego, jakich technologii można użyć w ramach tych ograniczeń; możesz zrobić czystą animację SVG, czystą animację CSS, coś w JavaScript za pomocą WebGL, lub cholera, nawet coś, co używa XML i XSLT, jeśli ci się to podoba. Jeśli umieścisz go w poprawnym identyfikatorze URI danych, bez zewnętrznych zależności, i uruchomisz przeglądarkę, to jest to uczciwa gra.
Aby dodać do konkursu tutaj, w poniedziałek, 21 marca, otworzę nagrodę za to pytanie. Jak mogę sobie pozwolić na nagrodę, gdy mam tylko 101 powtórzeń? Cóż, wszyscy przedstawiciele, których zdobędę w wyniku głosowania na to pytanie od teraz do poniedziałku, przejdą na nagrodę (do limitu 500 dozwolonych na jedną nagrodę; byłoby mi jednak bardzo trudno przekroczyć ten limit, biorąc pod uwagę przedstawiciela czapka). Zgłoszenia będą przyjmowane przez 6 dni później; wszystkie zgłoszenia muszą upłynąć co najmniej 24 godziny przed wygaśnięciem nagrody, aby dać mi czas na ich sprawdzenie i ocenę. W tym momencie zaakceptuję najwyższą głosowaną odpowiedź i dam nagrodę mojej ulubionej odpowiedzi (która może, ale nie musi być taka sama jak najwyższa głosowana). Moje kryteria przyznawania nagrody będą obejmowały piękno, zabawę, sprytną technikę, ciekawe wykorzystanie nowych funkcji, interaktywność i rozmiar.
Oto kilka źródeł inspiracji na początek:
- Eksperymenty z Chrome - zbiór demonstracji nowoczesnej platformy internetowej
- Mozilla Hacks , blog o nowoczesnej platformie internetowej z wieloma prezentacjami nowych funkcji w Firefoksie 4
- JS1k , konkurs na demonstracje 1k JavaScript
- 10k Apart , aplikacja internetowa w konkursie 10k
- gl64k , obecnie trwający konkurs demo dla 64k wersji demonstracyjnych WebGL
- Shader Toy , zestaw demonstracji tego, co możesz zrobić z modułami cieniującymi WebGL
Format wpisów:
Nazwa wpisu
data: text / html, Twój% 20data% 20URIDziała w Firefox 4 RC, Chrome 10 i Opera 11
Opis twojego wpisu; co robi, dlaczego jest schludny, jakich sprytnych technik użyłeś.
<script> // code in expanded form to more easily see how it works </script>
Wszelkie kredyty za inspiracje, dowolny kod, który mógłbyś pożyczyć itp.
(Wygląda na to, że StackExchange nie akceptuje identyfikatorów URI danych w linkach, więc musisz osadzić je bezpośrednio w <pre>
tagu)