Ил-14 хочет летать

Друзья, замечательному самолёту Ил-14 очень хочется летать, но многочисленные технические трудности не позволяют воплотить это мечту. Нужны руки и, конечно, деньги. Если вам интересна авиация и есть желание сделать что-то полезное, помочь хорошим людям и машинам — пишите мне, я подскажу что делать.

Самолёт находится недалеко от Санкт-Петербурга, на аэродроме Горелово.

Американец

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

Модель для сборки — 3

Джефф Дантман — Драмлинский котёл. Слегка загадочная, лёгкая, приятная и интересная история о колонии людей на далёкой планете и гонках на паровозах.

Дмитрий Биленкин — Исключение из правил. Правда о кошках, необычный первый контакт и… ещё не дослушал. Но очень понравился трек из озвучки: Vibrasphere — Manzanilla.

GIT: заметки

Бывает необходимость вытащить из гита сведения о номере коммита или ветке, чтобы включить их в информацию о программе/прошивке/скрипте. Для Bash это выглядит так:

COMMIT=`git show --pretty=oneline|head -c 40`
BRANCH=`git branch|grep '*'|awk '{print $2}'`

Определение возраста процесса

Чтобы узнать возраст процесса, можно сравнить дату последней модификации каталога /proc/pid с текущей. Сравнение идёт в секундах с начала эпохи, разница выдаётся в секундах.

file=/proc/`pidof PROCESS_NAME`
echo $(( `date +%s` - `stat -c %Z $file` ))

Не уверен только, что из имеющихся вариантов лучше использовать:

%X Time of last access as seconds since Epoch
%Y Time of last modification as seconds since Epoch
%Z Time of last change as seconds since Epoch

Прошёл год

Прошёл год с того момента, как я первый раз взял в руки барабанные палочки. Именно этой фразой я прокомментировал кусочек видео с сегодняшнего занятия. Час ночи, мысли путаются и я не знаю толком что её написать. Но с тех пор, как и электроника, и сети стали моей работой, мне очень не хватало хобби, которое бы отвлекало меня от всех этих высоких материй. Им и стала игра на барабанах. Бум, тыц! Бум-бум, тыц! 🙂


Модель для сборки — 2

Брайан Плант — Пока я жив. Непростое существование электронного мозга в ящике на столе и его человекоподобного тела.

Брайан Плант — Только человек. Можно ли отличить разум человека от его электронной модели?

Пока гуглил правильность написания имени автора наткнулся на интересный сайт http://mds.redde.ru/. На нём собраны названия композиций, сопровождающих рассказы из МДС. Пока не исследовал, но многие темы мне нравились и я жалел, что не могу их опознать.

Модель для сборки — 1

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

Брайан Стэблфорд — Снежок в аду. Что делает человека человеком? Происхождение? Набор генов? Поведение? Будет ли человеком искусственно созданное существо? Стоит подумать над этим вопросом, ведь мы уже вплотную подошли к этой возможности.

Брендан Дюбуа — Падающая звезда. Что случится с человечеством, если оно вдруг останется без привычных нам сегодня высоких технологий и поголовного торжества электроники? Тема избитая, но рассказ очень приятный.

Разбираем: модем AnyData ADU-500

Сегодня мне в руки попал модем Anydata ADU-500. Посмотрим, что там внутри?

На плате были обнаружены следующие микросхемы:

  • Samsung K511F12ACA-BO75 — Flash
  • AnaDigics AWT6136R — 450 MHz power amplifier
  • Qualcomm RFR6170 — CDMA450 Receiver
  • Qualcomm RFT6170 — CDMA450 Transmitter
  • Qualcomm MSM6800A — CDMA modem chipset
  • Qualcomm PM6650 — Power Management IC

OTRS: смена почтового ящика

