Запись (захват) звука с интернет-радиостанций

Иногда бывает нужно сделать следующее: записать звук, например, проигрываемый интернет-радиостанцией или просто каким-то приложением. Проще всего может оказаться банально записывать то, что выдается на аудио-выход компьютера. Программа freecorder, выполненная в виде расширения к Firefox одним нажатием кнопки позволяет запустить запись того, что воспроизводится в данный момент. Кроме того, программа обладает одной очень удобной функцией — начало записи будет активироваться автоматически только при наличии сигнала, то есть, если на выходе тишина, то лишншие пустые mp3-файлы на диск записываться не будут.

Виртуальный MIDI-кабель

Виртуальный MIDI — кабель может быть полезен, если нужно без лишних затей управлять каким-либо приложением, поддерживающим MIDI-триггеры для выполнения внутренних команд. Представим себе, что у нас есть входной порт MIDI-in, в который можно неким программным образом посылать сигналы. Тогда легко сделать, например, пульт управления через Bluetooth записью звука, скажем в Adobe Audition. Уровень экзотичности вариантов использования зависит только от фантазии разработчика и насущных потребностей.

Небольшое исследование показало, что для Windows 7, пожалуй единственным вариантом является ipMIDI , и бесплатная версия LoopBe1, которой для вышеуказанных целей вполне достаточно — ограничение бесплатной версии в том, что создается только один виртуальный MIDI-порт.

После установки программы в системе появляется один выходной порт MIDI LoopBe Internal и соответствующий ему входной. Используя .NET библиотеку NAudio можно подавать сигналы на выходной порт LoopBe, которые в свою очередь будут переданы на виртуальный порт MIDI-in. Для Adobe Audition MIDI триггеры настраиваются с помощью команды Edit-Keyboard shortcuts and MIDI triggers. На скриншоте ниже показана привязка ноты D3 к действию остановки/продолжения воспроизведения звука.

Google закроет Code Search

Итак, прискорбнейшее известие — вместе с рядом других продуктов Google закрывает поиск по исходному коду Google Code Search. Первая возникающая мысль — Nooooooooooooooo! Прощай, палочка-выручалочка для любого программиста.

Что же использовать в качестве альтернативы? *Там-та-дам, трейлерная музыка на заднем плане и загробным голосом — 15 января 2012 года, мир изменится, он никогда уже не будет таким простым. Но можно попробовать воспользоваться другими подобными инструментами.

  • Koders.com — незамедлительно радует нас на главной странице новостью о закрытии Google Code Search, рекламируя себя главную альтернативой Гуглу. Экспресс сравнение: сделаем запрос по аббревиатуре MFCC — слово не самое встречаемое, поэтому это должно показать глубину поиска по всем проектам интернета, а не добавленным вручную. Koders.com выдает в результатах 798 совпадений 26 классов и 23 метода, у Google файлов с совпадением более 3000 (!), правда в реальности можно пролистать страницы только с двумя сотнями файлов, что является, видно, реальной цифрой. Результат вполне ожидаем, но неутешителен.
  • Сodase — в настоящий момент поиск почему-то не работает, протестировать не удалось.
  • Krugle Такое ощущение, что поисковик по исходному превратился в демо-версию коммерческого продукта Krugle. Сейчас область поиск стала ограничена несколькими десятками проектов под лицензией Apache.

Какие можно сделать выводы? Похоже, что придется пользоваться проектом Koders.com и не забывать про такие ресурсы как Codeproject, SourceForge, GitHub.

Ссылки по теме:

Offline импорт контактов из Nokia S40 в Android

Опишу способ переноса контактов из телефона Nokia на платформе S40 (а это почти все телефоны Nokia, что не смартфоны и не 1XXX с фонариком) без использования онлайн синхронизации через аккаунт Google.

  1. C помощью Nokia PC Suite делаем резервную копию контактов — на выходе получаем *.NBU файл.
  2. Далее нужно получить контакты в формате VCF. Это можно сделать с помощью программы Nbuexplorer или NBUparser — эти программы позволяют вытянуть всю информацию из бекапа телефона. Тут камень в огород Nokia, потому что файлы бекапа фактически бесполезны, если телефон будет утерян или сломан — восстановить официальными программами можно только в такой же телефон. Нажимаем правой кнопкой на Contacts — Export All — указываем папку назначения, в которую Nbuexplorer запишет файлы *.vcf для каждого контакта.
  3. Папку с vcf файлами копируем на карту памяти Android-телефона.
  4. Далее на Android открываем (может отличаться в зависимости от версии Android) Приложения- Контакты — Меню — Импорт контактов. — Карта памяти. . Появляется окно с запросом куда сохранять контакты, а затем диалоговое окно, в котором нужно выбрать «Иморт всех vCard».

