Wypowiedzi
-
Na lapka jest dedykowana wersja: Ubuntu Mobile - nie korzystałem więc nie ocenię. Na lapku miałem kiedyś normalne Ubuntu (na Gnome) i wszystko działało bez problemu... do czasu kiedy trzeba było odpalić Adobe.
Jak już ktoś podpowiedział CS2 odpalisz na wine ale wyższe wersje już za cholerę (moje kilku dniowe próby z CS4 siadły na laurach) - i to się tyczyło tylko PSa, reszty pakietu nawet nie próbowałem instalować.
-
nie korzystałem z CI ale powiem jak to jest ZendFramework.
Brak kontrolera wyrzuca wyjątek (Exception) z odpowiednim kodem - jeżeli CI tego nie robi to trzeba dopisać w jakiejś klasie która wybiera odpowiedni kontroler. Potem przechwytujesz ten wyjątek (try...catch) i robisz przekierowanie na główną (header...).
-
wiele serwisów i aplikacji udostępnić jakieś API czyli interfejs do zdalnego porozumiewania się z serwisem (np allegro czy google). Zazwyczaj działa to w oparciu o XML więc jest uniwersalne dla każdego języka skryptowego.
W innych przypadkach możesz się oprzeć na curl'u - większość języków ma swoje biblioteki do obsługi może być też wykonywany z poziomu konsoli więc tak też można nim operować.
-
A ja zauważyłem poprawę w stosunku do 6... przede wszystkim działa szybciej, u mnie zniknął problem z niekończącym się "budowaniem". No i ma wsparcie dla PHP 5.3 - jeżeli ktoś już korzysta :)
Oczywiście tak jak powiedział ktoś z przedmówców ZS nadaje się gdy pracujesz w ZF bo można generować strukturę projektów ale nie ma nic nadzwyczajnego ponad to co jest w PDT
-
-
CMSa Ci nie podam ...
ale jeżeli myślisz o konwersji filmów wideo do formatu strumieniowego (FLV) to na linuxa jest programik FFMPEG który umożliwia taką konwersję z linii komend - oczywiście trzeba sobie wszystko "oskryptować".
Druga opcja to integracja YouTube - CMS, czyli zarządzanie jest przez konto YouTube - integrujesz tylko ze stroną (jest dostępne API).
-
Aby mieć możliwość przeczytania tego posta musisz być członkiem grupy estimating software
-
Aby mieć możliwość przeczytania tego posta musisz być członkiem grupy estimating software
-
Aby mieć możliwość przeczytania tego posta musisz być członkiem grupy estimating software
-
Aby mieć możliwość przeczytania tego posta musisz być członkiem grupy estimating software
-
Aby mieć możliwość przeczytania tego posta musisz być członkiem grupy estimating software
-
@Alan
Spokojnie nie należę do tych osób co wszystko biorą od razu do siebie :) Po to jest forum, żeby można było polemizować na różne tematy.
P.S.
Już nie upierając się odnośnie twojego rozwiązania :) zauważ że moje jest również elastyczne. Mechanizm odpowiedzialny za generowanie plików jest elementem osobnym i jest odpalany zarówno przy uploadzie jak i przy wyświetlaniu plików oczywiście z wcześniejszym sprawdzeniem czy dana miniaturka już istnieje.
Upieram się jednak przy generowaniu miniaturek przy uploadzie ze względu na użyteczność. Lepiej obciążyć administratora wgrywającego pliki czasem potrzebnym na wygenerowanie niż użytkownika końcowego.
Przykład:
- Administrator wgrywa pojedynczo pliki do każdego artykułu dodając w ten sposób np 10 artykułów w ciągu tygodnia. Za każdym razem musi wprowadzić treść i wgrać obrazki więc i tak przewiduje na to większą ilość czasu.
- User wchodzi na stronę i ładuje listę artykułów na której generuje się te 10 miniaturek naraz no i czeka...
Pozdr
-
Alan Gabriel B.:
Edi Skraba:
Alan jak to nie :)
Ja chyba wiem najlepiej co proponowałem i na pewno nic nie wspominałem o generowaniu miniatur przy uploadzie.
Oczywiście, że ty wiesz najlepiej, ale wypowiadasz się na forum i tak to mogą odebrać inni - np ja.
P.S. Cache to cache, a wygenerowany plik dostępny z poziomu public_html to już nie cache.
Jeżeli mechanizmem składowania systemu cache jest system plików to wygenerowany plik dostępny w public_html może być jednocześnie cachem jak i plikiem dostępnym z poziomu public_html (zależy jak się do niego dobierzesz). Ale to jest oczywiście względność punktu widzenia
-
Alan Gabriel B.:
Edi Skraba:
Popieram metodę zaproponowaną przez Alana:
1. Tworzysz wszystkie miniaturki w trakcie upload (cache)
2. Na stronie identyczny mechanizm generalnie z tą różnicą, że jeżeli miniaturka jest już utworzona to ładuje ją z cache'a.
JA wcale nie proponowałem takiego mechanizmu :)
Alan jak to nie :)
Agnieszka napisała:zdecydowanie najszybsze rozwiazanie to generowanie miniaturek przy uploadzie...
...zdecydowanie bardziej elastyczne jest generowanie "w locie"
Ty jej odpisałeś:@Agnieszko, jest jeszcze możliwość połączenia tych dwóch technik i ograniczyć udział PHP (bo przecież o to chodzi tak naprawdę) tylko do tego 1-wszego żądania.
Jerzeli chodzi o kwestie sprawdzania czy plik istnieje (czy jest cache) to akurat nie wiem ale jestem ciekaw czy szybciej zrobi to Apache czy PHP
-
Alan Gabriel B.:
Krzysztofie, ale czy wysokość i szerokość w nazwie pliku służą jako faktyczne parametry dla skryptu, czy tylko identyfikują z góry określone w configu wielkości?
Jeżeli tak, to odradzam. Bo Ci bota puszczą, który będzie generował tryliard rożnych rozmiarów do każdego znalezionego zdjęcia.
Można zdefiniować w skrypcie "generującym" jakie są dopuszczane rozmiary aby uniknąć takiego ataku. Wtedy rozmiary w nazwie mogą być parametrami dla skryptu.
-
Popieram metodę zaproponowaną przez Alana:
1. Tworzysz wszystkie miniaturki w trakcie upload (cache)
2. Na stronie identyczny mechanizm generalnie z tą różnicą, że jeżeli miniaturka jest już utworzona to ładuje ją z cache'a.
plusy rozwiązania:
- na pierwszy ogień miniaturki są generowane podczas wgrywania plików więc odciąża to userów od ich generowania
- nawet jeżeli dojdą inne rozmiary to skrypty na stronie wygenerują nam nowe miniaturki (elastyczność)
Jeżeli chodzi o "skomplikowanie" tego mechanizmu to nie widzę problemu, są frameworki które udostępniają rozwiązania (polecam Zend).
P.S.
Jeżeli z czasem pojawiło by się wgrywanie często dużej ilości plików przez admina to można ten mechanizm przenieść na CRONa (wtedy zarówno admin jak i userzy nie będą czekali na "wygenerowanie" miniaturek)
-
-
Wojciech Sznapka:
Edi Skraba:
Mogę podpowiedzieć jeszcze, że zbyt duże zużycie ramu może być generowane w takich sytuacjach:
- albo pracujesz z dużymi plikami przy pomocy PHP (np obróbka grafiki)
- albo robisz gdzieś zapętlenie kodu lub wielopoziomowe rekurencje
albo tworzysz mnóstwo obiektów w pętli i na nich przetwarzasz, pamiętaj, że php nijak nie zarzadza pamięcią (nie zwalnia nie potrzebnej)
Czyszczenie obiektów to naturalna kwestia optymalizacji skryptów - oczywiście taka też może być - ale zakładam, że problemem jest raczej jakiś konkretny błąd niż kwestia optymalizacji (nie przy takich rozmiarach RAMu).
@Tomasz
JS i ajax nie ma na to wpływu - AJAX jest asynchroniczny i są to całkiem inne requesty, jeżeli otrzymujesz komunikaty błędu (Allowed memory...) to jest to przy wykonywaniu danego (jednego) requesta do skryptów PHP.
Jeżeli efekty przeźroczystości są uzyskiwane przez obróbkę graficzną plików w PHP to napewno jest to przyczyna, jeżeli efekty są uzyskane na CSS to nie mają wpływu.
"suzkam jakiś narzędzi które by pokazywały statystyki bazy mysql."
Statystyki bazy są w PhpMyAdminie i generalnie dostępne jako komenda SQLowa.Edi Skraba edytował(a) ten post dnia 28.08.09 o godzinie 17:10
-
-
Przede wszystkim to musisz zdebugować skrypt - wtedy dowiesz się co dokładnie zżera tyle pamięci.
Jeżeli nie masz lub nie wiesz jak(jakiego) używać debugera to pozostaje Ci logika i droga dedukcji.
Najlepiej zacznij od sprawdzenie kodu w okolicy lini błędu (Allowed memory pokazuje gdzie się wysypał).
Spróbuj ustalić w jakich sytuacjach pojawia się zbyt duże zużycie pamięci (np ogranicz ją do 20MB w php.ini) i sprawdzaj skryptu które uczestniczą w danych sytuacjach.
Mogę podpowiedzieć jeszcze, że zbyt duże zużycie ramu może być generowane w takich sytuacjach:
- albo pracujesz z dużymi plikami przy pomocy PHP (np obróbka grafiki)
- albo robisz gdzieś zapętlenie kodu lub wielopoziomowe rekurencje
Dodam, że w drugim przypadku przełożyło by się to na czas wykonywania.
Pozostaje jeszcze 3 opcja -> anomalia pogodowa :)
a tak poważnie to sprawdź aplikację na innym serwerze jeżeli problemu nie będzie to wiadomo co trzeba zrobić.
- 1
- 2
- Następna »