Меняя почтовый ящик в системе OTRS, помимо задания нового адреса и блокировки старого, неплохо бы не забыть сделать ещё две вещи:

  1. Очистить новый почтовый ящик, чтобы не получить кучу заявок по старым письмам.
  2. Изменить адрес системы NotificationSenderEmail на странице Framework -> Core, чтобы в качестве отправителя указывался новый адрес.
  3. Изменить логин и пароль пользователя на странице Framework -> Core::Sendmail.
  4. Проверить, что PostMasterMail Accounts и Адреса Email используют новый почтовый аккаунт.
  5. Изменить адрес исходящей почты для каждой очереди.

Надо ли говорить, что всё это я понял пост-фактум? 🙂

Ремонт блока питания D-Link JTA0302D

На прошлой неделе перестала работать точка доступа D-Link DWL2100AP — светодиоды не горят, сети не видно. Разобрал — внутри всё чисто. Сама точка устроена просто и ломаться там особо нечему.


CPU: Atheros AR2313A
RAM: ESMT M12L128168A-7T
Flash: Spansion S29GL032M90TFIR4
PHY: IC+ IP101A
Transformer: TS6121C
Radio: Atheros, не разглядел какой :)

Проверил напряжение на выходе БП — ноль. Вот и причина. Открыть его оказалось непросто — корпус тупо склеен. Долго и аккуратно резал его канцелярским ножом. Внутри обнаружил вздутый конденсатор C10 и сильно поджаренный стабилитрон ZD1. Порыв инет узнал, что нужно заменить ещё и C6. И хотя он выглядел хорошо, я добавил его в список покупок. Как оказалось позднее — очень не зря. Закупив в Мегаэлектронике конденсаторы и два стабилитрона на 12 и 22 В я вернулся домой. Поджаренный стабилитрон, судя по всему, был жив, но грозился развалиться в пыль. Испытание показало, что обратный пробой начинался в районе 20 В (больше мой «лабораторный» БП не умеет). Поэтому на замену поставил 1N4748A. Так же заменил вздутый конденсатор, а C6 трогать не стал. Пробное включение и… ничего — на выходе всё так же ноль. Снова фен в руки, меняю C6. Включаю — работает! Спасибо интернету за ценную подсказку 🙂 Осталось только склеить половинки корпуса, обмотать для надёжности скотчем и подключить все провода на место.

Ссылки:
http://www.e1.ru/talk/forum/read.php?f=29&i=178015&t=178015
http://blog.amigas.ru/?p=263

Первое падение

Неделю назад упал в повороте на выезде из Шлиссельбурга. Дорога там узкая, поворот очень крутой и медленный. Толком не понял, как всё произошло, т.к. случилось всё очень быстро — секунду назад я ехал, а сейчас уже лежу. Похоже, что вошёл в поворот быстрее, чем нужно, прошёл по краю дороги и либо попал на песок, либо сам улетел на обочину. Обочина — куча песка с камнями, выше уровня дороги. У меня синяк на бедре, царапина на локте и порванная коленка на штанах. Был в полном экипе — шлем, черепаха, колени, боты, перчатки — чем очень доволен. У мотоцикла повреждения в основном косметические, но неприятные: отколот кусок ветровика, поцарапан обтекатель, отломано одно из ушей крепления фары, расколот левый поворотник и порвана резинка на левой подножке.

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

Морду разобрал, отмыл от пыли, приклеил ухо фары на место. Видок будет так себе, но ездить можно. Пока что не собрал — совмещу это занятие с установкой китайской двадцатидолларовой сигнализации, о которой расскажу чуть позже.

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

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

rsync + ssh

В скачивании файлов через scp один неприятный момент — при обрыве соединения scp начнёт перекачивать всё заново. Поэтому лучше использовать связку rsync и ssh:

rsync --progress -r -e 'ssh -p 2222 -l user' host:/source/path /dest/path

git: merge —squash

Чтобы при объединении веток получить только один коммит из вливаемой ветки, а не всю историю, нужно использовать параметр --squash:

