Vilmar

Gramowicz(ka)
  • Zawartość

    2334
  • Dołączył

  • Ostatnio

Wszystko napisane przez Vilmar

  1. Musi minąć przynajmniej jedna generacja bezawaryjnych laptopów by móc powiedzieć, że jest lepiej. A to oznacza że na tego typu stwierdzenia trzeba poczekać jeszcze około 3 lata. Każdy sprzęt tuż po jego premierze zbiera "nienajgorsze" opinie - po pierwsze dlatego, że nie zdążył jeszcze pokazać co potrafi w kwestii (nie)zawodności, a po drugie z powodu syndromu zadowolonego klienta - ja też byłem przez pierwsze miesiące zachwycony swoim HP-kiem. Szczerze i uczciwie radzę - oszczędź sobie nerwów i odpuść HP. Nie warto.
  2. Zgadzam się. Mam w domu dwa różne Paviliony i w obu po nieco ponad dwóch latach (niezły zbieg okoliczności, swoją drogą) padła bateria - z dnia na dzień, z godziny na godzinę. Komputery potrafią się tak przegrzać (np. w trakcie grania), że układ nie wytrzymuje i sprzęt się wyłącza. Nigdy więcej tego producenta.
  3. Vilmar

    Diablo III - temat ogólny

    Jak dla mnie to najwięcej o dodatku mówi... Chytry Shen :) W końcu poszukiwania klejnotu Dirgesta i samego demona się jeszcze nie zakończyły :)
  4. Vilmar

    Diablo III - temat ogólny

    Myślę, że częściowo te dane mimo wszystko ujrzą światło dzienne - przecież Activision musi publikować raporty finansowe.
  5. Vilmar

    Diablo III - temat ogólny

    Super, poproszę na sypek.pawel@gmail.com - pozostałe adresy nie działają w tej chwili. Dzięki wielkie.
  6. Vilmar

    Diablo III - temat ogólny

    Rozumiem, że nie ma więcej guest passów? :(
  7. Vilmar

    Diablo III - temat ogólny

    Aha - mój numer gg: 1602776 :)
  8. Vilmar

    Diablo III - temat ogólny

    Hej, wprawdzie dostałem już od Was dwa guest passy, ale okazało się dzisiaj, że potrzebuję jeszcze jednego :( czy ma ktoś jeszcze gdzieś na zbyciu? LAN Party właśnie się u mnie rozpoczyna ;)
  9. Jeżeli w tej chwili możesz grać w Diablo 3 bez problemu to faktycznie powinieneś zagrać w totka, bo jesteś ewenementem na skalę światową :)
  10. Nie przywykłem do sprawdzania na komórce czy mogę dostąpić zaszczytu pogrania sobie w singla w grę PC, którą zakupiłem.
  11. Vilmar

    Diablo III - temat ogólny

    Wszystkich oprócz postaci hardkorowych :)
  12. Vilmar

    Diablo III - temat ogólny

    Właśnie straciłem postać Hardkorową tylko dlatego, że mnie rozłączyło z serwerem w nieodpowiednim momencie. Ehhh... gra jest naprawdę fenomenalna, ale te problemy techniczne potrafią niesamowicie napsuć krwi :/ Moim zdaniem to spora porażka Blizzarda.
  13. Vilmar

    Diablo III - temat ogólny

    Dziękuję za kluczyk :) Do moderatora: można mnie już usunąć z listy, mam już oba klucze i więcej raczej nie będę potrzebował :)
  14. Vilmar

    Diablo III - temat ogólny

    Dzięki Isildurowi mam już jeden guest pass, ale niestety jako że kumpli do przekonania do zakupu Diablo 3 mam aż dwóch, to potrzebuję jeszcze jednego - ma ktoś może taki klucz na zbyciu i nie przeszkadza mu, że mam już jeden? :) PS. Nie byłoby problemu gdyby Blizzard nie poleciał w kulki z osobami, które zapisały się na Annual Pass :/
  15. Vilmar

    Diablo III - temat ogólny

    Czy ma ktoś może niepotrzebny, zakurzony klucz Guest Pass? Uniżenie proszę o rozważenie podarowania go mojej skromnej osobie :)
  16. Czy ludzie z Annual Passem WoW również otrzymają 2x GP? Kurczę kluczowe info a nigdzie nie mogę znaleźć o tym wzmianki.
  17. Ja w celu uzupełnienia braków w wykształceniu czytam czasami WoWWiki: http://www.wowwiki.com/Titan :)
  18. ''view'' To jest obiekt widoku (zakładam, że termin MVC nie jest Ci obcy) - pewną niekonsekwencją Zenda jest fakt, że do widoku odwołujemy się przez $this->view, a nie przez $this->getView() (jak w przypadku $this->getResponse()), ale to nawet lepiej, bo tak jest krócej ;) Wszystko co znajduje się po $this->view nie odnosi się już do obiektu $this, ale do obiektu $view (Zend_View). ->message = ''Page not found'' to nic innego jak przypisanie zmiennej widoku o nazwie ''message'' wartości ''Page not found''. Jak większość rzeczy w PHP i w Zendzie, można by było to napisać inaczej, np. tak: $this->view->set(''message'', ''Page not found''); Zend wykorzystuje tu dość ciekawą cechę PHP-a - tzw. magiczne metody, które powodują, że ten język jest tak elastyczny. Otóż wydawałoby się, że skoro piszemy $this->view->message = ''X'', to obiekt $view powinien zawierać właściwość/pole $message (analogicznie do tego w jaki sposób Zend_Controller_Action zawiera z góry zdefiniowaną właściwość $view - żeby daleko nie szukać ;)), ale w rzeczywistości ani tak nie jest, ani nie jest to wcale wymagane. Możemy napisać: $this->view->reksio = ''X''; $this->view->szarik = ''Y''; $this->view->bonifacy = ''Z''; i wszystko będzie w porządku - do widoku zostaną przekazane zmienne ''reksio'', ''szarik'' i ''bonifacy''. Wystarczy pamiętać, że można by było równie dobrze napisać: $this->view->set(''reksio'', ''X'')->set(''szarik'', ''Y'')->set(''bonifacy'', ''Z''); (po moim poprzednim wykładzie powinieneś przewidzieć, że taki zapis jest możliwy i całkiem często wykorzystywany w praktyce :)). No dobra, ale po co przekazywać jakiekolwiek zmienne do widoku? To dość oczywiste. Załóżmy, że mamy szablon HTML (załóżmy też, że w stylu Zenda): <html> <head> <title><?php echo $this->title; ?></title> </head> <body> <?php echo $this->message; ?> </body> </html> Oraz kontroler: class GramplController extends Zend_Controller_Action {     public function indexAction() {         $this->view->title = ''Gram.pl - strona główna'';         $this->view->message = ''Witamy na stronie głównej gram.pl!'';     }          public function sklepAction() {         $this->view->title = ''Gram.pl - sklep'';         $this->view->message = ''Witamy w sklepie gram.pl!'';     }          public function forumAction() {         $this->view->title = ''Forum gram.pl napisane w Zendzie!'';         $this->view->message = ''Witamy na forum gram.pl!'';     } } Co by było, gdybyśmy weszli na strony: /grampl (index to nazwa domyślnej akcji), /grampl/sklep i /grampl/forum? Pierwsza miałaby tytuł "Gram.pl - strona główna" i zawartość "Witamy na stronie głównej gram.pl!", druga: tytuł "Gram.pl - sklep" i zawartość "Witamy w sklepie gram.pl!", a trzecia: tytuł "Forum gram.pl napisane w Zendzie!" i zawartość "Witamy na forum gram.pl!" Dzięki temu możemy mieć tylko jeden szablon layoutu w HTML i wypełniać go różną zawartością zależnie od kontrolera i akcji, które wywołujemy.
  19. Nieprawda - kupili go też ludzie, którzy policzyli, że chcąc mieć D3 i wybierając AP dostają dodatkowo 4-6 miesięcy grania w WoW-a za free. Np. ja tak zrobiłem.
  20. To jest tzw. wywołanie łańcuchowe, możliwe do zastosowania wtedy, gdy kolejne metody w łańcuchu zwracają obiekty. Przykładem takiego wywołania w innym języku (JavaScript) jest np.: var str = ''Ala ma kota''.substr(0, 6).replace(''Ala'', ''Jola'').toUpperCase().concat('' PSA!'') który spowoduje krótkim wywołaniem zmianę tekstu ''Ala ma kota'' na ''JOLA MA PSA!'' - tradycyjnie wyglądałoby to tak (oba przykłady dają ten sam wynik): var str = ''Ala ma kota''; str = str.substr(0, 6); str = str.replace(''Ala'', ''Jola''); str = str.toUpperCase(); str = str.concat('' PSA!''); Który z nich jest wygodniejszy? :) Oczywiście trzeba wyważyć pisanie tego typu one-linerów z czytelnością kodu, ale na ogół ten pierwszy sposób zapisu powinien być preferowany. Warunkiem do tworzenia klas, których metody można wywoływać łańcuchowo, jest zwracanie obiektu przez każdą kolejną metodę w łańcuchu oprócz ostatniej. W JavaScripcie wszystko jest obiektem, więc zawsze można dopisać kolejną kropkę i kolejną metodę (choć czasem nie ma to sensu), ale w PHP polega to na tym, że mając obiekt klasy: class Samochod {   public function jazdaDoPrzodu() {     // jakies instrukcje     return $this;   }   public function zmienOpony() {     // jakies instrukcje     return $this;   }   public function zatankujPaliwo(Paliwo $paliwo) {     // jakies instrukcje     return $this;   }      public function podajPredkoscNaGodzine() {     return $this->predkoscNaGodzine;   } Można napisać: $samochod->zatankujPaliwo($pb95)->zmienOpony()->jedzDoPrzodu(); $samochod->zmienOpony()->zatankujPaliwo($pb95)->jedzDoPrzodu(); $samochod->jedzDoPrzodu(); $predkosc = $samochod->jedzDoPrzodu()->podajPredkoscNaGodzine(); Ale nie można napisać: $samochod->podajPredkoscNaGodzine()->jedzDoPrzodu(); Bo "podajPredkoscNaGodzine" nie zwraca obiektu (a już na pewno nie typu Samochod), tylko typ prosty (int lub float). Dobrym stylem programowania w PHP-ie jest zapewnianie, że wszystkie metody obiektów mają na końcu instrukcję return z argumentem - nawet te, które na pierwszy rzut oka niczego sensownego nie zwracają (wtedy po prostu powinny mieć na końcu return $this, co pozwoli na tworzenie wywołań łańcuchowych). W Zendzie (a z niego, o ile się nie mylę, pochodzi Twój przykład) wszystkie obiekty są w ten sposób napisane. Pierwszą linijkę należałoby czytać tak: "Pobierz będący jednym z moich pól obiekt Zend_Http_Response i zmień kod odpowiedzi na tym obiekcie na 404". Bezpośredni ekwiwalent: $response = $this->getResponse(); $response->setResponseCode(404); Druga linijka z Twojej wklejki jest trochę inaczej skonstruowana - wyjaśnić?
  21. No widzisz - skoro nie zgadzamy się w tak fundamentalnej sprawie to nie możemy zgodzić się w sprawach pochodnych, a taką jest ocena wyniku wyborów prezydenckich we Francji. Pass.
  22. Fatalny. Jedna z najgorzej napisanych aplikacji tej klasy, jakie widziałem w swoim życiu.
  23. Bardzo fajna sprawa :) Brawo! To dobrze, że gram.pl jest wciąż jednym z tych nielicznych seriwsów, które mają wśród swoich użytkowników ludzi zdolnych i gotowych ulepszać serwis "dla idei" :) Liczba danych, które można wyliczyć w takim serwisie jest w zasadzie nieograniczona - dla fanów liczb i statystyk to ogromna frajda - mam nadzieję, że planujesz co jakiś czas dorzucić jakiś nowy bajer, bo z Twoich słów wynika, że podstawę już masz - skuteczny i niezawodny indekser to 80% sukcesu w takim przedsięwzięciu. Czapki z głów :) PS. Nie znam innych programistów z obecnej ekipy gramu, ale o Kamilu nie mogę powiedzieć złego słowa - to bardzo dobry fachowiec. Niektórzy mogliby się czasem ugryźć w język i docenić wysiłek oraz umiejętności, jakich wymaga tworzenie poszczególnych elementów tak bogatego portalu od zera. A przecież można było forum postawić na phpBB3, a gramsajty na Wordpressie, prawda?
  24. To akurat pozytywy. Do czego prowadzi nadmierne rozpasanie chyba wystarczająco dobitnie pokazuje przykład Grecji? A to Twoje opinie, niepodparte żadnymi argumentami a zwłaszcza powodami, dla których zmiana prezydenta na lewicowego miałaby zmienić tą sytuację. Hollande to może być "lepszy wybór dla Polski" tylko w jednym przypadku - jeśli jego polityka przyspieszy znacząco rozpad UE. Są na to pewne szanse.
  25. Wnioski są błędne - w tej chwili mnóstwo contentu WoW leży odłogiem, nikt z niego nie korzysta, a duża część została całkowicie usunięta - słowem: porzucony content mógłby nie istnieć, a i tak WoW cieszyłby się obecną popularnością. Gracze WoW katują na okrągło to, co zostało dodane w ostatnim dodatku/patchu, a tego jest na tyle mało, że spokojnie można sobie pozwolić na przygotowanie takiej zawartości przed premierą gry MMO. W przypadku Rift-a i TOR-a (nie grałem w żaden z nich, więc opieram się tylko na opiniach innych), z tego co zdążyłem się zorientować, problemem jest nuda po wbiciu maksymalnego poziomu, kiedy osiągnęło się już wszystko i nie bardzo jest co robić dalej - czyli brak tzw. end-game contentu. A end-game contentu i w WoW-ie jest niewiele, więc grunt w tym, żeby był on na tyle różnorodny i satysfakcjonujący, a zarazem sprawiający wrażenie bogatego i ciągle po cichu lub z pompą rozwijany, by gracz się nie połapał, że jest go jak na lekarstwo. Moim zdaniem kluczem do sukcesu gry MMO, oprócz zapewnienia możliwości ciągłego, nieskończonego rozwoju postaciom graczy na wiele różnych sposobów, jest zmiana sytuacji przy wydawaniu gry i modelu płatności w przypadku abonamentu: Po pierwsze - wersja trial w dniu premiery jest absolutną koniecznością. Twórcy RIFT-a się pod tym względem nie popisali, TOR chyba też ma z tym problem. Po drugie - wersja BOX może kosztować jak pozostałe gry, ale za to abonament MUSI zmaleć co najmniej o połowę - do 10 EUR za 2 miesiące grania. Koszt utrzymania serwerów wcale nie usprawiedliwia obecnych cen abonamentu - ustalanie go na poziomie WoW-a to zwykła chciwość i zarzynanie kury, zanim zdąży złożyć pierwsze złote jajo. Po trzecie - regularne opłacanie abonamentu musi być odpowiednio wynagrodzone w świecie gry. Nie mówię tutaj o żadnych dodatkowych zdolnościach czy ułatwieniach w grze, ale o jakiejś specjalnej pelerynie, unikatowym mouncie (lub, jeszcze lepiej, możliwości zmiany wyglądu normalnego mounta), kolorze nicka itd. itp. Przy czym bonus tego typu mógłby (i powinien!) być stopniowany: pierwszy stopień po upłynięciu 6 miesięcy ciągłego opłacania, drugi po upłynięciu roku, a trzeci po upływie 2 lat. Przy czym zamrożenie konta na dłużej niż 3 dni powinno skutkować natychmiastowym odebraniem tego typu przywilejów i konieczności budowania "prestiżu" od nowa. Z tych wszystkich trzech rzeczy wydaje mi się, że najtrudniejszym do przełknięcia jest ten drugi, bo raz ustanowioną cenę abonamentu byłoby szalenie trudno podnieść bez bolesnych strat w liczbie aktywnych subskrypcji, a przecież po osiągnięciu pewnego pułapu (5 mln graczy?) chęć podniesienia zysków z abonamentu jest naturalna i słuszna. Ale to nie jest sytuacja bez wyjścia, bo można się ratować różnymi płatnymi usługami, a poza tym można w pewnym momencie wypuścić sequel z nieco wyższą ceną abonamentu.