среда, 29 декабря 2010 г.

Налично-безналичные билеты БЖД

Вчера поехал выкупить заказанные билеты на поезд. Пока стоял в очереди весь извёлся - забрать билеты можно до 19.00, а касирша чего-то там копается, люди подходят, отходят. Моя очередь дошла только в 19.05, но ничего не сказали. Выдали полагающиеся билеты.

Да. Так вот, пока в очереди стоял, видел одну замечательную картину маслом. Бизнес па белорусски, называется. Подходит парень к кассе, заказывает день, время и направление. Его спрашивают - чем платить будете, карточкой али кэшем? Карточкой, говорит, карточкой. Кассир копошится у себя в компе и изрекает: по карточкам билеты кончились, будете за наличные покупть? Купил, да.

У меня это в голове с трудом укладывается - по карточке и за нал продаются разные билеты. Так и представляю в магазине отдел с молоком, а на них ярлычки - "безнал", "нал". И бабушка ходит и огорчается - осталось только безналичное молочко, а у ней карточки нетути...

пятница, 26 ноября 2010 г.

Kindle 3 update 3.0.3

Почитал форумы и решил обновиться с версии 3.0.2 (которая стояла изначально) на 3.0.3. Поавда некоторые пользователи пишут, что после обновления букридер стал часто зависать, но таких мало. В общем, решился.

Обновился. Как и пишут на форумах перелистывать kindle стал быстрее. Точнее само обновление страницы может быть и не ускорилось, а вот реакция на нажатие кнопки улучшилась однозначно. Раньше я нажимал кнопку следующей страницы когда оставалось прочитать одну строку, и прежде чем страница начинала перерисовываться я успевал её прочитать. Сейчас эта задержка практически исчезла. Засыпает/просыпается кажется тоже немного быстрее.

Теперь подумываю об установке jailbreak.

понедельник, 22 ноября 2010 г.

Amazon Kindle 3 WiFi

Купил сабж на выходных. С субботу утром задумался, чего бы такого себе на день варенья прикупить, а в воскресенье в обед уже держал в руках эту зело пользительную(надеюсь) штуку.

Вообще-то изначально я думал купить её через инет в USA, и тихим ходом переправить сюда. Но, как оказалось, самый быстрый способ занял бы до 2! месяцв. А всё потому, что Рождество на носу. Сколько занял бы медленный(но и более дешёвый) способ, я вообще не представляю, поэтому купил сабжевый букридер с рук, за 220$ - а это цена быстрой доставки прямо с Амазона. Более медленный способ стоит ~190$. Потерял 30 условоных денег, зато выиграл 2 месяца - ИМХО стоит того.

Первые впечатления. Таковые были смешанные. Во первых ридер оказался больше, чем я предполагал. Накануне я видел какую-то соньку, видимо 5 дюймов, и она показалась мне достаточно удобной и небольшой. Kindle 3 имеет 6-и дюймовый экран, плюк к этому небольшую клавиатуру, за счёт чего девайс смотрится немного громоздким. Размер почти равен коробке от DVD дисков. По ширине чуть меньше, по высоте чуть больше.
С одной стороны большой размер хорошо - PDF-ы можно читать, а с другой - не так ужобно его таскать в транспорте, для чего он собственно и покупался. Впрочем, во внутренний карман куртки он влезает, что есть хорошо.

Второе, что заметил - негде взяться. Т.е. в целом и держать и листать можно одной рукой, но стрёмно - не выронить бы. Надеюсь вскоре привыкну.

Ну и третье - отсутствие нормальной подержки коллекций. Ридер читает директории, но вываливает все файлы в один сплошной список. Учитывая, что в нём 3 гига под книжки, представляю, какой срач там можно развести. Поддержка коллекций есть, но судя по форумам, сирая и убогая. Я ей пока что воспользоваться не смог, так как для активизации этой "фичи" нужно скачать хоть одну книгу с Амазона. Впрочем не всё так плохо - девайс этот можно взломать, и поставить туда какой-то левый, но более правый софт. Вообще-то в букридере закопан линукс, так что просторы для деятельности открываются широчайшие.

Ну а в целом нравится. Недостатки не критические, а цена вполне божеская.

З.Ы. Тут и там говорят, что Линукс не распространён и вообще. Ерунда. У меня дома уже 6 устройств с линуксом:
2 компа
телевизор
2 ADSL роутера (один правда не используется)
букридер
В далёких планах купить телефон с Андроидом.

вторник, 5 октября 2010 г.

Far+Cygwin

На работе активно пользуюсь cygwin'ом. Тут что-то найти, здесь отфильтровать, там пройтись sed-ом. Удобно.

До сегодняшенго дня пользовался следующей строкой, невозбранно спижж взятой из утилиты chere:
start bash.exe --login -c "cd '!\' ; exec /bin/bash -rcfile ~/.bashrc"
Эту строку я повесил на хот кей в Far'е - по ней запускается bash в текущей директории.

Но случайно прогуливаясь по просторам интерента я наткнулся на заменитель виндовой консоли, как терминала для cygwin. Это модифицированная утилитка putty.
Решил попользоваться, тем более виндовая консоль меня давно достала своим особенным видением на копирование/вставку и ресайз окна.

Итак, вот как всё теперь настроено.
1. Far
В меню добавил (которое по F2) добавил пункт и привязал к клавише 'Z':
set CHERE_DIR=!\
"C:\Program Files\PuttyCyg\putty.exe" -load cygterm

2. Putty
Как можно понять распаковал в C:\Program Files\PuttyCyg\, поскольку инсталлера для неё нет.
Запустил, выставил трансляцию в UTF-8, подогнал окно под мои любимые размеры и сохранил сессию под именем cygterm

3. ~/.bashrc
Дописал следующие строки

if [[ $CHERE_DIR != "" ]]; then
CHERE_DIR_U=$(cygpath -a -u "$CHERE_DIR")
cd "$CHERE_DIR_U"
fi

Т.е. если задан CHERE_DIR, то превратить его из виндового в юниксоидный и перейти туда. Вообще-то эти команды скорее стоило вставить в /etc/profile, но боюсь, как бы очередной апдейт не затёр изменения.

Вот и всё, bash замечательно запускается в putty. если у вас другой шелл, то нужно 3-ий пункт занести в соответсвующий профайл. Для zsh в .zshrc, например.

понедельник, 4 октября 2010 г.

KDE in Debian/sid

Надоел гном на десктопе, захотелось единообразия и удобства, как на ноутбуке.

Поставил KDE. Как оказалось зря... Всё очень даже красиво и удобно, но местами глючно до невозможности - в OpenOffice Writer не показывает панель инструментов, на многих диалогах не прорисовываются контролы. Хотел распечатать жене рецепт из интернета, перегнав вначале в Writer - даже это не смог сделать. Увы, KDE в sid не рабочий, а гном - вполне себе, никаких проблем.

Интересно, можно поставить более стабильную версию KDE на Sid?

Updated:
Всё оказалось очень просто - виновата была GTK-QT тема Qt4. Сменил её на Clearlooks всё стало нормально. Так что зря я не KDE гнал, сносить не буду.

пятница, 1 октября 2010 г.

Facebook, Twitter

По заданию компартии зарегистрировался на этих, с позволения сказать, "ресурсах". По работе потребовалось, ога.

После почти суточного изучения твиттера, могу сказать, что это хрень, причём хрень мутная и бесполезная. Я так и не выяснил какой от него толк.

Буду теперь Facebook изучать.

понедельник, 20 сентября 2010 г.

DVD -> mpeg

Есть у меня телевизор, который умеет проигрывать всякие разные видоформаты, что весьма удобно - не нужно загружать ноут и возиться с кабелями. Правда в этом проигрывателе есть и недостатки, но мириться с ними можно. Один из этих недостатков - невозможность выбрать звуковую дорожку: проигрывается всегда первая. А я скачал пару DVD аж с четырмя дорожками и русская не первая :) VOB файл проигрывается, но на английском.