Все — теперь контакты импортированы практически со всей дополнительной информацией (фотографии все-таки не импортировались)

Макрос присоединения к процессу Visual Studio

При отладке VST-плагина довольно утомительно каждый раз выбирать хост-процесс, к которому нужно присоединиться из полного списка процессов. Здесь описан способ создания макроса, позволяющего упростить эту рутинную операцию для присоединения к IIS для отладки ASP.NET. Для наших целей (присоединение к процессу reaper.exe) лучше взять и слегка поправить шаблон макроса из Samples-VsDebugger-AttachToCalc, который пытается присоединиться к калькулятору Windows.

  1. Создать новый модуль макроса в >Macro Explorer (Tools->Macro->Macro Explorer) , например, с названием MyDebuggerTools.
  2. Вписываем примерно такой код модуля:
  3. Imports System
    Imports EnvDTE
    Imports EnvDTE80
    Imports EnvDTE90
    Imports System.Diagnostics
    Imports System.Security.Principal
    
    Public Module MyDebuggerTools
    
        ' This subroutine attaches to reaper.exe if it is running.
        Sub AttachToReaper()
            Dim attached As Boolean = False
            Dim proc As EnvDTE.Process
    
            Dim reaperProcName = "reaper.exe"
    
            For Each proc In DTE.Debugger.LocalProcesses
                If (Right(proc.Name, Len(reaperProcName)) = reaperProcName) Then
                    proc.Attach()
                    attached = True
                    Exit For
                End If
            Next
    
            If attached = False Then
                MsgBox(reaperProcName + "is not running")
            End If
    
        End Sub
    
    End Module
    
  4. Привязываем макрос к сочетанию клавиш. Tools-Options->Environment-Keyboard, вводим в фильтре начало имени процедуры, указываем сочетание клавиш, например, Сtrl-Alt-K и нажимаем кнопку Assign.

Как самостоятельно получить визу в Латвию

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

  1. Необходимо приглашение. Мне его делали родственники, им для этого потребовалась информация о загран. паспорте и почему-то о месте моей работы. Пересылать по почте ничего не нужно, требуется указать только девятизначный номер приглашение. Кроме того, в анкете требуется указать имя приглаюющего человека и адрес с телефоном. Приглашение действительно полгода — время на оформление визы.
  2. Заполненная анкета. Бланк анкеты на русском языке, здесь пример заполнения и указания по заполнению. Из указаний для меня было интересным только поле с адресом — если адрес прописки и проживания отличаются, а еще в 33 пункте, если в качестве источника финансирования указаны наличные деньги, то необходимо поставить еще одну галочку(например, что проще всего, кредитная карта). По поводу адреса, по идее в консульстве Петербурга должны принимать только жителей Санкт-Петербурга и Ленинградской области, Республики Карелия, Вологодской и Новгородской областей, однако у меня даже не спросили копию временной регистрации. Хотя по телефону сказали, что в ближайшем будущем, с временной регистрацией в Санкт-Петербурге, сделать визу можно будет только в Москве.
  3. Одна цветная фотография размером 35 мм х 45 мм, которая приклеивается самостоятельно на первую страницу анкеты. Почему-то на на стенде перед входом в консульство размеры фотографии указаны как 35 мм x 40 мм, но фотографию 35 мм х 45 мм приняли без разговоров. Фотография должна быть сделана не позднее, чем за 6 месяцев. Лично я делал в Ярком мире — 120 рублей, если делать за сутки или 250 рублей, если сразу печатать фото.
  4. Страховой полис с минимальным покрытием 30 тыс. евро. На подходе к консульству дежурят зазывалы некоего «Капитал-Полиса», которые предлагают услуги в получении полиса/заполнении анкеты, а еще с саркастической усмешкой желают удачи при отказе от их услуг :). Список аккредитованных компаний довольно широк, можно выбрать ту, где удобнее/дешевле. Я делал полис в РосГосСтрахе — для визы на 4 дня около 220 рублей. (Капитал-Полис просит 250 рублей.) Требование дополнительного срока 15 дней к действию полиса относится не к продолжительности поездки, а просто срок, прибавляемый к сроку действия визы. Например если в анкете вы указали длительность пребывания 10 дней с 1 по 10 января, то виза будет действовать с 1 по 25 января.
  5. Стоимость краткосрочной вьездной (однократной) визы для граждан России — 35 евро. Оплачивать нужно именно в евро (не в рублях).
  6. Подтверждение наличия финансовых средств. На сайте написано, что это требуется только если приглашающая сторона не покрывает расходы, но на автоответчике консульства (812)336 34 53 это было озвучено как необходимый документ без каких-либо оговорок. Проще всего сделать выписку с банковского счета, подтверждающую сумму из расчета 15 евро в день; формально, лучше за 3 месяца, у меня была выписка за последний месяц, придираться не стали.

