Вниз ↓

Reebok атжог

Вона — це...

Reebok Україна.

Ubuntu 9.10

Шо ж за?

Такий період в житті, що не можу працювати через об’єктивні обставини, загалом не варто думати багато, тому вирішив зайнятись тим, щоб привести свою робочу станцію до порядку. Будучи дуже уважний зніс /home, за що дуже шкодую, але зараз поставив нову систему. Можу відчувати себе молодцом, бо намєдні купив підписку на last.fm і тепер можу слухати свою музику звідти. Вся колекція лаунджа в flac пішла по.... лісом. Прийдеться викачувати наново. Всі документа бекапляться регулярно на переносний вінчестер WD, тому з ними проблеми не дуже є. Те, що мені потрібно по роботі є в репозиторіях на тих чи інших серверах, єдине шо останні зміни в два проекти прийдеться зробити наново і закомітитись. Буде ще один урок мені.

Ubuntu 9.10 beta

Розписався, а всьо не про те. Коли дійшло до відновлення системи, то вирішив дати шанс новій Убунті 9.10, яка поки бета. Одразу скажу, що приємно вражений, хоча деякі проблеми з попередній релізів залишились. Наприклад скайп. Дзвонити і разбалаківать вже можна з коробки, але ось плеєр дуситься, коли скайп каже якийсь звук. Лічиться таке захворювання за допомогою простих речей:

$ sudo aptitude install pavucontrol

Потім біжимо в скайп і робимо тестовий дзвінок з настройок. Також можете до когось дзвонити, але краще нікого цим не турбувати. Під час дзвінка йдемо в pavucontrol (саме так, Pulse Audio Volume Control). Переходимо на закладку Recording і міняємо input from на Internal Audio Analog Stereo. Все, тепер звук не буде у вас перериватись. Можете спати спокійно.

Аудіо плеєр

В силу того, що більше на вінчестері музики немає, то і змінив програвача з Quod Libet на Songbird.

Шрифти

Побачив недавно гарні маковські шрифти і захотів собі такі самі. Якщо чесно, крім Liberation, під лінупсом не знайшлось годинх. Мінітуторіал по установці вищезгаданих маковських шрифтів далі:

  1. Качаєм їх по ссилці вище
  2. А потім в терміналі робимо наступне:

    $ tar -zxvf macfonts.tar.gz

  3. Переміщаємо їх в потрібну локацію

    $ sudo mv macfonts/. /usr/share/fonts/

  4. Оновлюємо кеш шрифтів:

    $ sudo fc-cache -f -v

  5. Вуалля. Lucida Grande — те що мені було потрібно.

Neocube

Неокуб

Неокуб — головоломка, яку я недавно придбав в Nahodka.com.ua. З доставкою і оплатою проблем не було, тому ссилка нехай буде. Виглядає ця штука так як зображено на двох наступних картинках.

Запакований так виглядає

Розпакований так виглядає

Як же складати?

Я ним грався раніше, мав теоретичну підготовку і вирішив поділитись класною штукою з читачами блогу. Отож, зімнемо свого кубика в какашку, розмазану і гарненьку, приблизно таку як зображено на картинці зліва, розтягуємо ниткою як на картинці по середині, і як кому зручно, я змотую в таку кругляшку, як справа.

Тату, я закручую

Не дурно я закручую в кругляшку. Лягає на палець (головне не перетиснути), зручно рахувати і розмотувати.

Палець

Стоп-стоп, я не поняв, шо рахувати?

В основі більшості форм лежать дуже прості геометричні фігури: коло, маленький трикутник, великий трикутник, шестигранник. Зверху матеріали з чого їх робити, знизу саме вони, в такій послідовності, як вказано вище.

Базові фігури

Lined & Interlinked

Також майте на увазі, що ваші зв’язки між шариками будуються так само як між магнітами. Якщо полюса двох смужок направлені в одному напрямку, тоді магніти стають лініями, як зліва, а якщо в різні сторони — відповідно як справа.

Лінійні і перехресні з’єднання

Ви ще хотіли шось читати? Ні, це всі основні правила. Далі в категорії буду публікувати мануали як скручувати всякі цікавості по ходу того, що навчусь.

Місто запахів

Вийшло так, що ночєрам гуляв містом, з друзями, з наушниками потім. Тернопіль — красиве і -чисте- місто. Зараз мусорники переповнені. Міській раді пофіг, всім пофіг. Думав розбавити цей пост картинками з гугла, класні знайшлись.

Сміття

Ще сміття

Третя картинка в гуглі по запиту сміття в Тернополі

Зверніть увагу на третю фотографію.

фотографії використано перші три з пошуку гугла по запиту сміття в Тернополі.

Doctrine і Kohana3

Doctrine

Doctrine — це бібліотека ORM. По MVC-паттерну код генерований за допомогою Doctrine можна дуже класно використовувати замість kohana ORM або кастомних моделей. Доктрина має ряд няшок, якими б хотілось скористуватись:

  • Автоматична генерація моделей. Потім дуже зручно їх міняти, бо створюється спеціально доктриновський клас від якого наслідується вже ваш, який власне і міняємо.
  • Можливість задавати базу і моделі за допомогою yaml, що є дуже зручно і зрозуміло. SQL створення бази генерується, моделі генеруються, всьо добре.
  • Решту няшок просто пронумерую: раз два три.

