• Bash-скрипты: начало

    • Translation
    Bash-скрипты: начало
    Bash-скрипты, часть 2: циклы
    Bash-скрипты, часть 3: параметры и ключи командной строки
    Bash-скрипты, часть 4: ввод и вывод
    Bash-скрипты, часть 5: сигналы, фоновые задачи, управление сценариями
    Bash-скрипты, часть 6: функции и разработка библиотек
    Bash-скрипты, часть 7: sed и обработка текстов
    Bash-скрипты, часть 8: язык обработки данных awk
    Bash-скрипты, часть 9: регулярные выражения
    Bash-скрипты, часть 10: практические примеры
    Bash-скрипты, часть 11: expect и автоматизация интерактивных утилит

    Сегодня поговорим о bash-скриптах. Это — сценарии командной строки, написанные для оболочки bash. Существуют и другие оболочки, например — zsh, tcsh, ksh, но мы сосредоточимся на bash. Этот материал предназначен для всех желающих, единственное условие — умение работать в командной строке Linux.


    Читать дальше →
  • Где покупать радиодетали и компоненты? Часть I: Россия

      Давайте поговорим о покупке электронных компонентов в интернете. Я собрал список интересных отечественных и зарубежных магазинов:

      а) которые заточены под любителей DIY и делают свои собственные крутые продукты: конструкторы, модули, обучающие курсы и т.д.;

      б) для профи, с широкой номенклатурой электронных компонентов.

      Продолжение: Часть II: зарубежные магазины

      Кадр из к/ф «Иван Васильевич меняет профессию»
      Продолжение
    • Простыми словами о преобразовании Фурье

      Я полагаю что все в общих чертах знают о существовании такого замечательного математического инструмента как преобразование Фурье. Однако в ВУЗах его почему-то преподают настолько плохо, что понимают как это преобразование работает и как им правильно следует пользоваться сравнительно немного людей. Между тем математика данного преобразования на удивление красива, проста и изящна. Я предлагаю всем желающим узнать немного больше о преобразовании Фурье и близкой ему теме того как аналоговые сигналы удается эффективно превращать для вычислительной обработки в цифровые.

      image (с) xkcd

      Без использования сложных формул и матлаба я постараюсь ответить на следующие вопросы:
      • FT, DTF, DTFT — в чем отличия и как совершенно разные казалось бы формулы дают столь концептуально похожие результаты?
      • Как правильно интерпретировать результаты быстрого преобразования Фурье (FFT)
      • Что делать если дан сигнал из 179 сэмплов а БПФ требует на вход последовательность по длине равную степени двойки
      • Почему при попытке получить с помощью Фурье спектр синусоиды вместо ожидаемой одиночной “палки” на графике вылезает странная загогулина и что с этим можно сделать
      • Зачем перед АЦП и после ЦАП ставят аналоговые фильтры
      • Можно ли оцифровать АЦП сигнал с частотой выше половины частоты дискретизации (школьный ответ неверен, правильный ответ — можно)
      • Как по цифровой последовательности восстанавливают исходный сигнал


      Я буду исходить из предположения что читатель понимает что такое интеграл, комплексное число (а так же его модуль и аргумент), свертка функций, плюс хотя бы “на пальцах” представляет себе что такое дельта-функция Дирака. Не знаете — не беда, прочитайте вышеприведенные ссылки. Под “произведением функций” в данном тексте я везде буду понимать “поточечное умножение”

      Итак, приступим?
    • Программирование&Музыка: Delay, Distortion и модуляция параметров. Часть 4

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


        В этот раз мы рассмотрим эффекты Distortion — искажение сигнала, знакомое любому электрогитаристу и Delay (оно же эхо).


        Множество различных интересных звучаний можно получить, если менять (модулировать) значения параметров составляющих частей синтезатора (генератора, фильтра, эффектов) во времени. Рассмотрим вариант, как это можно сделать.


        Исходный код написанного мною синтезатора доступен на GitHub'е.



        Скриншот VST плагина GClip


        Читать дальше →
        • +20
        • 8.2k
        • 5
      • У нас длинные руки: 7 зарубежных площадок, на которых можно найти удалённую работу

          Развитие телекоммуникационных технологий — это win-win для работодателей и работников: компании могут находить таланты по всему миру, а люди могут работать откуда угодно, лишь бы был Wi-Fi. И популярность удалённой работы лишь растёт. К примеру, согласно отчёту Gallup, в 2015 году 37% респондентов ответили, что работают удалённо частично или весь рабочий день. Это было на 7 процентных пунктов больше, чем в 2008. И нет причин считать, что эта тенденция сегодня изменилась.

          Чем больше людей обращаются к подработке, фрилансу или удалённой работе на полную ставку, тем чаще возникает вопрос: где именно мне найти работу, которая позволит отказаться от поездок в офис? Предлагаем вашему вниманию семь зарубежных площадок, на которых можно найти удалённую работу.
          Читать дальше →
        • Вы и ваша работа *

          • Translation
          Длинный материал. Время чтения – около 40 минут.

          image

          Доктор Ричард Хэмминг, профессор морской школы Монтерея в штате Калифорния и отставной учёный Bell Labs, прочёл 7 марта 1986 года очень интересную и стимулирующую лекцию «Вы и ваши исследования» переполненной аудитории примерно из 200 сотрудников и гостей Bellcore на семинаре в серии коллоквиумов в Bell Communications Research. Эта лекция описывает наблюдения Хэмминга в части вопроса «Почему так мало учёных делают значительный вклад в науку и так многие оказываются в долгосрочной перспективе забыты?». В течение своей более чем сорокалетней карьеры, тридцать лет которой прошли в Bell Laboratories, он сделал ряд прямых наблюдений, задавал учёным очень острые вопросы о том, что, как, откуда, почему они делали и что они делали, изучал жизни великих учёных и великие достижения, и вёл интроспекцию и изучал теории креативности. Эта лекция о том, что он узнал о свойствах отдельных учёных, их способностях, чертах, привычках работы, мироощущении и философии.
          Читать дальше →
        • Ричард Хэмминг: Глава 26. Эксперты

          • Translation
          «То, что привело вас к успеху, может стать неэффективным в будущем.»

          imageПривет, Хабр. Помните офигенную статью «Вы и ваша работа» (+219, 2244 в закладки, 351k прочтений)?

          Так вот у Хэмминга (да, да, самоконтролирующиеся и самокорректирующиеся коды Хэмминга) есть целая книга, написанная по мотивам его лекций. Давайте ее переведем, ведь мужик дело говорит.

          Это книга не просто про ИТ, это книга про стиль мышления невероятно крутых людей. «Это не просто заряд положительного мышления; в ней описаны условия, которые увеличивают шансы сделать великую работу.»

          Мы уже перевели 8 (из 30) глав.

          Глава 26. Эксперты


          (За перевод спасибо Mitroshin Evgeny, который откликнулся на мой призыв в «предыдущей главе».) Кто хочет помочь с переводом — пишите в личку или на почту magisterludi2016@yandex.ru

          Как было отмечено в пятой главе, количество проблем предстающих перед нами растёт экспоненциально, и в качестве решения, мы справляемся с этим с помощью специализации. Это высказывание с годами становится лишь более правдивым:

          Эксперт — это тот, кто знает всё в чём-то малом, эрудит — это тот кто знает мало, зато обо всём.

          В споре между экспертом и эрудитом эксперт обычно побеждает, просто потому что использует никому не понятные термины и ссылается на свой специфический опыт, который, часто вообще не имеет отношения к предмету спора. Однако, с мнением экспертов нужно считаться. Поскольку эксперты одновременно играют очень важную роль и, иногда, мешают развитию отрасли, их мнение нужно оценивать со всех сторон. Часто эксперт недооценивает поставленную проблему, а эрудиту не справиться с задачей в силу отсутствия глубоких знаний. Тот, кто думает, что он понимает поставленную задачу, а на самом деле нет, является настоящей напастью, по сравнению с тем, кто знает, что ничего не понимает в поставленном вопросе.
          Читать дальше →
        • Современные RAID контроллеры Adaptec от А до Я. Часть 1

            Недавно наткнулся на полезную и очень подробную статью Adaptec, которая описывала ну просто все нюансы работы контроллеров, пугал разве что объем в 60 страниц. Возникло естественное желание сократить и разделить статью на 2 куска:
            • Часть 1. Общие сведения о RAID контроллерах (много теории, азы)
            • Часть 2. Классификация контроллеров Adaptec (здесь всё очень конкретно – серии контроллеров, функции каждой серии, таблицы, картинки)

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

            Собственно, Часть 1.

            image

            Читать дальше →
          • Что читать о нейросетях


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


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


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

              Читать дальше →
            • Bitcoin in a nutshell — Mining

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


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


                mining_meme

                Читать дальше →
              • STM32 + PPP (GSM) + LwIP

                Большинство GSM модулей работают по интерфейсу UART, посредством AT-команд. Но для серьезных проектов, использование AT команд несет определенные трудности:

                • контроль и обработка ошибок
                • результат выполнения команды возвращается с длительной задержкой
                • необходимо разбирать входящие строки налету

                Нужно понимать, что с результатом выполнения команды, в буфер может попасть URC-код от входящего звонка, SMS, принятые данные и пр. Входной буфер с принятыми строками, приходится разбирать опираясь лишь на символы переносов и «эхо» команды, а сами команды зачастую сильно отличаются форматом. По этим причинам, использование AT вносит дополнительную задержку, алгоритмически ее устранить практически невозможно, ведь причина находится в самом модуле и несовершенстве его встроенного ПО

                В этом примере я использовал SIM800C. Посмотрев спецификацию и убедившись в поддержке PPP, стал изучать способы реализации. Для использования PPP, модуль переключается несколькими настроечными командами, после этого режим AT становится недоступным и фактически идет общение с вышкой оператора напрямую, минуя внутренний стек модуля, что позволяет значительно ускорить обмен данными.

                Пример PPP-пакета:


                Читать дальше →
              • Создание аудиоплагинов, часть 1

                • Tutorial
                Все посты серии:
                Часть 1. Введение и настройка
                Часть 2. Изучение кода
                Часть 3. VST и AU
                Часть 4. Цифровой дисторшн
                Часть 5. Пресеты и GUI
                Часть 6. Синтез сигналов
                Часть 7. Получение MIDI сообщений
                Часть 8. Виртуальная клавиатура
                Часть 9. Огибающие
                Часть 10. Доработка GUI
                Часть 11. Фильтр
                Часть 12. Низкочастотный осциллятор
                Часть 13. Редизайн
                Часть 14. Полифония 1
                Часть 15. Полифония 2
                Часть 16. Антиалиасинг



                Этот пост — первый из серии переводов руководства Мартина Финке о написании собственных аудиоплагинов.
                Отличительной особенностью этого материала является отсутствие зависимости от формата плагина и платформы его использования. Внимание сфокусировано на общей структуре аудиоплагина. Затем алгоритмы оборачиваются в слой абстракции для сборки в форматы VST, VST3, AU, RTAS, AAX или в отдельное приложение.
                Сам Мартин больше работает на Маке, но руководство содержит и все необходимые шаги для разработки на Windows.
                Интересно? Тогда под кат!
                • +23
                • 65.4k
                • 5
              • Пишем свой первый Windows-драйвер

                  Итак, после моей предыдущей статьи я понял что тема про программирование драйверов Windows интересна хабровчанам, поэтому продолжу. В этой статье я решил разобрать простую программу-драйвер, которая делает только то, что пишет отладочное сообщение «Hello world!» при старте драйвера и «Goodbye!» при завершении, а также опишу те средства разработки, которые нам понадобятся для того, чтобы собрать и запустить драйвер.

                  Читать дальше
                • Полнофункциональный драйвер SDHC карты памяти для Stm32f4 (часть 1)

                  Для чего эта статья?


                  Все эмбеддеры, рано или поздно, сталкиваются с проблемой нехватки ПЗУ микроконтроллера для своих проектов. Ну банально, Вам нужно разработать систему управления простеньким ЧПУ станком, где управляющая программа хранится на самом девайсе или систему сбора данных, скажем, от датчиков какого-нибудь эксперимента – очевидно, что микроконтроллер изначально не предназначался для хранения таких массивов информации.
                  Читать дальше →
                • Полупроводниковая электроника

                  • Tutorial


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



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





                  Иллюстраций: 34, символов: 51 609.



                  Читать дальше →
                • Создание собственных драйверов под Linux



                    Многие мои друзья и знакомые крутят пальцем у виска или задаются вопросом: не жмёт ли мне череп, когда узнают, что я пишу драйвера под Linux. Слово “драйвер” окутано каким-то почти мистическим смыслом, и постичь Дао его написания способны лишь избранные гуру.
                    К счастью это не так. Не знаю, как обстоят дела с написанием драйверов под другие операционные системы, в т.ч. и наиболее популярные, но под linux, вне зависимости от аппаратной архитектуры драйвера пишутся очень просто. Для написания драйвера необходимы базовые знания языка си, представление о работе ОС линукс (базовые), понимание того, что мы хотим получить, желание чтения документации и исходных кодов, ну и усидчивость. Всё.
                    Вы хотите посмотреть как написать драйвер для своего устройства? Тогда ныряйте под кат!
                    Читать дальше →
                  • Куда деваются программисты после 40



                      — Вам уже 45? Но у нас коллектив очень молодой. Вы уверены, что хотели бы у нас работать?
                      — Да, конечно! Я много наслышан о вашей компании. Это мечта всей моей жизни!
                      — Ну ладно. Вот вам простой вопросик. Что означает буква L в аббревиатуре SOLID?
                      — Liskov Substitution Principle.
                      Читать дальше →
                    • Книга «Экстремальное программирование: разработка через тестирование»

                        image Возвращение знаменитого бестселлера. Изящный, гибкий и понятный код, который легко модифицировать, который корректно работает и который не подкидывает своим создателям неприятных сюрпризов. Неужели подобное возможно? Чтобы достичь цели, попробуйте тестировать программу еще до того, как она написана. Именно такая парадоксальная идея положена в основу методики TDD (Test-Driven-Development — разработка, основанная на тестировании). Бессмыслица? Не спешите делать скороспелые выводы. Рассматривая применение TDD на примере разработки реального программного кода, автор демонстрирует простоту и мощь этой методики. В книге приведены два программных проекта, целиком и полностью реализованных с использованием TDD. За рассмотрением примеров следует обширный каталог приемов работы в стиле TDD, а также паттернов и рефакторингов, имеющих отношение к TDD. Книга будет полезна для любого программиста, желающего повысить производительность своей работы и получить удовольствие от программирования.
                        Читать дальше →
                      • Доработка китайского ST-Link v2: добавляем интерфейс вывода отладочной информации SWO и ногу Reset

                        • Tutorial
                        image Привет, Geektimes!

                        Сегодня хочу рассказать про доработку паяльником китайского ST-Link v2. В него можно допаять вывод SWO для получения отладочной информации и ногу управления Reset’ом для микроконтроллеров STM32 (та нога Reset, что уже есть — для STM8). Возможно для многих это не открытие, но пусть будет информация для начинающих. Кому интересно, прошу под кат.
                        Читать дальше →