Ну, взял в руки напильник и по быстрому сконвертировал DVD в avi:
mencoder -dvd-device DVD1/ dvd://1 -oac copy -ovc copy -aid 130 -o 1.avi
Быстро(потому, что рекомпрессии не происходит) перегнал так пару серий, проверил на телевизоре. Не фурычит, подлец, а на компе всё нормально...

Стал разбираться - оказалось не прописан fourcc код. Начал искать, подбирать разные варианты - ни один не работает. По тихоньку выяснил, что для MPEG-PS вроде бы нет fourcc кода, а надо просто сменить контейнер с avi на mpeg. В результате такая команда решает все проблемы и конвертит все titles(не знаю, как это корректно перевести):

for i in $(seq 1 100); do
mencoder -dvd-device DVD1/ dvd://$i -oac copy -ovc copy -aid 130 -of mpeg -o $i.mpeg
done

пятница, 10 сентября 2010 г.

Каррирование

Наткнулся тут на форуме на забавную штуку.

Представим следующую задачку по математике
У Пети есть яблоки. Вася забрал у Пети 3 яблока, сколько у Пети осталось яблок?

Вам кажется, что задачку нельзя решить? Не хватает каки-то данных? Как бы не так :)

Ответом на эту задачку является не число, а функция, принимающая один аргумент - начальное количество яблок и возвращающая остаток.

В целом, для программиста знакомого с функциональными языками в этом ничего странного нет. Вот решение на Haskell
reshenie = \x -> x - 3

А называется это каррирование.

четверг, 5 августа 2010 г.

Вилка

Вчера, находясь в созерцательном настроении, случайно выбросил вилку в мусорку. Печально, что я это заметил толко сегодня - придётся есть пластмассовой вилкой, и, что ещё хуже - выбирать и покупать новую. Дело это не простое - я в вилках можно сказать однолюб. У меня на работе и дома были одинаковые вилки, где теперь найти похожую?

:(

понедельник, 12 июля 2010 г.

Для чего мне мне GPS логгер

Вот тут спрашивают, зачем.

Ну во-первых если бы у меня было много ненужных денег, я бы купил полноценный туристический навигатор, типа Garmin. И плюс к нему всё равно логгер.

И вот зачем.
1. Мне нравится рисовать карту openstreetmap. Для этого нужны хорошие треки.
2. Иногда хочется вспомнить, где катался год назад.
3. Можно поделиться интересным велосипедным маршрутом с кем-нибудь. Так просто наугад не скажешь - будет ли дорога через лес, не застрянешь ли в болоте.
4. Для определения координат в случае, если заблудишся. Я выбирал логгер с возможностью отдавать координаты по bluetooth, так что имея с собой телефон можно даже использовать навигацию - соответствующий софт для этого еть. Правда при этом трек не пишется: или трек или навигация. Это совсем неудобно, увы. (update: был не прав, подключатся по bluetooth можно в любом режиме)
5. Геотаггинг. Делаем во время поездки фотографии, потом по времени соотносим с треком и проставляем координаты в фотографии. Приятно видеть где сделан снимок, особенно, если путешевствие было протяжённым.

Ну а недостатки полноценного туристического маршрутизатора это цена, как я уже говорил, а так же вес(для велосипедиста и 200 грам скостить приятно), малый размер памяти под трек, меньший срок работы.

Например Garmin 60CSx.
Стоит 535$ против 96+30(доставка)=125$
Работает 18 часов против 48
Память на 10тыс точек(если не ошибаюсь) против примерно 200 тыс.
По чувствительности непонятно - у гармина антена здоровая, но в спецификации ничего не вижу, ни чувствительности ни чипсет.

В общем повторюсь, были бы лишние деньги - взял бы и то и то. Но логгер позволяет заменить маршрутизатор, хотя это и не удобно.

З.Ы. В машину, когда она у меня появится, разумеется куплю обычный автомобильный маршрутизатор.

пятница, 9 июля 2010 г.

Получил GPS логгер

Уря! Вчера приехал домой, а тут она - повестка на выдачу посылки. Почта уже разумеется была закрыта, решил зайти завтра с утра.

Пришлось опоздать на работу - почта и я работаем с 9.00, у нас так много общего ...
Но - забрал, дрожащими руками распаковал, а там не та модель, что я заказывал. Разница не очень большая в одной букве и в 15$. Прислали более дорогую модель BT-Q1000XT, уж не знаю по ошибке или по другой причине, жаловаться не стану. В комплекте так-же идёт чехольчик довольно мятого вида для подвешивания на поясе.

Тут же вставил аккумулятор, как оказалось заряженный, включил и поехал на работу. Летел на всех парах, хотелось поскорее посмотреть, чего он там назаписыввает. Приехал, скачал утилитку bt747 и дрова к логгеру. Слил трек, вот чего получилось. Посмотрел в Google Earth - трек получился довольно точным, я даже не ожидал. За городом практически везде совпадает с спутником, в городе местами "дёргается".

Вечером запишу пачку треков, если не будет дождя.

среда, 7 июля 2010 г.

GPS логгер

Две недели назад заказал наконец себе GPS логгер. Модель - Qstarz BT-Q1000X. Буду теперь точно знать, где я был, а то старый стал, забываю... :)

Заказал на semsons.com, хотя там оно стоит на 20$ дороже чем на dealextreme.com. Сам виноват - дотянул до последнего: через месяц отпуск, а я только начал чесаться. Поскольку dealextreme.com славится непредсказуемым временем доставки, да ещё и карточку надо делать да и PayPal часто динамит, решал заказать на semsons - хоть и дороже, зато говорят где-то приходит за 10 дней.

Начал изучать, и, ура, моя карточка со старой работы способна платить через интернет! Заказал. Слежу за статусом заказа. Через сутки появляется надпись shipped и ссылка на USPS по которой можно следить за своей посылкой. Смотрю, а там написано, что пока ничего не получали, только электронное уведомление. Ну думаю, так и надо, скоро передадут.

Прошла неделя, статус не изменился. Я начал нервничать - что за фигня, обещают за 7-10 рабочих дней доставить, а тут за 5 ещё даже на почту не отдали. Написал в саппорт и тем-же вечером статус изменился на "посылка получена и вылетела в неизвестном направлении". Не знаю, совпадение или их моё письмо подстегнуло...

Вобщем, летела-летела посылка и сегодня наконец появилась надпись, о том, что бандеролька приземлилась и зависла на белоруской таможне. Меж тем прошло 8 рабочих дней. Интересно, впишутся в 10 или нет? Было бы неплохо получить посылку в пятницу/субботу и опробировать на местных тропинках.... Жена к тому же поехала домой на выходные, пробировать можно будет эоть целый день :)

суббота, 12 июня 2010 г.

Windows + symlink

= лажа

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

Но как оказывается, не всё так хорошо. Winword почему-то упорно не желает сохранять файл, открытый из линкованной директории. Дебагер не хочет атачится приложению, которое запускается как ссылка. И ещё много мелких глюков.

Короче, даже такую простую фичу испоганили.

четверг, 10 июня 2010 г.

Как вы яхту назовёте, так она...

и поплывёт. Да.

Недавно с удивлением узнал, что ветер в жо корму не самый выгодный для парусного корабля. Выгоднее, когда ветер дует спереди сбоку - курс бейдевинд. Я просто охре очень удивился, когда это узнал.

Подробности тут и тут.

вторник, 1 июня 2010 г.

Last Lost

Посмотрел последние серии лоста. Я вообще-то не большой его поклонник, но было любопытно, чем же закончится. Особенно после того, как создатели заявили, что 6-ой сезон всё разъяснит.

Фиг вам. У меня были смутные подозрения, что так всё и закончится - ничего конкретно не объяснят, половину загадок вообще забудут.