Все оказалось не так уж и страшно, консульство открывается с 9.30, народу очень мало, охранник требует пройти через металлоискатель и отключить мобильные телефоны. После приема документов выдают талончик на получение загранпаспорта с визой ровно через неделю (хотя на сайте написано, что через 10 дней), выдача с 14.00 до 15.00.

m2html — генерация Matlab документации

Библиотека M2html позволяет сгенерировать html-документацию для Matlab-кода. Думаю, не нужно рассказывать о том, как это может быть полезно при работе с большим проектом или созданием тулбокса.

m2html('mfiles','auditech', 'htmldir','documentation', ...
       'recursive','on', 'global','on', ...
      'template','frame1251', 'index','menu', 'graph','on');

Стоит отметить большую гибкость инструмента, состоящую в использовании шаблонов. Так, например, для использования шаблона frame с русскими комментариями (в кодировке Win-1251) необходимо изменить кодировку во всех TPL-файлу. Лучше всего скопировать в новую папку с шаблоном, например, как у меня с названием frame1251, далее charset=iso-8859-1 меняется на charset=windows-1251.

CLR via C# third Edition


Так и не дождавшись перевода CLR via С#,заказал оригинальное издание на Amazon. На удивление почта России не подвела — при оценке срока доставки 1 сентября, уведомление о посылке я увидел 2 числа. Жалко, что обложка мягкая, но не помню, когда в последний раз видел такую белую бумагу в российских книжках. Книга не зря наделена пятью звездочками рейтинга. Конечно, Рихтер иногда чересчур уходит в особенности реализации платформ, но тем не менее, пожалуй, это единственный способ узнать все подробности внутреннего устройства платформы CLR. Постоянное внимание к вопросам производительности, особенностям реализации той или иной функциональности, конечно, не пригодится при клепании формочек, но дает более глубокое понимание того, зачем вообще нужна эта функциональность, почему она работает именно так, а не иначе. Книга просто обязательна к прочтению любым профессиональным C# программистом.

TimeAdjust — копирование атрибутов времени в Total Commander

Программа TimeAdjust позволяет выполнить операцию, которой нет в функционале Total Commander — копирование только атрибутов времени файлов. Для того, чтобы ей воспользоваться нужно создать кнопку на панели инструментов со следующими настройками :


Command : TimeAdj.exe
Parameters: /LST «%L» «%T»

В качестве пути запуска указано %COMMANDER_PATH% , так как TimeAdjust.exe скопирован в каталог с Total Commander. При нажатии на кнопку будут скопированы атрибуты времени выделенных файлов в активной панели в файлы с такими же именами на другой панели.

Узнать словарный запас английских слов

Сервис TestYourVocab позволяет быстро узнать словарный запаc и таким образом оценить уровень знания английского языка. Все это можно сделать буквально за несколько минут, поставив галочки напротив слов, значение которых известно. Потом система выдает оценку (SMS слать не нужно :)). Алгоритм подбора слов и генерации оценки оставим на совести разработчиков. Лично мне показали результат в 4340 слов, что по их табличке соответствует уровню Intermediate. И это значение значение мне показалось довольно адекватным.