Select orthographic mistake with the mouse pointer and press Ctrl+Enter. Let’s make our language cleaner!
Якщо помітите помилку на цій сторінці, будь ласка, виділіть її вказівником миші та натисніть Ctrl+Enter. Зробімо наше мовлення чистішим!
Показ дописів із міткою linux. Показати всі дописи
Показ дописів із міткою linux. Показати всі дописи

2009-10-13

Hello, world!

Як зізнався, що закінчив радіофізичний факультет, мені запропонували практичну задачу: треба побудувати стартовий годинник, щоб він бікав від 55-ї до 60-ї секунди щохвилини. А що,— подумалося,— адже не ликом ми пошиті. Почавши потрохи розбиратися з мікроконтролерами PIC, осяяло: все знайоме; дідько, ми ж стільки теорії вже вивчили, навіть були якісь лабораторні, щось моделювали на SPICE тощо!

Словом, мене захопило… До того ж є додатковий виклик: розробляти з допомогою відкритих та безкоштовних інструментів. gEDA, SDCC, GPUTILS, gpsim — вони незаслужено уникаються професійними інженерами.

Нарешті за тиждень збірки й налаштування запрацювала перша доробка-мигалка (Hello, world!). Щоразу чогось бракувало: то з’ясувалося, що половинки плати не з’єднані між собою, і деталі довелося переставити; то програматор ICD2 не визначається системою (треба було просто не підключати до нього блок живлення). А вже геть несподіванкою стало те, що у мікроконтролера немає власного генератора (подяка Армену за підказку), і годі його завести без зовнішнього осцилятора.

Нарешті, як все запрацювало, далі буде легше. Адже тепер є який-не-який досвід. Електроніка — це чудово, радіофізичний факультет — це сила!

2008-12-12

At last!

They did it finally, I’ll be able to edit more unicode texts in GNOME terminal.

2008-11-03

Лінукс очима розробника