Сильно склоняюсь к мнению, что большая часть фильма не продумана вообще, загадки лепились одна на другую, лишь бы заинтересовать зрителя. Куски про параллельную жизнь, так вообще никуда не лезут, вставляли их похоже только что-бы затянуть фильм.

Правду мы конечно не узнаем, сценаристы так и будут зудеть про "всё важно", "глубокий смысл", при этом ничего не объясняя, так как объяснений этих ИМХО нет.

Хотя, вообще-то концовка всё объясняет. Весь сериал это предсмертные галлюцинации Джека. И хотя создатели отрицают это концовку, мне кажется она наиболее правильная. При этом никаких тайн вообще нет - вы же не собираетесь разгадывать загадки, увиденные под ЛСД? Нет? А, вы и ЛСД не пробовали? Я тоже, но тем не менее - глюки они и есть глюки, чего их гадать.

:\

четверг, 20 мая 2010 г.

+2

Позавчера убрался.

К огорчению женской части читателей блога и веселью мужской, убрался я не в комнате как можно было бы подумать. Нет я в очередной раз упал, убрался, сверзнулся с велика.

Как? Да в общем-то надёжный, классический вариант - пытался заскочить на тротуар под острым углом. Переднее колесо вполне себе взъехало, а заднее проскользнуло вдоль кромки и... бац! всем на радость я упал :) Обидно то, что там перепад высот сантиметра 2, можно сказать навернулся на ровном месте.

Вместе с локтем и штанами пострадали яйца. Нет, не те, куриные - я как раз вёз десяток из магазина. Из рюкзака достал зачётный омлет, только поджарить оставалось.

Упал в этот раз на правый бок, так что все мои "побитости" равномерно распределяются по организму - рёбра на обоих боках, локоть, плечо, запястье. :) За меня скоро можно будет двоих давать.

А тем временем на одометре уже 770 км, практически всё это езда на работу.

вторник, 11 мая 2010 г.

Парад

Сходил я не этот хвалёный парад... Вообще-то не собирался, но приехал брат и сестра жены, решили их сводить на посмотреть. Нашлись даже пропуска на трибуну Г (ге), но это нам не сильно помогло.
Организация просто отвратительная. Пришли за полтора часа до начала и всё это время простояли в очереди на досмотр. У нас в гондурасе видно милиционеров мало, не смогли выделить с десяток на этот хренов досмотр. Так я и не прошёл досмотр - перед самым КПП началось авиашоу, и мы вышли из очереди, хоть что-то посмотреть.

С авиашоу тоже были странности - группа Су-24 "вихляясь" пролетели прямо над нами. Я сначала подумал, что это просто такой хитрый трюк, но похоже это у них действительно были какие-то неполадки и мне стоило бы испугаться.

Короче, я туда больше ни ногой.

пятница, 7 мая 2010 г.

Аргх!

Сегодня по пути на работу пробился, проколол переднее колесо кусочком стекла. Маленькое такое стёклышко - с спичечную головку. Ну, чуть больше. А такое гадкое. :(
Кстати, это первый пробой переднего колеса, все предыдущие были на заднем.

пятница, 23 апреля 2010 г.

Спам

Последнее время достал спам в блоге - валится и валится. Поставил премодерацию для постов старше 2 недель, стало намного проще жить.

Но вот, что интересно - в пост про сортировку фотографий с каким-то нечеловеческим упорством бот пытается засунуть своё сообщение. Почему именно в этот пост я не могу понять, но где-то раз в неделю туда сваливается рекламный коментарий, само-собой я его не пущаю, и через неделю всё повторяется. o_O

Купил передний щиток

Я сдался. Щитки безусловно портят вид велосипеда, но ехать в случае чего 15 километров по лужам, получая порцию бодрости грязи в лицо на каждом мокром пятне не очень приятно. Оно конечно возможно ехать со скоростью 10 км/ч - тогда брызги не достают до морды лица и благополучно оседают на груди, но тогда придётся ехать 1.5 часа, и скорее всего по мокрому дождю.

Я это уже начал понимать, но разум противился и не давал купить щитки - то деньги забудет, то голову отвернёт, проезжая мимо магазина. Вредина.

Ну а вчера погода "способствовала" - днём обещали дождь и снег, а с утра было относительно сухо. И вот, пока дражайшая половина сопела, повернувшись к стеночке, я собрался и поехал на велосипеде (за что потом от неё и получил нагоняй).

Вечером деваться было некуда - собирались тучи, временами шёл дождь и град(или такой крепенький снег), пришлось ехать в магазин, выбирать.

Изначально я задумал купить лучшее, что есть - SKS Shockblade в перёд + SKS X-Blade назад. Но стоит всё это добро 190 тыс (примерно 63$). Жаба начала возмущаться и пинать меня лапками. Подумав хорошенько, я решил пока что обойтись только передним щитком - он важнее: ведь главное, что мешает ехать это брызги грязи в рот и глаза - замаешься утираться. А вот спина может и потерпеть, к тому же на рюкзак у меня есть чехол болоньевый, он закрывает всю спину, остаётся только задница и ноги. Но в конце концов, проехать 15 км вполне можно. Ну, а потом можно будет докупить и задний щиток.

В магазине оказалось 3 версии щитков SKS: медленносъёмный за 40 тыр, такой же но быстросъёмный за 60, и продвинутая версия последнего - более широкий за счёт каких-то накладок (собственно это и был SKS Shockblade) за 90 тыс.
Я выбрал первый. И вот из каких соображений:
1. Быстросъёмность это недостаток - любой проходящий мимо урод снимет их из любопытства или с корыстными целями. Да и есть сомнения в прочности этого крепления... Более того, это самое медленносъёмное крепление очень даже быстросъёмное по сравнению со стелсовскими щитками жены: нужно открутить пластмассовую гайку(руками) и стянуть щиток. И всё. 2 минуты. Я явно не готов переплачивать 20 тысяч за мгновенный съём.
2. Расширить щиток можно и самому с помощью куска пластиковой бутылки - будет не сильно хуже.

Так что я выбрал Crossboard за 40. Тут же на месте поставил, натянул на рюкзак чехол и поехал. А погода к этому моменту как раз испортилась - начался дождь местами переходящий в крупный и твёрдый снег.

Ну, вобщем, я уже утомил всех подробностями, перехожу к выводам. Щиток работает отлично, ни одной капли грязи я не ощутил на лице, хотя гнал как умалишённый(хотелось поскорее домой). На ноги брызгает немного, но не страшно. А вот задница ощутимо забрызгалась грязью, штаны и куртку пришлось стирать. Надо подумать о заднем щитке.

З.Ы. Сегодня ехать было немного прохладно...

среда, 21 апреля 2010 г.

+1

Вчера убрался через руль, так что +1 к полётам.
Еду я значит, еду, и тут бац, полетел через руль. Ну, сгруппировался, перекатился, вскочил на ноги, подхватил падающий велосипед и не сбавляя темпа прыгнул на него и поехал дальше. Вот. Это официальная версия для жены.

Для родителей будет ещё более укороченная версия: "ехал, поцарапался"

Ну а в действительности... Ехал по трассе в Боровляны, и тут стукнуло в голову переместится на велодорожку, проходящую параллельно, но чуть ниже. Решил на скорости проскочить разделяющий их кусок травы. Ну а чтобы было веселее решил это сделать не просто с дороги, а с насыпи, на которой стоит какой-то путевой знак. Крутовата оказалась та насыпь... Мне бы переднее колёсико-то приподнять, может чего и вышло бы, но я как ехал, так и клюнул в низ. А там песочек, переднее колесо в него уткнулось и дальше решило не ехать. А я всё ещё ехал, вернее уже летел.

Ну, приземлился. Отдышался. Покрутил головой - вроде шея целая. Потрогал рёбра - вроде болят не сильно. Пару ссадин и царапин. Голова в песке.

Велосипед к счастью не пострадал :) Дальше поехал зело медленно и сугубо аккуратно - мало ли, посттравматический шок, может у меня там ногу оторвало, а я ещё не чувствую.

