В наушниках по жизни

В наушниках по жизни

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

Продам Skoda Fabia Mk1 (6Y) 2003 года выпуска

2 июня, 21:02

Решил вот продать свой автомобиль. В общем, продаётся неспешно автомобиль Skoda Fabia 2003 года выпуска.

Страна производитель Чехия
Год выпуска 2003
Объём двигателя 1,2
Мощность 64 л.с.
Пробег ~167 000 км.
Руль левый
Владельцев по ПТС 3

ЦЕНА ПРОДАЖИ 200 000 рублей. Возможен торг.

Расход по городу без пробок

Комплектация

  • Бортовой компьютер
  • Электро-усилитель руля
  • Кондиционер
  • Регулировка руля по двум направлениям
  • ABS
  • Подушки безопасности
  • Иммобилайзер
  • Сигнализация
  • Музыка
  • Шумоизоляция

Состояние

Машина полностью обслужена и ухожена. Состояние: сел и поехал. Никаких вложений не требуется. Все расходники менялись вовремя. Масло менялось каждые 7 тыс. км.

Установлена сигнализация с автозапуском Starline A91. Электрозамки на всех дверях. Багажник открывается с брелока сигнализации (нет необходимости в полном отключении сигнализации).

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

Имеется два комплекта ключей и 2 брелока сигнализации, один с обратной связью, другой без (открывание и закрывание дверей и постановка на сигнализацию).

Расход в городе от 6 до 8 литров на 100 км, в зависимости от стиля и манеры езды.
Расход на трассе от 5 до 6 литров на 100 км.

Аудио

Аудио-подготовка автомобиля. Сделана вибро- и шумоизоляция всех дверей, задней двери, багажника и задних арок автомобиля. Штатные динамики передних дверей заменены на DLS.

Полка с двойным дном для инструмента.

Виброизоляция дверей Установка динамиков DLS

Дополнительно

Летняя резина Formula Energy 185/65 R14, 2 сезона, на литых дисках в отличном состоянии. Зимняя резина, 2 сезона, Dunlop Winter SP 185/65 R14 на штамповках, состояние на 4+.

Масло залито Total Quartz 9000 5w40. В мороз машина заводится без проблем.
На сидениях имеются текстильные чехлы.
Задние стёкла затонированны.

Бонусы

Низкий налог на автомобиль.
Выведено отдельное питание для регистратора в область зеркала заднего вида.

История ремонта и технического обслуживания

15 декабря 2013 года

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

13 мая 2014 года

Замена выжимного подшипника сцепления.
Замена дисков сцепления.

4 июля 2014 года

Замена масла и фильтра. Замена ремня.

20 августа 2014 года

Антикоррозийное покрытие порогов и дна.
Замена внешних гранат, замена правой внутренней гранаты.
Замена передних тормозных дисков и тормозных колодок.

Новые колодки Новые тормозные диски

26 декабря 2014 года

Замена масла и фильтра.

22 мая 2015 года

Шумоизоляция дверей, арок, багажника. Установка задней полки под динамики. Установка подсветки багажника. Замена наконечников рулевых тяг. Замена передней правой шаровой опоры. Развал — схождение. Замена щёток генератора.

01 июля 2015 года

Замена масла и фильтра. Замена воздушного фильтра. Замена фильтра салона.

12 Ноября 2015 года

Замена масла и фильтра. Замена воздушного фильтра. Замена фильтра салона.

20 марта 2016 года

Замена масла и фильтра. Замена воздушного фильтра. Замена фильтра салона.

18 апреля 2016 года

Замена всех четырёх стоек.

20 мая 2016 года

Замена обеих внешних гранат

Report Builder for Synadyn Broadcast 1.0

15 января 2016, 23:00

Достаточно давно, ещё когда я работал на «Восточном Экспрессе» я написал и выложил в свободный доступ программу для генерации отчётов в РАО на основании отчётов о проигранных файлах, которые оставляет Synadyn Broadcast.