(Стаття для http://www.grusha.org.ua)

Почалося все ще в університеті: на першому курсі лабораторні з програмування у класі HP Unix, потім Visual FoxPro у Windows NT4, лабораторні з чисельних методів знову в HPUX, невелика перерва, кафедральні спецкурси у Visual Studio 98. Далі перша робота на півтора місяця, де спробував було поставити собі RH Linux 5, але не подужав. Потім чотири роки розробки систем охорони у компанії ITV. Хоч і розробляли у Windows, ознайомився й почав використовувати переважно відкриті продукти: Vim для редагування, MinGW для компіляції, WiX для збірки інсталяційних пакетів. Нарешті, останні два роки працюю виключно в середовищі GNU/Linux у компанії Visonic, беру участь у розробці їхніх прикладних серверів та охоронних панелей.

Отже, панове, світу я побачив небагато, але якусь-таки думку про побачене довелося скласти. У цій коротенькій статті хочу поділитися з вами відповідями на два запитання:

  • Чому мій роботодавець обрав GNU/Linux для розробки своїх продуктів?
  • Чому я та мої колеги обрали GNU/Linux для повсякденної роботи?

Чому розробка для GNU/Linux?

Ми подібні до карликів на плечах гігантів.

Бернар де Шартр

Навіть на теренах систем охорони, традиційно стабільному ринку, в якому гравці добре знають один одного десятки років, відбувається конкуренція: нові продукти, нові якості, нові вимоги. З розвитком нових технологій з’являються нові можливості, без яких покупці не звертають увагу на продукцію. Наприклад, з розвитком інтернету та вебу користувачі схотіли отримати доступ до охоронної системи свого житла зі звичайного оглядача: якщо дитина повернулася раніше зі школи, зняти з охорони, дистанційно вимикати побутові прилади, переглядати зображення з камер, якщо трапилася-таки тривога тощо. Отже, перед розробником вибір: або самому написати стек протоколів інтернету (IP) або скористатися вже готовим.

Правда, вибрати серед готових платформ для розробки непросто: доводиться шукати компроміс між пропонованими засобами, якостями, підтримкою, ціною. Власне, для маркетингу всі ці терміни вимірюються кількістю грошей: додаткові риси — плюс до вартості приладу, проблеми з розробкою та супроводом — плюс до витрат, та ще й власна вартість. Тому попри особисті вподобання розробників рішення приймається прагматично. Цього разу вони таки співпали.

Отже, для побудови веб-комунікатора PowerLink компанія Visonic вибрала дистрибутив Лінуксу montavista для процесора Xscale-256, дала йому 32 Мб оперативної пам’яті, 128 Мб постійної пам’яті для кореневої файлової системи, контролер дротяної мережі і т. ін. Цього виявилося достатньо для взаємодії з охоронною панеллю, запуску веб-сервер Apache, обслуговування десятка камер у локальній мережі і не тільки. У такій системі користувач має змогу зайти на сторінку системи охорони свого житла, переглянути зображення з камер, стан побутових приладів, при потребі щось дистанційно змінити. Крім того, веб-комунікатор у випадку тривоги передає повідомлення із зображенням на сервер, звідки воно може переправитися на телефон чи/і електронну пошту господаря. Насправді зважаючи на вимоги надійності та безпеки система трохи складніша, проте її успіх зобов’язаний вибору відкритих технологій, громадській підтримці (на противагу комерційній) та відсутності ліцензійних зборів за користування доробками.

Трохи інша ситуація із сервером, бо кількість його інсталяцій заздалегідь менша. До нього висуваються більш жорсткі вимоги до продуктивності, адже один сервер повинен обслуговувати до ста тисяч приладів. Крім того, логіка роботи значно складніша, багато задач свідомо були перенесені на сторону більшої потужності. Це стосується, наприклад, обробки отриманих зображень. Проте все необхідне у нас вже є: C++ для вимогливих задач, Python, XSLT для редагування конфігурації, bash для склеювання різних частин, PHP для користувацького інтерфейсу тощо.

Найбільш цікавий та показовий випадок розробці сервера трапився тоді, коли постала задача розробити надлишкове рішення, тобто звести нанівець результат відмови обладнання. Вирішили використати два однакові сервери, на яких працює служба drbd для синхронізації оперативних даних. Інша служба heartbeat слідкує за життєздатністю, і як тільки виявляється зникнення зв’язку чи інша неполадка, роботу починає виконувати резервний сервер.

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

Давайте підсумуємо. Відкритість, простота, надійність, зручність для розробки — все це причина вибору платформи GNU/Linux у компанії Visonic.

Чому розробка у GNU/Linux?

Якби люди знали інструменти grep, sed, awk, ніколи не з’явилося б стільки красивих програм.

Народна творчість

Починаючи обговорювати речі, які стосуються людських смаків, ми завжди ризикуємо розпалити священну війну. Тому домовмося, що мої слова — це не категорична істина, а вираження мого особистого смаку. А на колір і смак, як відомо, всі фломастери різні. От взяти, наприклад, популярний віднедавна принцип побудови інструментів для дизайнерів WYSIWYG (what you see is what you get). Багато хто ні про що інше й чути не хоче, а для мене це кіт в мішку. На вигляд документ неабиякий, а відомо кому, яка каша там всередині? WYWIWYG (what you want is what you get) — це справжній шлях. Розуміння цієї моделі почалося з часів командної оболонки[1] Unix. Користувач просить систему виконати якусь дію чи навіть послідовність дій, детально описуючи цільові об’єкти, особливості операцій. При цьому вважається, що користувач розуміє, що хоче, а система повинна покірно виконати саме замовлені дії без відхилень і примх.

Візьмімо тестовий редактор. В моделі WYSIWYG робота з ним схожа на динамічну комп’ютерну гру: спіймав поглядом вказівник, підвів його до потрібного місця, натиснув на клавішу видалення тексту і тримаєш її до тих пір, поки зайві знаки не щезнуть. Просто захоплююче! А що ж натомість у нас? — Уявімо, що текстовий редактор розрізняє текстові об’єкти слово, рядок, речення, параграф, їх початки й кінці тощо. Також є набір дій над цими об’єктами: переміщення, видалення, заміна, копіювання. — Такий прилад не буде приковує увагу до елементарних дій, а слухняно виконує прохання користувача.

Трохи роззирнувшись, можна помітити, що такий підхід переважає у системах на зразок Unix: командний інтерфейс налагоджувача GDB[2], системи підготовки до друку LaTeX[3] та LilyPond[4] тощо. Мабуть, недарма: їх створили інженери, які розуміли, що тільки усвідомлені дії можуть принести і хороший передбачуваний результат і справжнє задоволення від творіння у такому середовищі.

Все в цій системі — програмування, тобто насправді ніхто не заставляє, але якщо треба виконати десяток однотипних дій, то відразу відчувається доречність можливості. Мудро, наче в одному радянському мультфільмі: “Краще витратити годину, а потім за п’ять хвилин долетіти”.[5] Для програмістів така можливість — це особливе задоволення: з одного боку автоматизація вкрай проста, тому рідко бувають невдачі, а з іншого потім відчуваєш себе на голову вищим від індуса (даруйте, людини з конвеєру). Скриптування підтримують: командна оболонка[1], текстові редактори, налагоджувач[2], LaTeX[3], MetaPost[6], системи контролю версій і багато інших. І головне: просто, без занадто розумних слів та заплутаних технологій. Більше того, особливих надзвичайностей у різних, здавалося б, програмах зовсім небагато, адже не на порожньому місці всі вони будувалися. Так, всюди використовуються одні й ті самі регулярні вирази, для зчитування запитів командного рядка використовується одна й та сама бібліотека readline, ключі командного рядка повторюються від програми до програми…

Розробляєш прикладний сервер — будь готовий до можливих проблем, а ще морально підготуйся до того, що “на льоту доведеться міняти обшивку крил”. Це треба відчути на власній шкурі, бо стільки адреналіну виділяється тільки на рингу чи в затяжному стрибку (з того самого недобудованого крила!). А потім розумієш, що не пережив би той день, якби всі давно вивчені та полюблені інструменти не працювали через мережу прозоро, наче й не через мережу зовсім. Простіше не придумаєш: під’єднавшись до віддаленого сервера, отримуєш командну оболонку і відчуваєш … тепло й затишок рідного оточення. Завбачливо передаєш опцію -X — і милуєшся вікнами віддалено запущеної графічної програми (viva wireshark[7]!). Монтуєш директорію з вихідними кодами — і можеш розпочинати налагодження, не займаючись щохвилинно копіюванням. Рай на Землі!

Нарешті, є й унікальні речі, яких не знайти на інших платформах. От, прийшовши зі світу Win32, я відразу ж кинувся шукати спосіб перехоплення даних з послідовного порту. Справді, дуже потрібна штука той portmon[8], щоб зрозуміти, як байти бігають по дротах. А дзузьки, зовсім нічого нормального! І раптом осяйнуло: “А все те просто зайве, адже є strace[9]!” З прозрінням прийшло й розуміння: це все відкритість! Linux не ховає таємниці за сімома печатками, штовхаючи допитливих до відчайдушних способів злому, а радо ними ділиться. Якщо не віриться, поцікавтесь-но, як працює той самий portmon[8]. Проблеми бувають всюди, а щоб їх вирішити комусь доводиться танцювати з бубном, а хтось може зазирнути у вихідний код чи навіть підглянути, як все працює in vivo. Отже, в такій системі працювати не тільки приємно, але й легко!

І наостанок про ностальгію, тільки не про ту, що ту́га за втраченим, а про ту, яка теплий спогад про минуле. Я про університет: розумні й досвідчені викладачі, цікаві однодумці-студенти, щодня нові враження від навчання й життя. Зізнаюся відверто, те саме відчуваєш, працюючи з відкритою громадськістю. Тут ідеї, доробки — це знання, якими радо діляться, а не торгують. Це справді приємно!



[1] Командна оболонка — інтерпретатор команд операційної системи Unix.

[2] GNU debugger — налагоджувач програм у системі GNU

[3] LaTeX — набір макросів TeX для отримання PDF чи PostScript з тексту

[4] LilyPond — система підготовки до друку музичних творів, чимось нагадує LaTeX, тісно з ним взаємодіє.

[5] Крила… ноги… головне — хвіст!

[6] MetaPost — це пакет для креслення здебільшого математичних ілюстрацій, інтегрується з LaTeX.

[7] Wireshark — графічна програма для перехоплення мережевих даних, незамінний помічник у розробці.

[8] portmon — зручний перехоплювач даних з послідовного порту, буває в нагоді при налагодженні взаємодії з деяким спеціальним обладнанням.

[9] strace — маленький інструмент, що відображає взаємодію прикладної програми з ядром Linux, тобто відображає системні виклики.

2008-07-11

Linux — сила!

Поки ми тут допилювали та полірували сервер VDNS (хочете знати, що це таке — спитайте у Вісоніка), ізраїльські колеги додали до нього надлишковість. Це два однакові сервери, які ззовні видно, як один; якщо один із них вимикається чи гине, інший його прикриває. Зробили це так, що ми про це на прикладному рівні навіть не знали, тепер тільки починаємо розбиратися та виправляти “завусениці”.

У попередньому підприємстві українські хлопці, напевне, до цих пір б’ються над такою самою задачею! Їм пощастило менше: немає у них DRBD + High Availability, а може й просто не хочуть користуватися чужими та ділитися своїми результатами.

2008-04-02

Перехоплення даних з послідовного порту

На минулій роботі часто доводилося працювати з різноманітними приладами через послідовний порт у системі Ўіндоўз. Завжди виручав інструмент portmon компанії Sysinternals. Microsoft купила sysinternals, а я працюю у Linux. За звичкою хотів щось подібне знайти і для відкритих систем, а дзузьки! Є десяток саморобних недоробок, проте всі вони роблять зовсім не те, що треба.

І ось я нарешті зрозумів, чому в Linux немає такого ножа. Виявляється, він просто нікому не потрібен, підглядати за обміном даними можна легко з допомогою іншого швейцарського ножа з назвою strace:

[~]$ strace -p 30565 2>&1 | grep "^\(write\)\|\(read\)"
write(9, "1011           @    \24", 21) = 21
read(9, "\6", 10)                       = 1

Магічне число 30565 — це ідентифікатор процесу. Як я його знайшов? — Спитайте мене!

2008-03-31

Всемогутній grep

Вік живи — вік учись! Спіймав себе на тому, що використовую Midnight Commander тільки для того, щоб знайти що-небудь у файлах. Незручно, а іншого шляху не знав. Проте насправді це робиться дуже просто:

$ find . -name '*.cc' | xargs grep '\<main\>'

Гурмани можуть спробувати інший спосіб:

$ find . -name '*.cc' -exec grep -H '\<main\>' {} \;

І нарешті десерт. Переглядаючи підручник команди, виявив, що можна на екрані отримувати красиву кольорову картинку. Для цього достатньо вказати параметр --colour=auto у змінній оточення GREP_OPTIONS або просто у виклику команди.

2008-02-03

Нотна типографія

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

Нещодавно схотілося вивчити кілька українських пісень, знайти б тільки якусь хорошу обробку для гітари. Після години пошуків, тижня переговорів, таки отримав придбану на сайті http://gitara.in.ua збірку “Повій, вітре, на Вкраїну”. Тридцяток пісень — це дуже добре, тим більше, що я їх всіх раніше чув, і вони мені подобаються. До цих пір ніколи не доводилося розбирати та вчити гітарні п’єси з нот, проте виявилося, що це насправді легко.

Очевидно, альбом набраний у якомусь офісному текстовому процесорі, якість нотних партитур теж нікудишня — це тільки суб’єктивні враження. Але саме воно спонукало озирнутися по сторонах. Виявляється, продуктів є багато, перепробувати всі неможливо, тому довелося порівнювати відгуки користувачів. Таким чином вибір спинився на “ставку́ лілій”.

Розібратися із системою після кількох спотикань вдалося легко, тому хочу поділитися результатом, провести по своїх слідах. Від дистрибутиву лінукса наступні кроки залежать слабко, проте відмінності є. Я спробував це у debian-40r1, який у мене є пісочницею для різноманітних експериментів з ядром, та у Fedora-8, під керуванням якої працює лаптоп.

Procedure 1. Підготовка партитури пісні “Реве та стогне Дніпр широкий”

  1. Встановлюємо систему Lilypond

    З репозитарію Федори:

    [sakhnik@incognito ~]$ sudo yum install lilypond lilypond-doc

    З репозитарію Дебіан:

    [sakhnik@sandbox ~]$ sudo apt-get install lilypond
  2. Вивчаємо підручник

    Уважно читаємо підручник, який вже має бути десь у локальній файловій системі. Мушу зізнатися, що цей пункт, як завжди, я пропустив, але часто використовував документ в якості довідника.

  3. Готуємося до бою.

    Отже, до цих пір ми вже зрозуміли, що lilypond — це компілятор на зразок TeX/LaTeX. Якщо його накормити хитрим текстовим файлом, то він поверне кілька графічних партитур, файл MIDI для контролю за процесом на слух.

    Кожна нота вихідного файлу PDF містить посилання на місце її в джерелі: textedit:///home/sakhnik/dnipro.ly:10:12:36. У підручнику описано, як скористатися цим фактом у зв’язці lilypond-invoke-editor та xpdf. Не працює? — Не біда, легко підпилюємо GNOME, щоб він розбирав такі URL і користуємося більш зручним, на мій погляд, evince:

    gconftool-2 --set --type=string /desktop/gnome/url-handlers/textedit/command 'url.sh "%s"'
    gconftool-2 --set --type=bool /desktop/gnome/url-handlers/textedit/enabled true
    gconftool-2 --set --type=bool /desktop/gnome/url-handlers/textedit/need-terminal false

    Зрозуміло, що сам url.sh ще потрібно навчити запускати редактор Vim:

    #!/bin/bash
    #
    # Handle passed url. Useful for lilypond editing.
    
    [[ $# != 1 ]] && echo "`basename $0` <url>" && exit 1
    
    if [[ "$1" =~ '^textedit://([^:]+):([0-9]+):([0-9]+).*$' ]]; then
        server=LILYPOND
        if [ -z `gvim --serverlist | grep $server` ]; then
            gvim --servername $server
        fi
        fname=${BASH_REMATCH[1]}
        line=${BASH_REMATCH[2]}
        col=${BASH_REMATCH[3]}
        gvim --servername $server \
            --remote-send ":e $fname<cr>:call cursor($line,$col)<cr>\
    :call foreground()<cr>"
        exit 0
    fi
    
    echo "Unknown url scheme"; exit 1
  4. Готуємо редактор Vim

    Розробники Lilypond підготували виділення синтаксису, макроси для швидкого набору, компіляції. При встановленні пакету скрипти редактора автоматично копіюються у директорію /usr/share/vim/vim70. Але я використовую власної збірки найновішу версію редактора, тому розширення Lilypond довелося скопіювати самостійно.

  5. Виконуємо набір

    Власне, це і є найбільш цікава частина справи. Lilypond розроблений з допомогою мови програмування Схема, і вхідні файли теж є частиною програми. Таким чином набірник у руки отримує справжній швейцарський ніж: крім різання ним можна рубати, свердлити, точити, різьбити, відкорковувати вино… Найбільш вдалі зразки застосування можна знайти серед прикладів підручника.

    Цикл розробки дуже простий. Компілюємо вихідний файл dnipro.ly, переглядаємо його з допомогою evince, тикаємо мишкою на об’єкт, який потрібно поправити. На екрані з’являється (чи просто виводиться на передній план) вікно редактора Vim. Далі робимо потрібні виправлення, виконуємо команду :make, повертаємося до переглядача і перечитуємо файл комбінацією клавіш Ctrl+R.

    Подолати весь документ цілком відразу, очевидно, не вдасться. Тому я набирав його десь зо три години (з перервами, зрозуміло) поетапно.

    1. Підготовка шаблону

      Шаблон — це перший-ліпший приклад з підручника, який схожий на потрібний документ. Його тільки потрібно очистити від зайвого.

    2. Набір нот

      По черзі такт за тактом набрав усі три голоси́, часто компілюючи та звіряючись із джерелом.

    3. Набір аплікатури та струн

      Це легко додається у існуючий документ. На цьому етапі вперше виявилася потреба ручної корекції виводу. Але, як було згадано вище, це здійснюється дуже просто.

    4. Динаміка та мітки

      Ще простіше, ніж попередній пункт, оскільки розташування знаків більш одноманітне.

  6. Куштуємо плоди

    Саме пора насолоджуватися результатом.

    Наступного разу розповім, як можна доповнити нотний запис п’єси табулатурою, трохи змінивши вихідний код.

2008-01-03

“Tears in the rain”

I’ve discovered an interesting tool that allows to record a screen cast. Thus I’m able to record some educational videos of how to use the Vim editor or the GNU/Linux operating system.

Let’s see!

2007-12-26

Unix way

If people knew the grep, sed and vim tools, millions of useful software products would have been never developped.

I’ve just noticed that it’d be good to change the string new test_suite to more stable macros BOOST_TEST_SUITE. A very simple command did everything for me after spending 5 minutes for this:

[sakhnik@incognito ~/work/mps]$ find . -name '*.cc' | \
    xargs sed -i '1,$s/(new test_suite(\([^)]*\)))/ = BOOST_TEST_SUITE(\1)/g'

That’s exciting!

2007-11-11

Composed characters

I’ve noticed that there’s a way of depicting stress signs in Cyrillic text, like the following: КМІТЛИ́ВИЙ, ТЯМУ́ЩИЙ, МЕТИКО́ВАНИЙ, МЕТИКУВА́ТИЙ, ПОКМІ́ТЛИВИЙ, ШТУДЕ́РНИЙ. I don’t know how they were typed. But analysis revealed that they refer to so-called composed utf-8 characters. On the way of the investigation it appeared that the XOrg allows to define a custom composition key to type complicated characters easily.

There follow few examples below:

<rctrl>=e ⇒ €
<rctrl>--- ⇒ —
<rctrl>'e ⇒ é
<rctrl>~n ⇒ ñ

Nice! So I know how to type diacrytic characters in any graphical application. Additionally, to the graphical stress sign is one of composed unicode characters, it can be inserted into an XML by its code: &#769;. There’re many other composing characters, which can do interesting things: w̳o̸rld.

2007-11-08

Sorting in the StarDict

Always mixed up accents in foreign words, and it was difficult to find wrong spellings in the StarDict. So I googled the problem.

It appeared that the unix-way is to rely the comparison during sorting on the current locale. Besides the StarDict allows a user to set any language-specific collate function:

I’ve chosen the utf_unicode_ci, and now I’m astonished with the result:

2007-11-07

Core dump

Where’re those known from the university times core dumps on Linux? How can I discover a really rear bug in the server daemon?

Well, it appeared that they’re just turned off for ordinary users in the /etc/profile:

# No core files by default
ulimit -S -c 0 > /dev/null 2>&1

Really, why a user should know about such a weird thing? Now I always reset the ulimit before starting an application being debugged.

2007-10-30

Wireless networking is easy

I always wandered how difficult would it be to use wireless network on my linux box. But all the complexity reduced to installing proper driver for the on-board

[~]$ /sbin/lspci | grep Wireless
08:04.0 Network controller: Broadcom Corporation BCM4318
[AirForce One 54g] 802.11g Wireless LAN Controller (rev 02)

From the web it appeared to be the native bcmwl5 guided by the ndiswrapper.

Almost there! The GNOME’s NetworkManager applet showed available wired and wireless networks to be chosen.

2007-10-04

Meet the nspluginwrapper

The gnash was a temporary solution, because it produces inaccurate output and doesn’t play some movies. Fortunately, I’ve been advised of an alternative: to use the original Adobe’s flash player plugin by means of the nspluginwrapper.

That’s appeared to be nice!

2007-10-01

Remote administration via GPRS

I’ve given my old laptop to the parents, having told them not to reinstall the system. I wanted they learn working with an open source system (linux). But a problem appeared: how to maintain the system? The only connection to the internet is a dial-up GPRS one.

Well, actually this is no more a problem. Let suppose my father establishes a connection to the internet, then connects to the well-defined server, which we both have SSH access to:

[smm@home ~] ssh -R 1234:localhost:22 koresha@koresha.org

Thus, any connection to the port 1234 will be forwarded to the home:22. So, now it’s my turn:

[koresha@koresha.org ~] ssh -p 1234 root@localhost

And that’s it! I have the desired root console remotely.

2007-09-28

Cell phone and GNOME

I’ve been using the ObexFTP by today. But it appeared that this is much more easier.

There’s a VFS plugin, which enables native browsing and handling experience of data. So I just open the url obex:/// in any of nautilus applications, and vois-là! This is really cool, because I don’t need additional software or sophisticated bools.

2007-09-09

Hello world, YouTube!

Finally, I’ve succeeded installing the gnash to play Adobe flash videos. It took me three times of recompiling it with different options to support ffmpeg. Actually, the out-of-the-box version doesn’t support playing YouTube movies, and the hint was found on pages of the Wikipedia.

Thus, when I’m able to watch videos from YouTube, I’ve tried myself to upload one. Enjoy!

2007-08-16

Robots help us

A year has passed quickly, and I celebrate my first anniversary of salsa LA study.

I’ve understood how not to spend much time updating my software. There’re packet managers, which work in my Fedora 7 just well. So I’ve stopped compiling software from sources.

But they don’t updated the Vim as quickly as I want. So recently I set up the aap build system. And now to update my Vim I just type:

$ aap update; sudo aap install

And that’s it! It’s fascinating, isn’t it?

2007-02-24

Laziness can save us!

The ATI has just released new version of their video drivers, so I pretended to install them. But then I newly discovered that the driver isn’t installed under linux-2.6.20. The problem was much more severe this time, so I just refused to dig down any more. I downgraded the kernel to the previous version, and everything went just smoothly. How much time would I save if I did this when I was installing the previous version of drivers?..

2007-02-20

Think global

Hi there! Recently I've been looking for the suitable way to connect to the internet. Actually, I've been already using gprs connection for two months, but the way I did it was very awful. First, I logged in as a root than in console I typed wvdial umc. And finally, when the connection was established i copied /etc/ppp/resolv.conf to /etc/resolv.conf to use just received DNS nameservers' addresses. But this approach completely contradicts to my developer's nature: I'm lazy (in a good sense of the word), that is my credo is "It's better to spend an hour and reach in five minutes". So when I digged deeply into system configuration, I discovered that there were a simple way just from the beginning. I just had to use the system network configuration utility (it's called system-config-network), add new ppp connection, configure dialling parameters and that's it! Now to connect to the internet, I just launch another system utility that's called Network Device Control, choose desired connection (ppp0) and click on the Activate button. All this operations are performed from within my usual user account. And what is the most important, the DNS resolver gets configured automatically, I don't need to do any dangerous manipulations on the system manually. The conclusion from the story was for me to think sometimes as usual user, to think global and to regard the system as the whole ignoring its parts.