Blog za darmo

Tag-Archive for » devel «

Fchuj z dreamhostem!

No to sru! Kolejny raz się sypło. Pamiętacie jak zachwalałem tenże przezajebiaszczy dreamhost?
No to kłamałem, ale dopiero teraz zdałem sobie z tego sprawę.
Baza – leży i kwiczy. Jakże fachowe określenie współpracowników z działów NIE-IT tutaj pasuje – „Nic nie działa!”
WWW – bez bazy to gówno nie www, ale nawet to, co bazy nie musi muli w kit.
Maile – o dziwo chodzą przez thunderbirda (jeszcze). Przez www oczywiście zmuła.
Limity maili – ta, że niby każdy user to potencjalny spammer, to max 200 maili na godzinę można słać. Toć mi kurwa sajty przy ich częstotliwości padania alertami, że znów nie działa limit momentalnie wyczerpują!
SVN – jeszcze chodzi
Jabber – póki co świeci na zielono, nie wiem czy działa, bo akurat nikogo nadającego się do testu nie widać 😉
ssh – muli, ale jeszcze żyje
cron – póki co się wykonuje, ale to, co tam siedzi bez bazy i tak gówno może

Ogólnie miarka się dziś przebrała. W związku ze związkiem POSZUKUJĘ HOSTINGU, który „umi”:

  • min 13G transferu na miecha (preferuję unlimited na wszelki wypadek)
  • min 12G na dysku (również wskazane unlimited)
  • unlimited domains (+sub +wildcards)
  • unlimited mails (+catch-all)
  • własne repo SVN
  • jabber w swojej domenie (ewentualnie bez tego mogę się obyć)
  • ~ 700M MySQL5 (tu także unlimited mile widziane)
  • ssh access (+cronjobs)
  • PHP 5 (miło by było z własnym php.ini)
  • apacz (z mod_rewrite’m koniecznie)

Jak ktoś może coś ciekawego polecić, to bardzo chętnie się zapoznam.
HELP!

p.s. za ludzką cenę, co bym z mojej murzyńskiej pensji umiał to opłacić!

Miszczu programowania

Jakiś czas temu wziąłem pod swoje skrzydła pewien portal motoryzacyjny.
Kwiatków jest tu całkiem sporo, ale niektóre wołają wręcz o pomstę do nieba.
Widać, że poprzednik usłyszał gdzieś, że programowanie obiektowe jest fajne, więc próbował porobić obiekty, ale bardziej tylko zakręcił, bo nie rozumie sensu obiektowości.
Najlepsze są funkcje, które służą tylko temu, aby wywoływać je po innej, zwykle dłuższej niż dostarczona wraz PHP nazwie. Oto i przykład:
function trim_value(&$value) {
    $value = trim($value);
}

Prawdziwych intencji autora nie znam, ale chyba musiał mieć w tym jakiś wyższy cel, nie nie chce mi się wierzyć, że pisze w ten sposób kod, bo takiego właśnie potrzebuje.
Mój apel do ludzi podających się za programistów, piszących gdzieś kod, który ktoś inny może zobaczyć: zanim opublikujesz zapytaj kogoś, kto się zna, czy nie przegiąłeś. Zaoszczędzisz sobie wyśmiania Cię przez innych.
Tak… wiem, nikt nie jest od razu alfą i omegą w programowaniu, ale programowanie nie zwalnia od myślenia.

Ustawienie domyślnej przeglądarki w Thunderbird

Czasami tak bywa, że mamy w mailu jakieś linki i akurat chcemy je kliknąć celem sprawdzenia, co kryje się pod tym adresem.

Bywa niestety też tak, że klikamy jak pogibani w te linki, a thunderbird ani huhu albo odpala nam te linki w innym programie, niż byśmy chcieli, np. otwiera w Operze, a my wolimy Firefox’a.

Na szczęście jest na to bardzo prosty sposób.

W naszym thunderbirdzie klikamy na menu Edycja→Preferencje. W okienku, które się nam otworzy klikamy w prawym górnym rogu na Zaawansowane i następnie przycisk Edytor ustawień.

Wyskoczy nam okienko z mega tajnymi kodami-ustawieniami 😉

W pole Filtr wpisujemy frazę app.http.