Часто люди стали спрашивать у меня, можно ли сделать ту или иную модификацию, есть ли новые версии. И получилось так, что на данный момент есть более свежая версия программы, которую я ещё не публиковал. Её кардинальное отличие состоит в том, что данная версия позволяет создавать отчёты не за один месяц, а за необходимый период, собирая информацию из всех имеющихся файлов. Т. е. если вы указываете каталог, в который предварительно скопировали файлы отчётов за 3 месяца, то программа соберёт информацию из всех имеющихся фалов.

Скомпилированная версия 1.0:
Report Builder for Synadyn Broadcast 1.0

Так же, для всех желающих, я выложил в открытый доступ исходные коды проекта:
GitHub Report Builder for Synadyn Broadcast

Убедительная просьба, если вы добавляете какой-либо функционал, который может быть полезен, создайте PullRequest на GitHub, чтобы включить ваши правки в новый релиз для развития проекта. Делитесь своими достижениями с другими.

Данное программное обеспечение является совершенно бесплатным и поставляется как есть.

Аудио-плеер на Delphi для iOS с применением библиотеки BASS.

4 января 2016, 2:00

Прошло довольно много времени с момента написания первой статьи «Аудио-плеер на Delphi для Android с применением библиотеки BASS». И теперь я решил написать вторую часть статьи про запуск и использование библиотеки BASS под iOS. В данном конкретном случае, так же? как и в предыдущей статье, целью подключения библиотеки, стало использование функции проигрывания сетевого аудиопотока.

Настройка

Как и в случае с настройкой под Android, для iOS нам потребуются дополнительные библиотеки, без которых скомпилировать проект не получиться. Воспользуемся набором библиотек DPF iOS Native Components. Данные библиотеки нужны для подключения iOS фреймворка работы со звуком.

Скачиваем архив с файлами с официального сайта или с моего сайта.

После того, как мы скачали все необходимые дополнительные файлы, приступаем к установке компонентов.

Я рекомендую (во избежании дополнительных проблем с подключением) распаковать файлы в папку DPF.iOS.Native.Components.v9.6.1.zip в корень диска C.

В каталоге с файлами, имеется файл Install.txt. У кого хорошо с английским, могут сделать всё по инструкции описанной в файле, для тех, кто не совсем понимает, что необходимо делать, я опишу процесс подробно.

Запускаем Codegear RAD Studio. Далее в верхнем меню открываем Tools->Options->Delphi Options->Library.

Затем, в выпадающем списке поочерёдно выбираем следующие пункты платформ:

  1. 32-bit windows
  2. iOSSimulator
  3. iOSDevice32
  4. iOSDevice64

В каждом из пунктов добавляем в раздел «Library path» путь к нашим компонентам. В нашем случае C:\DPF.iOS.Native.Components.v9.6.1\

Добавление фреймворка Добавление фреймворка

Теперь, необходимо в разделе SDK Manager указать, какие фрейворки iOS нам потребуются. Для этого открываем Tools->Options->SDK Manager, пролистываем появившийся список вниз до раздела Frameworks, выбираем в списке один из фремворков, нажимаем на кнопку Add the new path item и добавляем следующие фреймворки:

  • /System/Library/Frameworks/EventKit
    /System/Library/Frameworks/MessageUI
    /System/Library/Frameworks/AudioToolbox
    /System/Library/Frameworks/Social
    /System/Library/Frameworks/QuickLook
    /System/Library/Frameworks/SystemConfiguration
    /System/Library/Frameworks/GameKit
    /System/Library/Frameworks/CoreBluetooth
    /System/Library/Frameworks/Accounts
    /System/Library/Frameworks/AdSupport
    /System/Library/Frameworks/ExternalAccessory
    /System/Library/Frameworks/AddressBookUI (No need in XE8 and later)
    /System/Library/Frameworks/AddressBook (No need in XE8 and later)
    /System/Library/Frameworks/MobileCoreServices (No need in XE8 and later)
    /System/Library/Frameworks/MapKit (No need in XE8 and later)
    /System/Library/Frameworks/LocalAuthentication.framework/LocalAuthentication (iOS 8.0 and later)

В качестве пути на удалённом хосте требуется указывать путь «$(SDKROOT)/System/Library/Frameworks», а качестве имени, название фремворка. Для примера:
Путь: $(SDKROOT)/System/Library/Frameworks
Имя: EventKit
Больше нигде никаких галочек ставить и выбирать не требуется.