Скачати.

Kohana 3

Kohana 3, як показує ссилка ось-ось зарелізиться, але проекти не чекають. Щоб йти в ногу з технологіями потрібно приймати ризиковані новаторські рішення. Більше того, по моїм перечитуванням коду реліз кандидату склалось дуже приємне враження, оптимізували і дуже спростили ядро, не втрачаючи необхідного функціоналу звісно. Скачати останню версію.

Процедура

Власне нам потрібно створити модуль kohana, який буде в собі включати доктріну. Відволікатись на таку просту процедуру ми не будемо, в нас doctrine буде лежати в... ну з конфіга буде краще видно я думаю.

Kohana::modules(array( 
//    'database'  => MODPATH.'database', Database 
//    'kodoc'      => MODPATH.'kodoc',      // Kohana documentation 
//    'orm'        => MODPATH.'orm',        // Object Relationship Mapping (not complete) 
    'auth'   => MODPATH.'auth',   // Database access 
    'pagination' => MODPATH.'pagination', // Paging of results 
    'image'      => MODPATH.'image',      // Image manipulation 
    'doctrine'   => MODPATH.'doctrine',   // Doctrine ORM 
);

Ми виключаємо рідний kohana orm і ActiveRecord і підключаємо натомість doctrine. Далі в папці з модулем доктріни ложимо файлик init.php (вот за що я люблю kohana, тут всьо продумано) з наступним вмістом.

<?php
/* Doctrine integration */
require Kohana::find_file('classes', 'doctrine/Doctrine');
/* Реєструємо аутолоадер. Після розробки доктріну можна скомпілити в один файл
 * розміров 800кб правда. Не думаю шо там можна шось сильно оптимізувати.
 * Суть в тому, що треба виключити буде аутолоадер. якщо буде скомпілений файл.
 */
spl_autoload_register(array('Doctrine', 'autoload'));
// Читаємо конфіги для конекту з базою даних
$db = Kohana::config('database')->doctrine;
// Получаємо менеджер доктріни
$manager = Doctrine_Manager::getInstance();
//Створюємо конект
$manager->connection('mysql://'.$db['user'].':'.$db['password'].'@'.$db['host'].'/'.$db['database'], 'default_connection');
// @see http://www.doctrine-project.org/documentation/manual/1_1/en/configuration
$manager->setAttribute(Doctrine::ATTR_MODEL_LOADING, Doctrine::MODEL_LOADING_CONSERVATIVE);
$manager->setAttribute(Doctrine::ATTR_VALIDATE, Doctrine::VALIDATE_ALL);
$manager->setAttribute(Doctrine::ATTR_DEFAULT_IDENTIFIER_OPTIONS, array('name' => '%s_id', 'type' => 'int', 'length' => 11));
$manager->setAttribute(Doctrine::ATTR_PORTABILITY, Doctrine::PORTABILITY_ALL);
$manager->setAttribute(Doctrine::ATTR_QUOTE_IDENTIFIER, true);
$manager->setAttribute(Doctrine::ATTR_EXPORT, Doctrine::EXPORT_ALL);
$manager->setAttribute(Doctrine::ATTR_TBLNAME_FORMAT, $db['prefix'].'_%s');
$manager->setAttribute(Doctrine::ATTR_AUTOLOAD_TABLE_CLASSES, true);
// Доктринові моделі будуть лежати не в classes/ а окремо в MODPATH
Doctrine::loadModels(APPPATH.'models');

Вроді все прокоментовано. Єдине запитання може виникати до конфігураційного файла бази даних. Вот доречі і він:

<?php

return array(
    'doctrine' => array(
        'user'      => 'username',
        'password'  => 'supersecretpasword',
        'host'      => 'localhost',
        'database'  => 'fancy_site',
        'prefix'    => 'wtfpl',
    )
);

Отак отримуємо інтегровану Doctrine в kohana. Опісля, якщо у вас з модулями йдуть моделі доктрини, то в тому ж init.php ставимо наступне:

Doctrine::loadModels(MODPATH.'blog/models');

для модуля блогу наприклад ;)

Бонус

Також викладаю вам спеціально драйвер бібліотеки Auth для використання з doctrine. Розібратись де його поставити зовсім не важко (правда я півдня думав чи його пхати до auth чи до doctrine). Да, ще одне, використовуючи бібліотеку авторизації треба уважно слідкувати за цією сторіночкою.

Код драйвера власне тут. Я думаю резонно його включити в модуль auth, хоча б для того, щоб якщо хтось ще задастся таким питанням, то зможе використати. Да, драйвер ще не тестований, тому можуть бути очевидні завтики, але походу реалізований.

Чому я не дивився Хауса

Розгорнута відповідь на питання "чому я не дивився Хауса та інших популярних серіалів сьогодення?" виражається однією картинкою.

House emotions