Jeśli znajdzie nam pola network.protocol-handler.app.http i/lub network.protocol-handler.app.https to w kolumnie wartość widzimy ścieżkę do programu, który odpowiada za otwieranie linków (http lub https) z wiadomości email. Jeśli wartością tą jest nic, lub ścieżka do programu innego niż ten, którym chcemy otwierać linki, to klikamy prawym przyciskiem mychy na właściwą linię, a następnie na modyfikuj. W okienku, które wyskoczy podajemy ścieżkę do naszej ulubionej przeglądarki, np. /usr/bin/firefox.

Bywa jednak, że nie mamy takich wartości. Wówczas klikamy prawym przyciskiem mychy gdzieś na białe pole (to, w którym jest dużo tych różnych napisów 😉 ), z menu, które się nam ukaże wybieramy Dodaj ustawienie typu→łańcuch. Wyskoczy nam okienko, w które wpisujemy nazwę network.protocol-handler.app.http, klikamy OK. W kolejnym okienku podajemy wartość – pełną ścieżkę do aplikacji przeglądarki internetowej, która ma nam otwierać linki z thunderbirda. W moim przypadku wpisałem /usr/bin/firefox.

Czynności te powtarzamy dla nazwy network.protocol-handler.app.https. Zamykamy okienka z konfiguracją, opcjami, itp.

Otwieramy jakiegoś maila z linkami, klikamy na linka, i… TADA!!! Bangla, gra i trąbi – otwiera się link w naszej ulubionej przeglądareczce 🙂

edit @ 2011-05-08:

Napisał do mnie pewien Tomek (thx), może się komuś przydać:

„cześć, jeżeli pomimo powyższych ustawień ktoś ma dalej problemy, to trzeba odnaleźć wpisy:
network.protocol-handler.warn-external.http
network.protocol-handler.warn-external.https
network.protocol-handler.warn-external.ftp

i dla każdego z nich zmienić wartość na true. Wówczas TB zapyta się o podanie lokalizacji przeglądarki, którą znajdujemy jak wyżej w artykule i dodatkowy zaznaczamy zapisanie ustawień. No i tyle… Voila :)”
Category: Bez kategorii  Tags: ,  7 komentarzy

Błąd wysłania formularza

Ku pamięci…
Nazwa funkcji w JS nie może być taka sama jak id jakiegoś pola formularza.
FF sobie radzi, opera i m$ – nie.

Żeby nie być gołosłownym…
W pewnym projekcie zaistniała potrzeba użycia javascriptu do submitu formularza z uprzednim podmienieniem wartości pola hidden na wartość podaną jako parametr funkcji.
Czuję, że jak zwykle zakręciłem i nie wiadomo o co mi chodzi.
Do rzeczy więc.
Mamy sobie stronkę:




http-equiv="Content-Type" content="text/html; charset=iso-8859-2" />
Form error
name="author" content="Kashub" />

>
<?
if(!empty($_POST)) {
echo '
POST:
' . var_export($_POST, 1) . '

‚;
}
?>

action=„” method=„post” id=„updateWirtForm”>
type=„text/javascript”>
function sru(avid) {
document.getElementById(‚sru’).value = avid;
document.getElementById(‚updateWirtForm’).submit();
}

type=„hidden” name=„sru” id=„sru” value=„” />
href=„#” onclick=„sru(‚1’)”/>wyślij z podmianą hiddena



Na pierwszy rzut oka nic szczególnego – po kliknięciu na link ma się ustawić wartość wpolu hidden i wysłać formularz.
W wyniku spodziewamy się czegoś takiego:

POST:
array (
'sru' => '1',
)

wyślij z podmianą hiddena

… i tak też się dzieje na Firefoksie.
Wszystko było by fajnie, ale spójrzmy co na to np. Opera:

JavaScript - http://localhost/f.php
Event thread: click
Error:

name: TypeError

message: Statement on line 1: The Object does not implement [[Call]]
Backtrace:
Line 1 of script

sru("1");
At unknown location

[statement source code not available]

Również pod m$ie zaawansowany debug wyświetlił niezwykle treściwą informację – „Błąd na stronie”. Być może dało by się gdzieś doczytać komunikat, ale pod winkiem jakoś nie da się ni
c więcej 🙂

Rozwiązanie okazało się bardzo proste, ale nieco nieoczekiwane. Wystarczy zmienić albo nazwę funkcji w javascript albo id hiddena w formie.
Mam nadzieję, że zaoszczędzę komuś nieco czasu dzięki temu wpisowi 🙂