На утро подсчитал потери - растянул правую трапециевидную мышцу когда приземлялся на голову, синяк на рёбрах с лева, синяки на коленях (руль наверное задел, в следующий раз надо аккуратнее).

На работу ехал сегодня целый час :)

вторник, 20 апреля 2010 г.

Штрафики-то подросли

Сегодня наткнулся на сообщение на форуме poehali.net. Человека оштрафовали за езду по проезжей части на велосипеде. Ну, бывает... Но вот размер штрафа не порадовал - 70 тысяч. Раньше 3.500 и свободен, если признал свою вину.

Что-то мне немножко расхотелось кататься по проезжей части с таким-то ценником. Я и раньше-то не злоупотреблял ПЧ, а сейчас вообще придётся отказаться :( Здравствуйте долбаные тротуары.

Чувствуется какой-то топографический кретинизм: страна - гондурас, а название - Беларусь.

З.Ы. Вчера впилил на полную катушку домой. 40 минут. Что-то я наверное погорячился, рассчитывая уложиться в 35 :)

понедельник, 19 апреля 2010 г.

На работу на велосипеде

Наконец поборол свою природную скромность, которая шептала "сопрут, ой сопрут" и приехал на работу на велосипеде.

По пути с трудом сдерживался от желания припустить во всю - хотелось приехать не вспотев. Но вообще-то это не дело: так все нервы можно растерять - ну невозможно же так медленно ехать! :) Нужно будет что-то придумать с обмытием тушки в туалете - скорее всего внедрю вариант обтирания мокрым полотенцем.

По приезду встретился с трудностью пристегнуть велосипед - целевой столбик стоит за сеткой-рабицей и обернуть цепь не просто - руки сквозь сетку не пролазят. Спасибо коллеге, помог. В следующий раз нужно привезти кусок загнутой проволоки.

До работы 15 км и 50 минут если не спешить.

суббота, 10 апреля 2010 г.

Открытие сезона. Пролог.

Сегодня, на кануне открытия велосезона, решил проехаться на велике в целях тренировки и развлечения :)

Первым делом съездил на работу, получилось 42 минуты. Вполне хороший результат, если учесть, что на автобусе поездка занимает в среднем 1 час 10 минут. Ещё потренеруюсь, изучу оптимальные маршруты и думаю уложусь в 35 минут. До работы около 14 км.

Затем решил прокатиться по велобану - туда-сюда-обратно, о боже как приятно вначале в сторону Ждановичей, а потом в Серебрянку. Туда домчался приятственно, обгоняя всех попутных велосипедистов и мамаш с колясками. Развернулся и... меня встретил мягкий вмордувинд, который с непривычки меня весьма растроил.

Пока доехал до точки вброса на велодорожку(парк Горького) понял, что нет, не судьба. Ноги не едут, денег на покушать нет, а задница так вообще отказалась учавствовать в веселье и обиженно заныла: "домой, домой...". Я и поехал, не отказывать же ей?

Домой добрался в четвертьобморочном состоянии: ко всему прочему правое колено подключилось к попо и начало ныть.

Сижу вот и думаю, не переборщил ли для кануна открытия сезона? Смогул и завтра вообще двигаться? :)

Итого за сегодня 60. "Мало молодые люди. Молодые люди зарделись.". Ничего, "в лучшие времена дам больше" :)

четверг, 8 апреля 2010 г.

bash functions

Недавно выяснил одну интересную штуку. Оказывается функции в bash-скриптах являются как-бы аналогами консольных утилит: их можно вызывать с параметрами и даже перенаправлять ввод-вывод! Всё как оказывается в высшей степени логично.

Приведу небольшой пример:
#!/bin/bash

function source
{
cat /dev/clipboard
}

function nice_fmt
{
sed -re 's/^([0-9]) /0\1 /'
}

source | gawk -F "\t" '{ print $1, $2 }' | nice_fmt
source | gawk -F "\t" '{ print $3, $4 }' | nice_fmt

В данном скриптике(который я использую для форматирования расписания с одного сайта) определено 2 функции: source и nice_fmt
source выдаёт в stdout текст из буфера обмена(дело происходит в cygwin),
а nice_fmt принимает на stdin текст и добавляет лидирующий 0 где необходимо.

И действуют они как обычные программы. Выход source я обрабатываю gawk-ом, и потом форматирую вывод.

Я бы сказал, что это по гиковски прекрасно :)

среда, 7 апреля 2010 г.

Windows+Ext4

Уря, наконец-то нашлась простая утилитка для чтения ext4 разделов из под винды.

Из достоинств - отсутствие необходимости установки и собственно чтение ext4.

Недостатков впрочем куча - read only режим, нет возможности открыть файл не скачав его полностью на хост, невозможно выделить несколько файлов сразу - скачать можно или один файл или всю папку.

В общем для быстрого доступа сгодится, но если нужно что-то посерьёзнее, всё равно придётся устанавливать VMWare, настраивать и запускать виртуалку...

понедельник, 5 апреля 2010 г.

Киви

С удивлением узнал, что киви это вообще-то птица такая. А фрукт назван в её честь. Вот вам ссылка на википедию. Мда...

Выглядит эта птичка где-то так:



Кстати, есть замечательный клип на тему киви (разумеется птицы, а не фрукта). Грустный.

Клип существует с различными звуковыми дорожками, но самая тру - Gary Jules / Mad World

З.Ы. Предыдущее сообщение о переходе на винду прошу официально считать шуткой :) Ну кто же в здравом уме обратно перейдёт? ;)

четверг, 1 апреля 2010 г.

Надоело

Сплошные глюки... :( Надоело...
Буду менять на домашних компах линукс на винду...

понедельник, 29 марта 2010 г.

Life -> MTS

Вчера усилием воли мы с женой заставили себя переключится с лайфа на MTS. Всё-таки лайф штука сугубо глючная. Сколько раз я не мог дозвониться, потому-что "нет сети"? А хронические обрывы разговора на 15 секундах? А постоянные изменения тарифного плана?
В общем, лайф пошёл лесом, тестирую MTC.

Сезон лисапетный: 2010

Открыл наконец-то велосезон на выходных. В субботу сел, вкрутил 3 км за автобусом и сдулся - дыхалка уже не та, нужно растренировывать заново. Дальше поехал более прогулочным темпом, но через 20 км уже запротестовала моя мягчайшая часть тела, пришлось рулить домой.
В воскресенье навернул ещё 20 км, итого за выходные - стыдно сказать - 43 км.

С этого сезона решил сбросить общий счётчик километров в 0, что бы видеть суммарный пробег за сезон. Ну а суммарно-суммарный пробег за всё время буду считать в OO Calc.

З.Ы. Купил наконец-то вело-перчатки, а то уже стыдно кататься в лохмотьях :) На очереди очки.

З.З.Ы. Пробег за прошлый сезон - 3825. Суммарный пробег за прошлые сезоны - 6881.

суббота, 13 марта 2010 г.

Debian/sid + CityInfo 2.7

Сегодня решил поставить CityInfo на debian. Версия 2.6 довольно просто ставится под wine, но я захотел 2.7. Поискал намного и сразу же наткнулся на статью, описывающую установку. Однако этот мануал не сработал полностью, пришлось допиливать напильником. Для заинтересованных расписываю.

1. Первым делом я установил wine поновее. В стандартном дереве sid была только версия 1.0.1, но рекомендовали 1.1.5 и выше. Оказалось, нужно добавить новый источник
deb http://www.lamaresh.net/apt sid main

в файл /etc/apt/sources.list и становится доступными версии 1.1.37, 1.1.38, 1.1.40
Установил последнюю. При этом aptitude немного ругается на неизвестный публичный ключ, но это не смертельно. А если хочется, можно убрать и эту проблему

2. Установил cabextract