git merge --squash branch -m "super commit"

Ссылки:

UPD: Как показала практика, с master’ом так лучше не делать, т.к. в этом случае другие ветки сообщают примерно следующее:

# Your branch and 'origin/master' have diverged,
# and have 336 and 1 different commit(s) each, respectively.

Т. е. пути вашей ветки и мастера разошлись. Учитывая, что в большинстве случаев разрабатываемые ветки в итоге вливаются обратно в master, это может привести к неприятным последствиям. К каким точно — не знаю, но для себя решил не использовать опцию --squash.

Прокатился в Шлиссельбург

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

Дорога до Шлиссельбурга заняла около часа, а пробег составил 45 километров. Проехав мимо Красной площади я остановился на улице Жука и пошёл искать ГИМС. С подсказки местного жителя довольно быстро обнаружил тщательно зарешеченный вход в эту организацию, списал график работы и отправился в обратный путь. Изначально я планировал возвращаться через Мгу, но времени было в обрез — к часу надо было быть на Невском — и я поехал обратно тем же путём.

На выезде из города случилась неприятность — при переключении на 5-ю передачу мотоцикл почему-то замедлился, а потом и вовсе заглох. Пару раз безуспешно прокрутив двигатель стартёром я понял, что теряю скорость, а машинка сзади становится всё ближе. Включил поворотник и свернул на обочину. Оказалось, бензин кончился несколько раньше, чем я планировал. Я хотел выкатать остатки пяти литров, залитых в мой день рождения, и заправить полный бак. Что ж, так и произошло. Переключился на резерв и поехал дальше, гадая, хватит ли бензина до дома. По пути высматривал заправки, но все они были слева и появлялись очень неожиданно, так что я пролетал мимо.

Добрался до Металлостроя и решил поехать на известную мне заправку за железной дорогой. Подъезжая к переезду увидел стоящие машины и пролетающий хвост товарняка. Решив, что переезд сейчас откроют, свернул к нему и встал за Камазом. Как оказалось — зря. Прошло ещё два поезда прежде чем шлагбаум открылся, а стоять на солнцепёке без единого дуновения ветерка в черепахе и прочей защите весьма жарко. Стоял, потел и пытался вспомнить можно ли разворачиваться ближе 50-ти метров перед переездом. Решил, что нельзя. Наверно, можно было бы слезть с мота, прикинуться пешеходом и, развернув его руками на 180, поехать в объезд, но желания не было. Преодолев переезд свернул на заправку. Там меня ждала первая встреча с заправочным пистолетом.

Сам пистолет, вроде, простое устройство, но почему-то сладить с ним было непросто — при слабом нажатии на скобу топливо начинало литься, но при более сильном скоба проскакивала и бензин переставал течь. Пришлось несколько минут стоять точно дозируя усилие. Другая проблема — при сильном потоке топливо начинает выплёскиваться из горловины и растекаться по баку. Заправившись порулил в сторону дома. Итоговый пробег — 93.7 км.

OTRS: время бездействия сессии

Не нравится мне, что спустя некоторое время бездействия OTRS завершает сессию и для продолжения работы нужно входить в систему снова. Настроить время бездействия сессии можно тут Core::Session -> SessionMaxIdleTime. Значение по умолчанию — 21600 секунд (6 часов). Я увеличил его до 24 часов (86400 секунд). Думаю, этого будет достаточно, чтобы прийти на следующий день и продолжить работу с того места, где закончил.

UPD: Как оказалось, максимальное время сессии так же ограничено 24-мя часами, т.е. не зависимо от активности через 24 часа сессия будет завершена и регистрироваться в системе придётся заново 🙁

GIT: удалить удалённую ветку

Долго не мог понять, почему git -r -d branchname не приводит к желаемому результату. Оказалось, надо делать так: git push origin :branchname

Вот я сейчас как почищу удалённую сторону 🙂

Ссылки: