VoIP a serwisy używające tonowego wybierania DTMF (np. mBank)

Od ponad 2 lat korzystamy w domu z VoIP (najpierw był to Halonet, a teraz IPFon) zamiast stacjonarnego telefonu. Ostatnio – jako że przeszedłem na Linuxa i musiałem zainstalować Windows w maszynie wirtualnej, co wiązało się z telefoniczną aktywacją w Microsofcie – okazało się że są problemy z korzystaniem z wybierania tonowego – zaskakiwało tylko co któreś wciśnięcie klawisza, więc aktywacja (9 grup po 6 cyfr!!) Windowsa okazała się niewykonalna.

Technicy z IPFona doradzili taką prostą zmianę w ustawieniach bramki VoIP:

DTMF Tx METHOD zmienić z AUTO na INFO

Pomogło!

[en] Running CodeIgniter controller methods from external application

Gosh, this blog gets too technical 🙁 I guess I need to start writing some kind of non-IT journal here. You know, the teenage-pink-blog style 😉

Anyway, more for my own reference.

CodeIgniter is a nice and nonintrusive PHP application framework that I’ve grown to like and use it (also commercially). The problem is integrating its MVC with external applications such as CMSes.

Here’s a quick hack I’ve done to make this possible:

1. Create „external” subdirectory under „system” directory of CodeIgniter installation.
2. Place attached files there.
3. Open „system/libraries/Loader.php” file and patch it like this: find line 681 and change

global $OUT;
$OUT->set_output(ob_get_contents());

to

global $OUT;
if (!isset($OUT)) $OUT = $GLOBALS['ci_external_out'];
$OUT->set_output(ob_get_contents());

4. For example of use, see attached index.php file, basically to call a controller method, just do this:

require_once 'ciexternal.php';
echo ci_external('controller', 'method');

MySQL, JDBC a polskie krzaczki

Instaluję MySQL 5.1, tworzę na nim bazę danych i ustawiam jej kodowanie znaków na UTF-8.

W javowym kodzie wszystkie stringi są w Unicode. Rzeczy, które wczytuję z pliku XML są w nim w UTF-8.

Przez JDBC wrzucam je do bazy, pobieram z powrotem i… zamiast polskich krzaczków mam ????? :>

Rozwiązanie – dopisać do connection stringa JDBC:

jdbc:mysql://serwer:3306/baza?useUnicode=true&characterEncoding=UTF-8

Krop Spam – permanently stop spam in your blog comments

I’ve been tired of comment spam at my blogs (I also use WordPress as a CMS engine so comment spam is even more pain in the ass) so I have created a method to stop it. My method proved to be very efficient and doesn’t need any human interaction (while plugins such as Akismet require blog owner to periodically look through spam folder to check if there aren’t any false positives). I have decided to wrap it up in a plugin.

How does it work?

Well, I’ve noticed that spambots usually directly attack the wp-comments-post.php script that is a WordPress comment processing script. Some (but this is really rare) spammers also try to parse the WWW page and when they find a <form> there, they just blindly fill it in and submit.

If you look into any WordPress template source code, you’ll find that there is a <textarea name=”comment”> somewhere inside. This is a text field for comment content that user enters. Spammers just fill it in with garbage.

What my plugin does is change this <textarea> name to something meaningless for spammers (by default its „komentarzyk” which means „a little comment” in Polish 😉 ). This way, whenever a spammer attacks your wp-comments-post.php directly, he doesn’t fill now required „komentarzyk” field and the comment is not added. Moreover, my plugin leaves the <textarea name=”comment” in the source code, but makes it small (1 row and 1 column only) and tries to hide it through CSS (display: none) so human user will probably not fill that field in. Spammers don’t bother to check textarea’s size nor do they understand CSS, so even when they parse your webpage, they not only fill in required „komentarzyk” field, but also fill in the „comment” field (because they fill in just everything they find). This way they let your blog now they are bad people – if „comment” field is filled in, probably machine filled in your comment form instead of human. So we refuse the comment to be added.