3. Скачал IEs4Linux http://www.tatanka.com.br/ies4linux/
Это небольшой скриптик, который копирует существующую инфраструктуру WINE из ~/.wine в ~/.ies4linux/ie6, скачивает IE6 с сайта майкрософта и устанавливает его туда.

4. Теперь дело за CityInfo. Нашёл где-то инсталляцию, скачал с официального сайта обновления программы и транспорта. Итого имеем 3 файла(на текущий момент):
CityInfo2.7.exe
ci27p3v3.exe
trupdate27_41.exe


5. Устанавливаем CityInfo в директорию ~/.ies4linux/ie6. Тут нужна консоль:
$ WINEPREFIX=~/.ies4linux/ie6 wine CityInfo2.7.exe
$ WINEPREFIX=~/.ies4linux/ie6 wine ci27p3v3.exe
$ WINEPREFIX=~/.ies4linux/ie6 wine trupdate27_41.exe


WINEPREFIX указывает, где находится корневая папка wine. Устанавливать в ~/.wine (т.е. по умолчанию) не стоит - у меня после этого ничего не завелось, как я не бился.

Ну вот собственно и всё. Запускать надо так:
$ WINEPREFIX=~/.ies4linux/ie6 wine ~/.ies4linux/ie6/drive_c/Program\ Files/ESMA\ Ltd/CityInfo/CityInfo.exe

Лучше всего засунуть это в скриптик какой

В общем, основное отличие от вышеуказанного мануала в том, что устанавливать надо туда, где лежит нормальный IE, это по умолчанию ~/.ies4linux/ie6

З.Ы. Слава боевым роботам!

суббота, 27 февраля 2010 г.

Debian/sid

Потренировавшись на кошках виртуалках и выкачав при этом 3-4 гига гостевого трафика я наконец решился на установку debian-а на реальном компе. Под раздачу попал мой домашний комп, на котором я иногда работаю, а ноутбук пока что остался с гентой.
Целью всего этого безобразия было не только поставить линукс на десктопе, но и мягко потрогать за вымя другие дистрибутивы. Выбор пал на debian, поскольку он доступен по гостевому соединению. Для пущего эффекта "новизны" выл выбран Gnome вместо KDE, и нестабильная ветка - sid.

В принципе никаких сложностей с базовой установкой не возникло - скачал netinst CD, запёк на болванку, проинсталировал. В итоге без проблем запустился неродной гном.

Дальше я начал обновляться до sid-а. Не самая простая вещь, как оказалось. Ничего не подозревая, я выбрал для обновления ядро, саму утилитку aptitude и ещё пару вещей. Проинсталировал, без проблем, перегрузился на новое ядро и.... X-ы не стартанули.

Щьёрт, подумал я и решил проверить что там говорит aptitude. Оно молчало. И не просто молчало - его нигде не было. Не знаю, ошибка это или я где-то напорол, но старая версия была удалена, а новая не проинсталлировалась :) dselect тоже отсутствовал, dpkg показалось какой-то мутной шнягой, и я уже почти решился всё переинсталлировать начисто, но вовремя вспомнил про свои эксперименты с apt-get.
apt-get install aptitude
помогло, и а снова начал безбожно всё обновлять до sid-а. В конце концов я сумел запустить X-ы и gnome.

Ну а дальше всё просто - я инсталлировал и инсталлировал. Затем в один непрекрасный момент я перегрузился и обнаружил, что gnome не стартует, а вместо него почему-то красуется богомерзкий twm.

Через некоторое время я снова обнаружил, что старая версия гнома была снесена, а новая не установлена. Пришлось доустанавливать.

Итого, инсталляция, апгрейды и настройка заняли у меня около 12 часов :) Большую часть времени правда скачивание пакетов - 1.7 гига, как я сейчас подсчитал.

Heroes I

Просмотрел первый сезон сабжевого сериала... Не впечатлился - сюжет какой-то мутный, диалоги дурацкие, а на слова "судьба" и "спасти мир" у меня вообще образовался рвотный рефлекс. Такое ощущение, что для них даже овсянку на завтрак съесть - это судьба, предназначение и вообще способ спасти мир. Но они её есть не хотят, потому что стремятся быть как все, но при этом едят, потому что они герои, но ... И, да, помочь может только Питер Петрелли.

В общем смотрел его только потому, что уже сконвертировал все серии под мобильник, и смотрел по пути на работу. Теперь ищу что ещё можно смотреть на маленьком экране, склоняюсь к "Разрушителям легенд".

воскресенье, 14 февраля 2010 г.

Gentoo и лицензии

Как я недавно узнал, некоторые пакеты в Gentoo теперь маскированы из-за лицензии. Это например virtualbox-bin с лицензией PUEL, jdk с какой-то ещё лицензией.
Есть один простой способ пресечь это безобразие - добавить строку в make.conf
ACCEPT_LICENSE="*"
Теперь все лицензии будут "приняты", что хорошо для таких разгильдяев, как я.

Если же вы человек строгих моральных принципов - читайте лицензию и размаскируйте пакет, добавив его в файл
/etc/portage/package.license
такую строку:
app-emulation/virtualbox-bin PUEL

суббота, 13 февраля 2010 г.

Купил принтер

... пару дней назад. Жене срочно нужно было распечатать страниц 30 на следующий день. Ехать с самого утра по всяким шарашкам ей не хотелось, да и вообще, принтер в хозяйстве необходим. Вот и решили - сейчас принтер, чуть позже сканер.
Выбрал простой лазерный - HP LaserJet P1005, проверил на совместимость с Linux, бегло просмотрел, как проинсталлировать модель 1005, и какие вооще отличия от 1018, который раньше был у меня.
Отличий в общем-то никаких - только прошивку надо скачать новую, а так у меня уже всё готово.

Купили. Привезли, распаковали, подключили. Дело за драйвером. Вписал в FOO2JZS_DEVICES новую модель - hp1005, перекомпилировал foo2jzs. Смотрю - прошивка на месте:
/lib/firmware/sihp1005.dl
Ну, думаю, всё пучком. Запускаю - никакой реакции. Принтер не печатает, да и вообще, прошивку похоже не грузит: по своему старому 1018 помню, что дело это вполне заметное - принтер начинает шевелится, шуршать и всячески говорить "хозяин, прошивка что надо!" А тут - молчит зараза.

Ну, взял и залил прошивку руками
cat /lib/firmware/sihp1005.dl > /dev/usb/lp0
Не шевелится.

Всё, думаю, капут. Жена думает тоже самое, только ещё капутестее. Ей же в пять утра вставть и ехать печатать эти доки.

Раскопал где-то из запасов виртуалку с виндой. Поставил дрова - принтер не виден. Ну, думаю, шнурок, гады подогнали хреновый. А шнурок и впрямь не фешенебельный - тоненький и длинный. Всё, говорю жене, приехали, ничего не попишешь. На завтра жена утром(совсем утром) уехала, а я купил нурок, чуть потолще.

Ну, рассовал его по разьёмам, и с надеждой включил принтер. Молчит, зараза. Не печатает.
Совсем я тут расстроился, и решил поставить винду. Если уж и там не заработает, то... надо менять лазерник. Расчистил место на одном из разделов - поставил винду. Проверяю - печатает! Жена смотрит недобро, мол у всех винда и никаких проблем, а у тебя срам... ну то есть, линукс.

А винда, добрая душа, конечно перезаписала mbr с моим grub и перетасовала разделы. Кто её собственно просил? Пришлось восстанавливать загрузчик, и править fstab. Хотя нет худа без добра - теперь у меня /dev/hda1 это и есть первый, бутовый раздел. Раньше он был /dev/hda2, а второй был первым. Короче катавасия та ещё.

Ну а вчера вечером я полез копаться, что же случилось то? Почему не пашет прошивка в линуксе, а в винде очень даже пашет. Нашёл буквально через 10 минут. Оказывается я просто весьма не внимательный товарищ :) Принтеры HP LaserJet 1005 и HP LaserJet P1005 это два разных человека! Скачал прошивку sihpp1005.dl - всё работает. Жена меня чуть не придушила, но к счатью обошлось.

Повозившись ещё часик я настроил и CUPS и hotplug и всё что надо. Теперь P1005 работает, как и полагается честному принтеру. А что делать с виндой пока не знаю... Пересоздать раздел? Отформатировать? Жестоко стирать файлы по одному?...

среда, 3 февраля 2010 г.

Меняю работу.

Собственно сабж. Возвращаюсь на старую работу, с которой в своё время ушёл. Давно у меня такие мысли бродили - сменить работу на более масштабную, сложную и ответственную. А тут позвонили, я и согласился.

Согласился правда не сразу - мучался пару дней, прикидывал плюсы и минусы, где что и как. Плюсов было с обоих сторон, что делало выбор тяжёлым. Да. Но в конце концов перевесило желание профессионального роста, каковой я надеюсь будет. Это конечно не сервера гугля разрабатывать, но уже и не внутренний софт.

понедельник, 1 февраля 2010 г.

Покатался на лыжах

Вчера первый раз катался на горных лыжах в Силичах. В общем, впечатления от катания сугубо положительные, не смотря на то, что новые штаны были порваны в первые же 10 минут, а одно ребро что-то болит и довольно неприятственно. Собственно и то и другое произошло исключительно по моей глупости - выйдя первый раз на склон(тренировочный, к тому же), я не присмотрелся что к чему, а сразу попёр. В результате я быстро понял, что поворачивать и тормозить я не умею. Пришлось падать, больно падать. :) Только через некоторое время я проникся что к чему, и довольно сносно поворачивал. И пошёл на нормальные трассы. Успел скатиться только один раз с пологой трассы, зато не упал :)
В общем, здорово. Можно подумать о покупке лыж.

Вот. А вот впечатления от организации сугубо отрицательные. Полтора часа мы как идиоты торчали в зале и ждали, когда заработает наконец-то комп. Это какой-то писец. Самое интересное, что мы практически больше всех ждали. Парень перед нами проскочил, а мы - зависли. Пожалуй больше чем нам не повезло сноубордистам: оказывается система к ним не так лояльна, как к лыжникам. Нас пропустило, а их - нет. Говорит, оборудование уже выдано o_O.
Но, как только один из наших товарищей начал спрашивать, где же тут лежит книга жалоб и предложений, компьютер заработал. Честно говоря похоже на совпадение, но как-то странно.
После того, как наше оборудование(ака лыжи) вбили в комп, мы попытались всё это дело оплатить. И мать, их, касса висела! Ещё пять минут мы ждали, пока заведётся комп на кассе.

Да, ещё занятный момент. У одного товарища поломалось крепление на лыжах - болтик какой-то выскочил, или раскрутился. При сдаче нам предложили оплатить 25 тыр за починку, или чинить самим. Взялись сами - просто вкрутили болтик обратно и отдали. Но такая починка мне как-то доверия не внушает, в следующий раз буду всё проверять и дёргать. Не хватало лишиться лыж на склоне...

З.Ы. А всё-таки понравилось, надо будет ещё съездить :)

пятница, 29 января 2010 г.

Просто о xargs

Долгими зимними вечерами я сидел и думал "вот придёт светлое время, я сяду и как следует разберусь с этой загадочной утилиткой xarg". Ну вот время похоже и пришло - я сел разбираться. Первое, что мне бросилось в глаза, это то, что man к ней довольно загадочный, и с первого раза не просветляет. Статья на википедии понимания тоже не добавила, а скорее даже запутала, поэтому я решил провести своё собственное расследование, и написать по этому поводу небольшой мануальчик. Как известно, пока объясняешь и сам поймёшь :)

Итак, xargs.

xargs это такая утилита командной строки, позволяющая вызвать любую команду с аргументами, взятыми из стандартного входа. Причём аргументы можно передать все сразу, а можно группировать по несколько штук. Изучать мы будем xargs версии 4.4.0, при чём по рекомендации man-а будем использовать только новые аргументы, не помеченные как deprecated(лучше сразу привыкать работать правильно).

Итак первое, что стоит понять, это то, как xargs обрабатывает входящий поток и делит его на аргументы. Есть несколько режимов, зависящих от опций:

1. Обычный. По умолчанию разделителем аргументов считается любой пробельный символ: пробел, табуляция, вертикальная табуляция или перевод строки. Но как и в командной оболочке можно использовать "" или \ что бы предотвратить разбиение аргумента.

2. Обычный, с группировкой. Режим, включающийся параметром -L. Практически идентичен предыдущему, за исключением того, что xargs запоминает, какой аргумент на какой строке находится. Более того, если строка оканчивается пробелом или табуляцией, следующая строка считается продолжением текущей.

3. По строкам. Включается при использовании опции -I или -0. При этом вся строка считается одним целым аргументом, несмотря на пробелы и табуляции внутри. Для -I концом строки является символ '\n' а для -0 символ '\0'

Проведём пару испытаний, что бы лучше понять всё это. Создадим файл test с следующим содержимым(== в файл заносить не надо):
==
arg1
arg2 space
"arg3 quoted"
arg4\ escaped
arg5 with
continue
==
(После 'arg5 with' должен быть пробел)
А так-же напишем небольшой скрипт tp, который будет выводить свои аргументы разделяя их символом ':' и количество:
==
#!/bin/bash
echo -n "@$#"
while [[ $1 != "" ]]; do echo -n ":$1"; shift; done
echo
==

Обычный режим(выделение аргументов по пробельным символам):
x $ cat test | xargs ./tp
@8:arg1:arg2:space:arg3 quoted:arg4 escaped:arg5:with:continue
Файл был разбит на аргументы по пробельным символам, но строки взятые в кавычки и экранированные символом '\' остались целыми.

Обычный режим с группировкой по строкам не отличается от предыдущего на этом этапе.

Разбиение по строкам. Создадим второй тестовый файл следующей командой:
x $ cp test testz && printf "\0arg6" >> testz
Проверим
x $ cat testz | xargs -0 ./tp
@2:arg1
arg2 space
"arg3 quoted"
arg4\ escaped
arg5 with
continue
:arg6

Как можно видеть аргумента всего 2. Первый длинный, сохранивший переводы строк, кавычки и \, а второй arg6. В файле они разделены нулевым символом.

По поводу разделения параметров можно ещё сказать о опции -d, которая указывает новый разделитель. Например попробуем использовать '3' как разделитель.
x $ cat test | xargs -d 3 ./tp
@2:arg1
arg2 space
"arg: quoted"
arg4\ escaped
arg5 with
continue
Произошло разделение файла на 2 части на месте символа '3'. Что примечательно, таким образом можно эмулировать опцию -0
x $ cat testz | xargs -d "\x00" ./tp
@2:arg1
arg2 space
"arg3 quoted"
arg4\ escaped
arg5 with
continue
:arg6

С деление входного потока на аргументы кажется разобрались, переходим к подстановке параметров.

Итак, xarg после своих опций ждёт команду, которую и будет выполнять. Все входящие аргументы разбиваются на группы, после чего заданная команда вызывается для каждой группы, и в неё передаются все аргументы из этой группы.

Теперь рассмотрим, как формируются группы.

1. Если опций нет, то группа одна, в неё попадают все аргументы из потока ввода. Группа бесконечного размера, так сказать :)

2. Опция -L n задаёт группировку по строкам. В команду передаются аргументы находящиеся на n строках. Продемонстрирую на примерах.
Группировка по 1 строке:
x $ cat test | xargs -L 1 ./tp
@1:arg1
@2:arg2:space
@1:arg3 quoted
@1:arg4 escaped
@3:arg5:with:continue
Видно, что вторая строка содержит 2 аргумента, потому как они оба на одной строке. А а последняя вообще 3, так как предпоследняя строка "удлинняется" за счёт пробела в конце.

