• Нов дизайн на блога

    Помислих си, че блога ми има нужда от нови дрешки и му ги дадох. Освен по-ползваемия дизайн има и интеграция с twitter, както и поленце за реклама, което вече използвам на 100%. Разбира се, нямаше как да не интегрирам и FriendConnect на голямото G и разни други екстри.

    С пожелание да ме четете не само през RSS ви пожелавам чудесен уикенд.

  • Миков strikes back

    Бившият вътрешен министър, Михаил Миков, се очаква да влезе в състава на комисията по вътрешна сигурност, чийто основен ресор, ще бъде и промяната в Закона за електронните съобщения в частта й за използване на данни от Интернет и мобилни телефони, плюс още няколко ‘интересни’ законови актове.

    Ще е интересна борба !

  • Малко идеи за свободата в ИТ – книжка – (нова)

    Има нова версия на кратката e-книга за начинаещи и малко напреднали, относно свободния софтуер, софтуера с отворен код, отворените стандарти, отворените файлови формати и електронното правителство, която пуснах преди 2 седмици

    koricata

    Информацията е много сбита и полезна, ако досега не сте се сбълсквали с горните понятия. Ако сте, може би, ще имате желанието да го допълните и да го издадете вие като производно на този материал.


    Нова версия

    Новата версия е с оправени правописни грешки и има още малко информация. Освен всичко това вече е само 1.4 МБ.

    СВАЛЕТЕ ОТ ТУК./ DOWNLOAD


    Oгледала  за по-бързо сваляне

    По огледалата, все още е старата версия на книжката. Ако хората предоставили тези огледала, могат да качат новата версия, ще напиша отново препратките. Благодаря !

    Подкрепа

    Ако книжката ви е харесала, моля, дарете 1 лев (или друга сума) от тук. Като подарък за жеста, ще ви изпратя следващата си книжка, първо на вас, ако ми пишете мейл на bogomil@spisanie.com

  • Домейни на кирилица ли?

    Четейки тази новина от сайта на НИ, се чудя какви ли още неща ще сполетят Интернет:

    Говорещите български и гръцки скоро ще разполагат с уебсайтове в европейския домейн „eu“, чийто адрес е на собствените им езици.

    Европейската комисия прие нови правила за Европейския съюз, позволяващи да се регистрират домейни в рамките на „eu“ с буквите на всичките 23 официални езика в съюза.

    В публикуван днес доклад на Европейската комисия за развитието на европейския домейн от първо ниво „eu“ се посочва, че броят на регистрираните имена в домейна е нараствал с по 11% през 2007 и 2008 година и вече е надхвърлил три милиона.

    Вие какво мислите по този въпрос? Да има или да няма домейни на кирилица, особено ‘.еу’ или както там ще му е завършека :)

  • Утре, дискусия за Интернет

    Утре Червената къща организира дискусия за Интернет и за политиката в световната мрежа, че участват следните зверове:

    Богомил Шопов – Партия „Зелените“ и по-скоро от „Електронна граница“
    Борис Луканов – Партия „Зелените“
    Владимир Дончев – БНД
    Георги Миланов – Лидер
    Давид Леви – РЗС
    Добри Божилов – Интернет партия
    Ивайло Йонков – ДСБ
    Константин Павлов – предизборен щаб „Синята коалиция“
    Николай Свинаров – БНД
    Росица Великова – ГЕРБ
    Христо Христов – активен блогър
    Христиан Даскалов – активен блогър
    Александър Маринов – СУ
    Алексей Пампоров – Институт Отворено общество
    Ирена Тодорова – НБУ
    Ружа Смилова – СУ

    Мисля си , че входа е свободен в Червената къша от 18 00 часа, зала Пеша Николова.

  • Прост бот за Twitter

    Aко искате да започнете да програмирате за twitter под PHP, ето ви и добро начало. Да създадем един прост бот, който при получаване на директно съобщение със съдържание ‘късмет’ да връща на подателя късметче.

    Tова колкото и да е просто, като логика, може да ви запознае с начина на работа на API на Twitter, за което и аз ще се погрижа по-нататък, но е добре, ако започнете сами :)

    Лесно и полезно!

    Дефинираме класа и задаваме променливите:

    Class bTwitter{
    var $username = ""; //тук се слага потребителското име на twiter акаунта, който ще слушаме
    var $password = ""; //тук се слага паролата

    Стъпка 2: Да напишем функция, която да взема директното съобщение от входящата ви кутия в Twitter:


    function getmessages()
    {
    $username = $this->username;
    $password = $this->password;
    $curl = curl_init();
    curl_setopt($curl, CURLOPT_CONNECTTIMEOUT, 2);
    curl_setopt($curl, CURLOPT_HEADER, false);
    curl_setopt($curl, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($curl, CURLOPT_USERPWD, "$username:$password");
    curl_setopt($curl, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1);
    curl_setopt($curl, CURLOPT_URL, "http://twitter.com/direct_messages.json");
    return $result = curl_exec($curl);
    curl_close($curl);
    }

    Стъпка 3: Да напишем функция, която да изтрива съобщението, след като сме изпратили късметчето:


    function deletemessage($id)
    {
    $username = $this->username;
    $password = $this->password;
    $curl = curl_init();
    curl_setopt($curl, CURLOPT_CONNECTTIMEOUT, 2);
    curl_setopt($curl, CURLOPT_HEADER, false);
    curl_setopt($curl, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($curl, CURLOPT_USERPWD, "$username:$password");
    curl_setopt($curl, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1);
    curl_setopt($curl, CURLOPT_URL, "http://twitter.com/direct_messages/destroy/".$id.".json");
    curl_setopt($curl, CURLOPT_POST, true);
    return $result = curl_exec($curl);
    curl_close($curl);
    }

    Стъпка 4: Да направим функция, която да връща случаен късмет:

    function getKasmet()
    {
    $k[] = "Държавна лотария, тото, на твоя страна е числото! ";
    $k[] = "Стягай багажа за воаяжа! ";
    $k[] = "Кариера ще ти е приоритет –я министър, депутат – напред! ";
    $k[] = "Тук няма искаш и не щеш – в службата ще порастеш! ";
    $k[] = "Не се шегувам, ти печелиш – късмета скоро ще намериш. ";
    $k[] = "На съседа бричката си подари,че нова кола ще караш ти!";
    $k[] = "От Бил Гейтс ще се отървеш, с компютър с Линукс ще се обзаведеш";
    $k[] = "Паричките ти в портмонето ще са като звездичките в небето. ";
    $k[] = "Яки запивки, чаровни забивки и много усмивки! Успехи в бранша и чупки в ханша, здраве в изобилие и радост до безсилие ";
    $k[] = "По-добре е да не започваш, отколкото да спреш на половината път.";
    $k[] = "За плахия и колебаещия се, всичко е невъзможно, защото му изглежда така.";
    $k[] = "Не е познал сладкото този, който не е изпитал горчивото. Силата е търпение и време.";
    $k[] = "Можете да постигнете всичко, което пожелаете, но не може да имате всичко на този свят...";
    return $k[rand(0, 12)];
    }

    Стъпка 5: Да направим функция, която да изпраща съобщението до подателя:


    function sendmessage($to)
    {
    $kasmet = $this->getKasmet();
    $postData = array("user"=>"$to", "text"=>$kasmet);
    print_r($postData);
    $username = $this->username;
    $password = $this->password;
    $curl = curl_init();
    curl_setopt($curl, CURLOPT_CONNECTTIMEOUT, 2);
    curl_setopt($curl, CURLOPT_HEADER, false);
    curl_setopt($curl, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($curl, CURLOPT_USERPWD, "$username:$password");
    curl_setopt($curl, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1);
    curl_setopt($curl, CURLOPT_POST, true);
    curl_setopt($curl, CURLOPT_HTTPHEADER, array('Expect:'));
    curl_setopt($curl, CURLOPT_POSTFIELDS, $postData);
    curl_setopt($curl, CURLOPT_URL, "http://twitter.com/direct_messages/new.xml");
    return $result = curl_exec($curl);
    curl_close($curl);
    }
    }

    Да изпробваме какво сме направили:

    $bt= new bTwitter; // инициираме класа
    $result = $bt->getmessages(); //вземаме съобщенията от входящата кутия
    $r=json_decode($result,true); //декодираме формата им от json към масив
    $size = count($r);
    for ($i = 0; $i<$size; $i++) //започваме да ги обхождаме { // ако съдържат ключовата дума 'късмет' if (ereg('късмет',$r[$i]['text'])) { $bt->sendmessage($r[$i]['sender_screen_name']); // изпращаме съобщението
    $bt->deletemessage($r[$i]['id']); //изтриваме директното съобщение
    }
    }

    Оптимизации върху кода може да има много, което много добре разбирам :)