So, how to install the plugin?

1. Download the Krop Spam plugin and unzip it into your WordPress wp-content/plugins directory.
2. Enable the plugin in WordPress admin.
3. Open up wp-comments-post.php in your favorite text editor and find a line that says:

$comment_content = trim($_POST['comment']);  

4. Replace this line with following fragment:

if(trim($_POST['comment']) != '') wp_die( __('Sorry, small comments field should be left empty - it\'s a spam trap.'));
$comment_content = trim($_POST['komentarzyk']);

5. You’re done 🙂

I have tested the plugin with few WordPress themes found on the internet and it works correctly. The only plugin’s requirement is that it needs to have access to any temporary directory (usually /tmp) on the server. It’s almost always possible. If not – talk to you provider.

How efficient is it?

I have been using this method at my Karkonosze page since a few months ago and it decreased the number of spam I receive from 20-30 a week to 1 in 3 months. There’s no guarantee it will work for you though 😉

Porady remontowe: przygotowania

Jeśli drogi Czytelniku – tak jak ja niecały rok temu – planujesz w domu generalny (albo i mniejszy) remont, myślę że mogę Ci podpowiedzieć parę istotnych rzeczy. Być może dzięki moim poradom unikniesz niepotrzebnego stresu, a może i wydatków. A przede wszystkim unikniesz błędów, które ja popełniłem 🙂

Przygotowania

  • Zmierz dokładnie każdą ścianę i każdy kąt w mieszkaniu i sporządź jego plan na papierze milimetrowym. Jeśli masz taki plan od administracji budynku – nie wierz mu; na moim, podpisanym przez architekta, planie wymiary różniły się od rzeczywistości nawet o 15-30cm. Może to nie jest bardzo dużo, ale może spowodować, że np. nie zmieści Ci się w łazience wybrana wanna.
  • Możesz skorzystać z programów komputerowych wspomagających projektowanie takich, jak KitchenDraw, FloorPlan czy nawet AutoCAD – ale do jednego remontu nie warto moim zdaniem wydawać na nie pieniędzy i tracić czasu na ich naukę. Zamiast tego przejdź się po sklepach z meblami, AGD, itp. i pozbieraj katalogi. Możesz także pobuszować po internecie. Na podstawie wymiarów sporządź rysunki sprzętów i mebli, które chcesz umieścić w mieszkaniu w takiej samej skali, w jakiej zrobiłeś plan i wytnij je z papieru – będziesz mógł je do woli przestawiać i przymierzać 😉
  • Jeśli robisz remont generalny, nie bój się wyburzania, przesuwania czy dostawiania ścian działowych. Układ – zwłaszcza budowanych z wielkiej płyty – mieszkań rzadko jest przemyślany i na ogół wiele można poprawić. Pomyśl np. czy nie będzie dobrze małą kuchnię połączyć z pokojem dziennym w formie aneksu kuchennego, co powiększy całe pomieszczenie. Wyburzenie ściany nie jest bardzo drogie – a generalny remont robisz na lata. Stawianie nowych ścianek i różnego rodzaju murków jest tanie – a wydzielenie funkcjonalnej części pomieszczenia przy ich pomocy może dać nawet niewielkiemu pomieszczeniu sporą dawkę uniwersalności – np. możesz wydzielić w sypialni kącik do pracy lub ukryć za ścianką buczącą lodówkę w aneksie kuchennym. W ściankach takich możesz także zrobić półki i umieścić ciekawe oświetlenie, co doda pomieszczeniu uroku.
  • Pamiętaj, że papier zniesie wszystko – nie żałuj czasu na wymyślenie swojego mieszkania. Weź pod uwagę, ile osób w nim mieszka, czy są małe dzieci, czy potrzebne jest miejsce do nauki, do pracy, wypoczynku… Pooglądaj czasopisma poświęcone wystrojowi wnętrz – są one kopalnią ciekawych pomysłów.

Ciąg dalszy nastąpi…