Должно получиться так.

Добавление фреймворков Список фремворков

В разделе Libs, аналогичным образом необходимо добавить библиотеку /usr/lib/libxml2.dylib. Путь к ней указать, как $(SDKROOT)/usr/lib/

После добавления всех фреймворков в список необходимо обязательно нажать на кнопку Update local File Cache. При этом MAC с запущенным PAServer'ом должен быть настроен и доступен.

Теперь нам потребуется скомпилировать и установить компоненты. Для этого нажимаем File -> Open Project. Открываем проект из папки компонентов, соответствующий вашей среде программирования.

Нажимаем правой кнопкой на проекте в инспекторе проекта и выбираем пункт «Build», начнётся построение проекта.

После завершение построение, опять нажимаем правой кнопкой на проекте в инспекторе и выбираем пункт «Install».

Компоненты готовы к работе. Приступим к созданию проекта.

Проект

И вот, всё почти готово, для использования библиотек Bass на iOS. Осталось задействовать саму библиотеку и добавить некоторый код в проект.

Для работы с библиотекой, нам потребуется файл libbass.a. Его необходимо добавить в корень каталога проекта. Откуда конкретно у меня данный файл, я точно сказать не смогу, я нашёл его где-то на просторах форума un4seen.com. Здесь я выкладываю рабочий файл из своих проектов.

Но, одного файла для работы будет недостаточно. Так же, в проект необходим добавить ещё 2 файла *.pas. Первый будет необходим для работы с функциями libbass, второй послужит для работы с фреймворком iOS для работы с сетевыми потоками.

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

В раздел implementation необходимо добавить следующий код:

{$O-}
  function BASS_Init(device: LongInt; freq: DWORD; flags: DWORD; win: Pointer; clsid: Pointer) : BOOL; cdecl; external 'libbass.a' name 'BASS_Init';
  function BASS_StreamPutData(handle: HSTREAM; buffer: Pointer; length: DWORD): DWORD; cdecl; external 'libbass.a' name 'BASS_StreamPutData';
  function BASS_StreamFree(handle: HSTREAM): BOOL; cdecl;  external 'libbass.a' name 'BASS_StreamFree';
  function BASS_StreamCreate(freq: DWORD; chans: DWORD; flags: DWORD; proc: Pointer; user: Pointer): HSTREAM;  cdecl;  external 'libbass.a' name 'BASS_StreamCreate';
  function BASS_StreamCreateFile(mem: BOOL; f: Pointer; offset, length: QWORD; flags: Cardinal): HSTREAM; cdecl; external 'libbass.a' name 'BASS_StreamCreateFile';
  function BASS_StreamCreateURL(url: Pointer; offset: Cardinal; flags: Cardinal; proc: DOWNLOADPROC; user: Pointer):HSTREAM; cdecl; external 'libbass.a' name 'BASS_StreamCreateURL';
  function BASS_ChannelPlay(handle: HSTREAM; restart: BOOL): BOOL; cdecl;  external 'libbass.a' name 'BASS_ChannelPlay';
  function BASS_ChannelStop(handle: DWORD): BOOL; cdecl; external 'libbass.a' name 'BASS_ChannelStop';
{$O+}

Работа с аудиопотоком

Для корректной работы с аудипотоками, требуется подключение аудио-фреймворка iOS. Самый простой способ сделать это, кинуть на форму компонент DPFAVPlayer, что именно я и сделал. Это исключает необходимость выполнения дополнительных манипуляций.

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

Глобальные переменные.

uStream:HSTREAM;
chan: HSTREAM = 0;

При нажатии на кнопку Play в приложении запускается поток:

// Запускаем поток вещания
IdThreadComponent1.Start;

«Тело» потока:

try

    // Инициализируем libbass
    BASS_Init(-1,44100,0,Handle,nil);

    // Закрываем предыдущие потоки (не обязательно, взято из примера)
    BASS_StreamFree(uStream);

    messageText := 'Буферизация...';
    IdThreadComponent1.Synchronize(ShowMess);
    // Создаём поток данных
    uStream:=BASS_StreamCreateURL(Pchar(stantion),0,BASS_STREAM_STATUS or BASS_UNICODE,nil,nil);

    if uStream = 0 then
    begin
      ShowMessage('Ошибка создания потока!');
    end
    else
    begin

      if not Bass_ChannelPlay(uStream,true) then
      begin
        ShowMessage('Не удалось воспроизвести поток!');
      end;

      messageText := currentLabel;
      IdThreadComponent1.Synchronize(ShowMess);
      IdThreadComponent1.Synchronize(deactivateIndicator);
    end;

  except on E: Exception do
    begin
      {$IFDEF DEBUG}
        ShowMessage(e.Message);
      {$ELSE}
        ShowMessage('Ошибка подключения к выбранной радиостанции.');
      {$ENDIF}
    end;
  end;

  IdThreadComponent1.Terminate;

Остановка проигрывания

// Останавливаем плеер
BASS_ChannelStop(uStream);

Как вы могли заметить, во время запуска потока, инициализируется библиотека Bass, очищаются имеющиеся потоки и создаётся новый интернет поток при помощи функции BASS_StreamCreateURL, где stantion строковая переменная, содержащая ссылку на поток.

Данный набор минимальных настроек, позволит вам работать с библиотекой Bass на устройствах под управлением iOS.

Проигрывание в фоне

Чтобы заставить ваше приложение продолжать проигрывание в фоне, необходимо сделать дополнительные настройки проекта. В XE10 наконец-то появился параметр UIBackgroundModes. В настройках проекта устанавливаем значения: audio И remote-notification (в случае использования Push уведомлений).

Окончание

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

JD.ru или история одного телефона

18 декабря 2015, 9:38

Случилось мне заказать по акции как-то на сайте JD флешку и PowerBank во время распродаж по 5 центов. Ну, понятно, все дела, акции, распродажи, куча заказов. Но, тем не менее, получил свои заказы как положено. Хотя читал в интернете отзывы, что были ошибки, мол, присылали только провода от PowerBank, но чем закончилось не в курсе.

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

В общем, нашёл интересующий меня товар Xaomi Redmi Note 2 со скидкой в $20 и устраивающим меня сроком отправки и доставки, сделал заказ. Товар обещали отправить в течение 6 дней, доставка до места ещё от 3 до 7 дней. Всё официально заявлено в карточке товара.

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

Сделав заказ 4 декабря 2015 года, я стал ждать отправки. Прошла неделя, но товар так и не отправили. К этому времени стали появляться комментарии к товару, в которых люди жаловались, что товар не отправляют, хотя заказывали ещё в период с 12 по 28 ноября. При этом ничего вразумительного продавец так и не смог ответить.

Затем товар пропал из продажи, при этом, он ещё не был отправлен тем, кто его заказывал. Т. е. продавец набрал заказы, которые по факту обеспечить не мог.

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

На форуме 4PDA к моменту написания данной статьи набралось уже порядка 1138 страниц обсуждения, все делятся эмоциями и последней информацией, составили даже небольшую таблицу заказавших.

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

На ответ у продавца ушло 4 дня и к 17 декабря, телефон так и не выслан.

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

Ситуация усугубляется ещё несколькими факторами:

  1. Нарушенная последовательность отправки заказав, т. е. те, кто заказал телефон раньше, получат его позже тех, кто заказал, например 12 декабря.
  2. В официальном сообществе ВК неудобные вопросы просто удаляют, а пользователей отправляют в чёрный список. В связи с этим, появилась другая группа BadJD, с более реальными отзывами, чем на оф. сайтах.
  3. После покупки, в личном кабинете пропала кнопка отмены заказа. Т. е. если вам телефон ещё не выслали и вы ждёте его уже 2-3 недели, вы не можете отменить свой заказ и купить телефон в другом месте. История с отменами вообще достойна отдельной статьи.

Ещё одной проблемой стала оплата через Яндекс.Деньги — НЕ ВЗДУМАЙТЕ ПЛАТИТЬ ЧЕРЕЗ ЯНДЕКС. В случае проблем с доставкой, комплектовкой и обманом продавца, вернуть свои деньги будет практически невозможно, т. к. Яндекс не особо хочет нести ответственность за недобросовестных продавцов, в отличие от PayPal.

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

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

Ctrl + ↓ Ранее