Теперь группировка по 2 строки. В команду попадают строки 1 и 2; 3 и 4; и сиротка 5-ая:
x $ cat test | xargs -L 2 ./tp
@3:arg1:arg2:space
@2:arg3 quoted:arg4 escaped
@3:arg5:with:continue

3. Группировка по аргументам, задаваемая опцией -n x. Тут всё прозрачно: аргументы группируются по x штук и передаются в команду.
По одному аргументу:
x $ cat test | xargs -n 1 ./tp
@1:arg1
@1:arg2
@1:space
@1:arg3 quoted
@1:arg4 escaped
@1:arg5
@1:with
@1:continue
По 2 аргумента:
x $ cat test | xargs -n 2 ./tp
@2:arg1:arg2
@2:space:arg3 quoted
@2:arg4 escaped:arg5
@2:with:continue

3. Режим с подстановкой - опция -I. Для начала надо напомнить, что в данном режиме аргументы из потока ввода разбираются по особому. Каждая строка это один целый аргумент, склеивание строк не производится. Во вторых, у опции -I имеется параметр - строка, которая заменяется в команде на аргумент:
x $ echo -e "A B\nC D" | xargs -I _ ./tp =_+_=
@1:=A B+A B=
@1:=C D+C D=
Легко заметить, что символ _ задан как строка подстановки аргумента, которая используется в команде 2 раза. Так же видно, что аргументы выделяются целыми строками, и пробел не влияет на разбор. Команда вызывается для каждого аргумента.

С подстановкой всё. Рассмотрим оставшиеся важные опции
-r - не выполнять команду, если нет аргументов:
x $ cat /dev/null | xargs ./tp
@0
x $ cat /dev/null | xargs -r ./tp
x $
Как видим, во втором случае команда не выполнилась.

-p - xargs будет запрашивать подтверждение на выполнение каждой команды.

На этом небольшой мануал завершён. Он оказался не совсем кратеньким, зато надеюсь понятненьким ;)

четверг, 28 января 2010 г.

Шпоры

Распечатал только что шпоры для подружки жены. Учатся они в одном универе, на какой-то ужасной специальности. Только представьте, 51 страница 10-ым шрифтом, с полусантиметровыми полями. И это шпаргалки. По одному предмету.

o_O

среда, 27 января 2010 г.

Дело было вечером, делать было нечего.

Жена отобрала ноутбук и сидела за ним весь вечер. Хочет вспомнить молодость и связать мне шарфик, вот изучает-с. Поскольку мотать шерсть не надо, я был отправлен на свободный промысел, искать себе занятие, то есть.

И решил сделать давно задуманные шары для жонглирования(ну или у кого что фантазия подскажет). Идею бессовестно позаимствовал на каком-то иностранном блоге и адаптировал к своим условиям.

Итак имеем:
- 12 воздушных шариков.
- Килограмм нелюбимых круп(я выбрал горох).
- Какая-нибудь трубка (например картонный "вал" от пищевого целлофана).
- Стакан или любая другая ёмкость. Для пущей точности их нужно 4.
- Ножницы_которые_режут.


Шарики кстати перед использованием стоит надуть, что бы они стали более эластичные. Те которые я купил так вообще страдали крайней степенью жёсткости. Когда надуваешь его первый раз, аж уши закладывает - выложится надо неплохо. Ради лулзов предложил один шарик надуть жене - она так и не смогла :)
Значит продули шарики, теперь по одному натягиваем их на трубку, как... ну как китайский презерватив на негра:


Затем засыпаем в трубку горох(ну или что вы там выбрали):

Разумеется, так он вам в шарик и посыпался. Надо его подтолкнуть - придерживая край шарика на трубке дуем в трубку, шарик надувается и горох элегантно ссыпается в шарик. Повторяем, пока не достигнем желаемого размера шара.

Дальнейший шаг можно пропустить, но я из соображений точности высыпал содержимое шара в первый стакан, а в остальные досыпал точно столько же гороха.


И потом засыпал горох обратно в шары по вышеописанной методике. Получаются вот такие яблоки с ручкой:


Теперь заворачиваем горло шарика внутрь. Можно и просто отрезать шею, но тогда сложнее будет сделать следующий шаг.


Затем подходим к самому сложному. Берём пустой шарик, отрезаем ему горло и пытаемся натянуть на яблоко. Поскольку это сделать невозможно(на первый взгляд), то мы призываем на помощь... нет, не жену. Жене вполне может придти в голову очевидная бесполезность ваших манипуляций, а например мытьё посуды явным "стоящим делом". Нет, мыть посуду сегодня мы не будем. Призываем на помощь терпение и немного смекалки.

Создаём из яблока яйцо:

Теперь натянуть шарик намного проще, но всё равно кажется не реальным. Продолжаем попытки, пока не получится. И в конце концов оно натягивается.
Натягиваем таким же образом второй шарик (и четвёртый, если есть желание)

Получаются такие вот шары:

Белый это вывернутый наизнанку шарик, а рыжий я сделал раньше.

Вот так практически из ничего делается пару бесполезных шаров.

вторник, 26 января 2010 г.

А ведь Холмс был прав....

Когда говорил, что большинство людей не обращают внимания на окружающие их мелочи.
Я уже около 2 лет езжу на работу на автобусе №51, почти каждый день туда-обратно. Казалось бы, для меня этот маршрут должен был стать чуть ли не родным, но...

Некоторое время назад я решил вписать на карте openstreetmap.org этот самый "родной" маршрут. Приступил к нанесению остановок и задумался, а какие там остановки-то? Пару штук помню и всё. Полез в CityInfo и выпал в осадок. Оказывается на маршруте есть остановки, о которых я и не подозревал. Спроси меня "есть остановка X на маршруте?", я бы сказал - нема! 'Х' я написал потому, что... ну сами понимаете, не могу вспомнить как же она называется :)

Мда. И почти каждый день я слышу "следующая остановка Х". Ё-маё, ну как же она называется-то! :)

воскресенье, 24 января 2010 г.

Настроил iptables, теперь никто не ворует

Собственно в заголовке всё сказано, тут я подсыплю немного технических деталей. Теперь мои правила выглядят как-то так:

# INPUT
iptables -P INPUT ACCEPT

# OUTPUT
iptables -A OUTPUT -o lo -j ACCEPT
iptables -A OUTPUT -o ppp0 -m owner --uid-owner dnl-guest -j ACCEPT
iptables -A OUTPUT -o ppp0 -m owner --uid-owner portage -j ACCEPT
iptables -A OUTPUT -m owner --uid-owner root -j ACCEPT
iptables -A OUTPUT -m owner --uid-owner sazarkevich -j ACCEPT

iptables -A OUTPUT -j REJECT

На вход пока что все разрешены, позже надо бы добавить что-то вроде

iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT

а всё остальное запретить.

На выход разрешено всем на lo.
На ppp0 разрешены для пользователей portage и dnl-guest: portage качает обновления, с платника этого делать не стоит. Под пользователем dnl-guest запускаю торрент: su dnl-guest -c "rtorrent ..."
root и sazarkevich могут лазить везде и всюду.
Остальные получают недвусмысленный отказ(REJECT).

Была сначала мысль сделать через параметр --gid-owner: создать группы inet и inet-guest. Кто в первой группе - полный доступ, кто во второй группе - только гостевой.
Но как оказалось, эта группа должна быть основной. В man-е этого почему-то не сказано и я долго пытался понять, почему для одних правил --gid-owner работает, а для других - нет. Жаль, было бы красиво.

пятница, 22 января 2010 г.

Странное

Мои родители довольно далёкие от компьютеров человеки, поэтому зачастую видя меня корпящим над линуксовой консолью, они обвиняюще заявляют "А ты всё в компьютер играешься ?!"

Играюсь ли я в компьютер? Нет, блин, я в него работаю!

;)

понедельник, 18 января 2010 г.

Подсветка строк

Задумался я недавно. Вот grep есть, красиво подсвечивает строки, но всё остальное, что не попало под шаблон, не показывает. А мне захотелось, что бы показывало всё, а кое какие строки даже и подсвечивались.
Сказано - сделано. Полез в гугль, покопался и нашёл что-то похожее на правду: утилиту hlstring. Единственный недостаток - в ебилдах я её не нашёл, поэтому пришлось наморщить ум.

Результатом морщения оного стал вот такой скриптик:


#!/bin/bash

IN_COLOR="^[[0;31;40m"
OUT_COLOR="^[[0;37;40m"

[[ $1 == "" ]] && echo "Usage: $0 [-c color] [--raw-cond] " && exit

while [[ $2 != "" ]]; do
[[ $1 == "--" ]] && shift && break

if [[ $1 == "-c" ]]; then
IN_COLOR="^[[0;$2;40m"
shift
continue
fi

if [[ $1 == "--raw-cond" ]]; then
RAW_COND=true
fi

shift
done

if [[ $RAW_COND == "" ]];then
SED_COND="/$1/"
else
SED_COND="$1"
fi

sed -re "${SED_COND} s/(.*)/$IN_COLOR\1$OUT_COLOR/"

Ну, что тут и как понять вроде не сложно. Ищем sed-ом строки и обрамляем ESC кодами. Коды забиты в шаблон поэтому не факт, что оно будет правильно работать на всех терминалах. Но на xterm - вполне.

Закатал его в файлик highlight.sh, и добавил alias в zsh - hl.

Пример использования:
leela ~ # iptables -L -v | hl eth0 | hl -c 33 --raw-cond 1,2
Выводим правила iptables
Подсвечиваем строки, содержащие eth0 (по умолчанию красным)
И подсвечиваем первую и вторую строку цветом 33 (им оказался жёлтый).
-c как вы поняли цвет, --raw-cond задаёт условие выбора строк в sed как есть (по умолчанию обрамляется /)

Вот даже и картинку сделал:


P/S/ Кстати, можно видеть, что через eth0 я скачал 19 метров (это примерно за сутки) платного трафика, а через бесплатный гостевой доступ уже 3.8 Гига. Похоже больше трафик не крадут ;) А ещё похоже, что первые 4 правила вообще не нужны.

З.Ы.Ы. Если кто захочет скопировать скрипт, то он у вас не заработает. Чтоб сработал надо везде в тексте заменить ^[ на реальный символ ESC. В консоли(и в vim-е тоже) он вводится путём нажатия Ctr+V и затем ESC.

пятница, 15 января 2010 г.

Настройка сети в VMWare

Купил недавно USB веник на 500 гиг. Тут же встала проблема разбивки его на разделы. Впрочем, сама разбивка не представляет сложности: 100 гиг под FAT32(что бы DVD плеер мог читать) и 400 гиг под ext4. Дома то у меня линукс, вот и захотелось родную файловую систему на венике.

А вот теперь проблема - как из винды добраться до этого раздела? Традиционно в винде поддержка файловых систем довольно куцая, а надо. Фильмы там слить у соседа, на работу что-то принести.

Ну, вообще-то это тоже не проблема - сделал виртуалку в VMWare, поставил туда Debian (на 500 метров влез впритык, не могу теперь туда поставить даже vim :). Настроил, как мне показалось, сеть, скачал из инета и установил samba, чтоб шарить раздел ext4. Всё настроил, запустил.

Ну и вот собственно проблема. Винда в упор не может достучаться до расшаренных папок. Пинговать - пожалста, из Debian-а виндовые шары доступны, инет доступен, назад - нет. Пару дней бился головой об стол, перенастраивал самбу, ничего не помогало.

Вот. А настройки сети у меня были такие:
хост (с виндой) 192.168.1.10
гость (дебиан) 192.168.1.200, интерфейс bridged
Всё вроде пучком, подсеть одна, адреса не повторяются.
И в конце концов я заметил пару сетевых интерфейсов VMnet1 и VMnet2, адреса которых были несколько необычными: 192.168.47.1, 192.168.176.1
Потратив ещё пару часов, я наконец добился того, чего добился Коля Остен-Бакен от подруги детства, польской красавицы Инги Зайонц, я добился любви. Любви между виндой и самбой.

Короче, я оставил первый сетевой интерфейс в виртуалке для доступа к инету, и добавил ещё один - host only. Настроил VMnet1 на IP 192.168.2.1 а в дебиане соответствующий eth1 на 192.168.2.2. И всё чудесным образом заработало. Винда не только заходит на шары, но ещё и вполне нормально видит сам виртуальный комп с дебианом, чего я уж никак не ожидал.

Осталось только выяснить, почему невозможно работать через bridged интерфейс.

вторник, 5 января 2010 г.

А.... украли трафик!

Ну точнее, я его сам и про...ал.

пару месяцев у меня был анлим, и я качал сериалы со страшной, всеразрушающей силой. Причём и по платному и по гостевому соединению(почему всеразрушающей? да просто пришлось rtorrent надломать, чтоб он сообщал хорошие цифры отдачи, вот вам и разрушения).

Гостевое соединение я аккуратно отделил от платного: платное идёт через модем -> eth0
а гостевое через поднимающийся на компе ppp0. Соответственно соорудил пару правил для iptables, что бы входящие с eth0 на порты 60000-60011 (порты rtorrent) обрубались на корню. На исходящие я ничего не навешивал, поскольку исходящий порт может быть любым, а как привязать правило к имени процесса я не стал копать. Я решил, что раз входить пакеты не смогут, значит и исходящие потихоньку сами собой заглохнут. Теперь один rtorrent усиленно качал через eth0, второй через ppp0, и друг к другу в гости они не ходили.

И вот, я решил, что можно бы временно переключится на другой, потрафиковый, режим. Взял и переключился. Платный торрент отсановил, а гостевой нет - пущай покачает.

И вот, за 2 дня я вижу в статистике 1 гиг. Причём и входящих и исходящих. Украли!!? Нет, сам прое.. ээ... ну, это самое.

Похоже я не до конца разобрался с iptables. Бегает платный трафик в обход моих правил... Есть предположение, что установленные мной правила не распространяются на уже установленные соединения - исходящие то не режутся. Надо думать. Только нечем :(

Что-то как-то всё никак

Не устаю удивляться творениям рук майкрософтовских. Я ещё могу понять, что cmd.exe жуткое убожество, предназначенное для разовых действий и на нормальную, рабочую консоль никак не тянет. Ну там домохозяйки, всё такое.

А я пишу консольные лабы, и тестировать их удобно именно из консоли. Набил в текстовый файл матрицу 5 на 5, потом просто выполняешь
Lab7 < test
и видишь результат вычислений. Что-то неправильно - перекомпилял и снова проверил.
Приятно, что не надо каждый раз корячится и набивать эту долбанную матрицу.

Но есть и бочка дёгтя в этой ложечке мёда. Переходить в другую директорию довольно занудно без нормального автокомплита, поэтому я просто закрываю консоль и открываю из тотала новую. Знаете, что надо сделать, чтоб закрыть консоль в Линуксе? Нажать Ctrl+D. В cmd.exe надо каждый раз корячится и набирать exit.

Ну вот. А недавно услышал про чудо инженерной мысли - PowerShell. Скачал, установил. Проверил автокомплит - такой-же угрёбищный. Ладно, попробовал
Lab7 < test
и оппа.
PS C:\Lab7\Debug> .\Lab7.exe < 1
The redirection operator '<' is not supported yet.
At line:1 char:13
+ .\Lab7.exe < <<<< 1
А вот такая команда работает:
PS C:\Lab7\Debug> cat 1 | .\Lab7.exe

Не, ну это вообще какой-то идиотизм. Зачем мне новая консоль, в которой надо набирать больше? Да и выходить по Ctrl+D они так и не научились....

Пойду я лучше в Far...

З.Ы. Только что вспомнил, что в фаре вообще нет автокомплита :( Ну что за...