Category Archives: tech

Skrętność wielokątów

Dziś geometria ;P

W pracy ostatnio pojawił się problem – czy wierzchołki wielokąta są ułożone zgodnie z kierunkiem ruchu wskazówek zegara czy wręcz przeciwnie? Potrzebna była szybka i tania (w sensie obliczeniowym) metoda określenia owego ułożenia.

skretny

Ok, patrząc na obrazek widzimy od razu ;P A programowo?

Jak widać na rysunku wyznaczamy sobie 4 (w pewnych szczególnych przypadkach 3) punkty brzegowe – górny, prawy, dolny, lewy – opisując prostokąt na wielokącie. Znalezienie tych punktów jest proste i tanie – wystarczy raz przejrzeć listę współrzędnych.

Zapisujemy sobie numery tych punktów prawoskrętnie do array-a: 1,2,7,9. Jeśli ciąg jest rosnący – mamy prawoskrętny. Jeśli malejący – lewoskrętny.

Ok, a co, jeśli nam się figura obróci o 180 stopni i dostaniemy: 7,9,1,2 ? Ciąg nie jest już rosnący ;P Rozwiązań jest parę. Można szukać punktu nieciągłości i próbować splice tablicy zrobić i merge potem. Można sprawdzić, jaki jest największy element w tablicy i dodać taką wartość do wszystkich mniejszych. Przy 4 elementach będzie to nadal szybkie i proste: 7, 9, 10(1+9), 11(2+9).

Jak sprawdzić, czy ciąg jest rosnący?

$up = $points;
sort($up);
if(join($up)==join($points))
{
echo "rosnący";
}

Cała operacja jest prosta i szybka – zależna liniowo od ilości wierzchołków wielokąta.

Przesyłanie haseł mailem przy zakładaniu kont

Normalnie mnie trafia, jak na którymś już z rzędu portalu po rejestracji w mailu aktywacyjnym dostaję wpisane wcześniej hasło otwartym tekstem.

Szanowni pro(?)jektanci, koderzy i inni macherzy-chałturnicy – ja swoje hasło znam! Nie trzeba mi go przesyłać. A jak będę chciał je upublicznić to wyjdę przed blok o 4 rano i wykrzyczę je w te wszystkie ciemne, zaspane okna!

Poza tym – jak dostaję hasło otwartym tekstem to zaczynam się obawiać, w jakiej formie jest ono przechowywane w tych serwisach – czy przypadkiem nie jest również jawne. Bo jak któryś portalik walnie wtopę jak wykop*, to nawet w tęczowe tabelki nie będzie trza się bawić.

Dziś do niechlubnego grona dołączył FrazPC. Wcześniej wtopiło Pstro, LiberKey (!!!), Wiadomości24, LiveDrive (!!!), VMware (!!!), Blip i DobreProgramy. W owym niechlubnym towarzystwie pokutuje jeszcze wiele innych sajtów, ale szkoda na nie klawiry…

UPDATE (2009-10-20):

Tak mi przyszło, że jeśli twórcy systemów obawiają się zalewu userów, którzy będą mieli problemy ze swoimi hasłami, mogą dodać checkboxa (domyślnie zaznaczonego): „Tak, jestem lamą, nie potrafię zapamiętać swojego hasła, proszę, prześlijcie mi moje hasło mailem, aby cały świat pamiętał je razem ze mną”, który będzie owocował wysłaniem maila z url-em do sajta, loginem i hasłem otwartym tekstem.

* Nie, nie mam jednego hasła do wszystkich portali.

WordPress w osobnym katalogu

Defaultowo WordPress życzy sobie być w katalogu głównym. Można go też zainstalować w podkatalogu, ale w url-u mamy wtedy ów katalog, np u mnie byłoby to http://zibi.nora.pl/blog/. Można też zainstalować sobie w podkatalogu (np /blog/) i zrobić odpowiednie przemapowania w htaccess (mod_rewrite się kłania). Mamy wtedy porządek na koncie (cały WordPress ląduje w osobnym folderze) a w url-u nie mamy śmieci.

Jedyny minus tego rozwiązania to problem z niektórymi pluginami, które się gubią w takich sytuacjach (np niektóre ajaxowe panele) i szukają w ścieżce bez dodatkowego folderu (np /wp-admin/admin-ajax.php zamiast /blog/wp-admin/admin-ajax.php) i dostają 404. Dotyczy to niektórych wywołań ajax-owych i niektórych grafik. Pomaga dopisanie do .htaccess:


RewriteRule ^wp-(.*) blog/wp-$1 [L]

Label ToDo w Gmailu

W Gmailu pojawił się moduł Tasks. Jako że lista zadań tworzona z palca mnie nie urządza chciałem zrobić sobie label ToDo. Gmail jednak to oprotestował krzycząc, że label invalid. Skłoniło mnie to do poszperania po menu gmailowym i jest! W „More actions” jest „Add to Tasks”. Tworzy nam to nowego taska i przywiązuje do niego maila.
Fajne, działa.