Pull to refresh
12
0
Крюков В.А. @VAK_53

На пенсии

Send message

Обзор Переходника USB-CAN (SYS TEC USB-CANmodul1)

Level of difficultyEasy
Reading time4 min
Views5K

Как известно, в широкой продаже не существует компьютеров с интерфейсов CAN. Зато во всех настольных компьютерах и LapTop(ах) есть USB. В связи с этим для отладки оборудования с CAN нужны всяческие переходники USB-CAN.

В этом тексте я покажу как можно проверить это изделие.

Читать далее
Total votes 5: ↑3 and ↓2+1
Comments23

Практическое применение преобразования Фурье для анализа сигналов. Введение для начинающих

Reading time9 min
Views280K

1. Преобразование Фурье и спектр сигнала


Во многих случаях задача получения (вычисления) спектра сигнала выглядит следующим образом. Имеется АЦП, который с частотой дискретизации Fd преобразует непрерывный сигнал, поступающий на его вход в течение времени Т, в цифровые отсчеты — N штук. Далее массив отсчетов подается в некую программку, которая выдает N/2 каких-то числовых значений (программист, который утянул из инета написал программку, уверяет, что она делает преобразование Фурье).

Чтобы проверить, правильно ли работает программа, сформируем массив отсчетов как сумму двух синусоид sin(10*2*pi*x)+0,5*sin(5*2*pi*x) и подсунем программке. Программа нарисовала следующее:

image
рис.1 График временной функции сигнала

image
рис.2 График спектра сигнала

На графике спектра имеется две палки (гармоники) 5 Гц с амплитудой 0.5 В и 10 Гц — с амплитудой 1 В, все как в формуле исходного сигнала. Все отлично, программист молодец! Программа работает правильно.

Это значит, что если мы подадим на вход АЦП реальный сигнал из смеси двух синусоид, то мы получим аналогичный спектр, состоящий из двух гармоник.

Итого, наш реальный измеренный сигнал, длительностью 5 сек, оцифрованный АЦП, то есть представленный дискретными отсчетами, имеет дискретный непериодический спектр.
С математической точки зрения — сколько ошибок в этой фразе?

Теперь начальство решило мы решили, что 5 секунд — это слишком долго, давай измерять сигнал за 0.5 сек.
Читать дальше →
Total votes 51: ↑46 and ↓5+41
Comments81

Ловец молний

Reading time6 min
Views134K
image Да, зима — не лучшее время для статьи о молниях. Но время близится! Сезон дождей и гроз всего через каких-то 4-5 месяцев, а работы – хоть отбавляй.

Все видели молнии? Молнии красивые, витые. Вы знаете как они действительно выглядят? Да, их удается сфотографировать, но только с одной стороны, и через раз.

А мы научились ловить каждую молнию, да ещё строить полную 3d модель каждой, даже невидимой в облаках молнии! Более того, через 15 секунд после удара в любой точке над Москвой, её координаты и трёхмерный профиль сразу же обновляется на нашем сайте!
Под катом 6 мБ трафика.
Давайте поподробнее и с начала
Total votes 421: ↑419 and ↓2+417
Comments170

Apache Kafka: основы технологии

Reading time9 min
Views378K

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


Статья подготовлена на основе открытого занятия из видеокурса по Apache Kafka. Авторы — Анатолий Солдатов, Lead Engineer в Авито, и Александр Миронов, Infrastructure Engineer в Stripe. Базовые темы курса доступны на Youtube.

Total votes 29: ↑29 and ↓0+29
Comments10

Почему звук в воде затухает?

Reading time12 min
Views11K

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

Начать погружение
Total votes 64: ↑64 and ↓0+64
Comments32

Циркулярные кривые 2-го порядка

Reading time4 min
Views9.3K
Как известно, кривыми Безье нельзя построить дугу окружности или эллипса. В этой статье рассматриваются кривые, лишённые такого недостатка.


Дальше будут картинки и анимации
Total votes 26: ↑26 and ↓0+26
Comments22

Прорывная концепция ракетного двигателя

Level of difficultyHard
Reading time25 min
Views86K

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

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

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

Читать далее
Total votes 240: ↑233 and ↓7+285
Comments491

Dataflow-архитектуры. Часть 1

Reading time6 min
Views36K

Вторая часть статьи.
Большинство современных вычислительных машин, будь то суперкомпьютер Fujitsu K, обычная персоналка или даже калькулятор, объединяет общий принцип работы, а именно модель вычислений, основанная на потоке управления (Controlflow). Однако, эта модель не является единственно возможной. В некотором роде ее противоположностью является модель вычислений, управляемая потоком данных, или просто Dataflow. О ней я и хочу сейчас рассказать.
Читать дальше →
Total votes 78: ↑77 and ↓1+76
Comments37

Dataflow-архитектуры. Часть 2

Reading time8 min
Views11K

В первой части статьи мы рассмотрели основные отличия архитектуры потока данных (dataflow) от архитектуры потока управления (controlflow), совершили экскурсию в 1970-е, когда появились первые аппаратные dataflow-машины и сравнили статическую и динамическую потоковые модели вычислений. Сегодня я продолжу вас знакомить с dataflow-архитектурами. Добро пожаловать под кат!

Читать дальше →
Total votes 35: ↑33 and ↓2+31
Comments17

Эфиродинамика — современное естественнонаучное мировоззрение

Reading time13 min
Views35K

Русским учёным Владимиром Акимовичем Ацюковским сделано открытие в области физики (правильнее сказать — естествознания), масштаб которого сложно переоценить. Оно повлияет на все сферы человеческой жизни. Данная статья написана по мотивам некоторых книг В.А. Ацюковского [1, 2, 3] и является попыткой изложить суть открытия наиболее кратко и убедительно для неспециалиста.
Читать дальше →
Total votes 35: ↑4 and ↓31-27
Comments198

Как написать свой NIF в Elixir

Reading time4 min
Views6.5K
Совсем недавно я окунулся в мир роботики и решил запрограммировать собственного робота на основе RasPi. Для этого я использовал Elixir, сравнительно новый, к слову сказать, язык программирования, который компилируется в байткод для Erlang VM. У меня сразу же возникла трудность с управлением контактами GPIO. Тогда я нашел библиотеку, которая вроде бы решала все мои проблемы. Однако она была написана как Port, из-за чего каждый вызов ее функций занимал слишком много времени, что влияло на правильность работы моего робота.

Немного подумав, я все-таки решился переписать библиотеку в виде NIF. Так как я не нашел много информации по этому поводу, я решил поделиться своим опытом написания NIF в Elixir с вами. Как пример я буду использовать то, что я создал.
Читать дальше →
Total votes 12: ↑10 and ↓2+8
Comments7

Почему я ставлю на Elixir

Reading time6 min
Views76K
6 лет я создавал приложения на языке Ruby и фреймворке Rails. Я щупал всякие новые языки программирования по мере их выхода, но Elixir – первый из них, который меня действительно увлёк.

В своё время Ruby уделал всех


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

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

image

Ruby прошёл путь от скромного положения невразумительного языка до одного из самых популярных языков, в основном из-за фреймворка Rails и огромного лидерского потенциала таких людей, как DHH, Wycats, Aaron Patterson, Jose Valim и множества других. Но периодически, и тут и там начинают вылезать артефакты, оставшиеся из-за такого скромного старта языка.

Убегающая память


Зед Шо [Zed Shaw] в посте "Rails – это гетто" разглагольствует на тему проблем со сборкой мусора, из-за которых первые приложения на Rails перезапускались каждые 4 минуты.

Один из самых популярных серверов для Rails сегодня – это unicorn. Моё веб-приложение – это приложение для Rails, оно довольно простое, по сравнению с другими приложениями, которые я разрабатывал. Я перенёс его на сервер с 512 Мб памяти, и после нескольких дней работы мой unicorn съел всю доступную память и приложение начало тормозить.

Решение? unicorn-worker-killer. Не слишком отличается от более ранних решений.
Читать дальше →
Total votes 58: ↑38 and ↓20+18
Comments35

Elixir: Как выглядит ООП в функциональном языке?

Reading time6 min
Views22K
В последнее время участились статьи и обсуждения на тему прощания с ООП и поиски смысла, который Алан Кэй изначально вкладывал в это понятие.

Несколько высказываний Кэя для тех, кто пропустил
I made up the term “object-oriented”, and I can tell you I didn't have C++ in mind

OOP to me means only messaging, local retention and protection and hiding of state-process, and extreme late-binding of all things.

I’m sorry that I long ago coined the term “objects” for this topic because it gets many people to focus on the lesser idea. The big idea is “messaging”.

The key in making great and growable systems is much more to design how its modules communicate rather than what their internal properties and behaviors should be.

Late binding allows ideas learned late in project development to be reformulated into the project with exponentially less effort than traditional early binding systems (C, C++, Java, etc.)

I’m not against types, but I don’t know of any type systems that aren’t a complete pain, so I still like dynamic typing.

В связи с этими обсуждениями, часто всплывает мысль о том, что Erlang/Elixir очень хорошо удовлетворяют критериям, которые Кэй предъявлял к понятию «объектно-ориентированный». Но далеко не все знакомы с этими языками, поэтому возникает непонимание как функциональные языки могут быть более объектно-ориентированными, чем популярные C++, Java, C#.

В этой статье я хочу на простом примере с exercism.io показать как выглядит ООП на Elixir.

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

В конце концов, вы должны быть в состоянии:

  • Добавить имя школьника в класс
  • Получить список всех школьников, обучающихся в классе
  • Получить отсортированный список всех учащихся во всех классах. Классы должны быть отсортированы по возрастанию (1, 2, 3 и т.д.), а имена школьников — по алфавиту.

Читать дальше →
Total votes 36: ↑32 and ↓4+28
Comments410

Elixir и Angular 2 безо всяких Hello, world!, или Реализуем работу с древовидным справочником, часть 1

Reading time64 min
Views11K

КПДВ


Функциональный язык программирования Elixir набирает популярность, а один из последних фреймворков для создания одностраничных приложений — Angular 2 — недавно вышел в релиз. Давайте познакомимся с ними в паре статей, создав с нуля полноценный back-end на Elixir и Phoenix Framework, снабжающий данными клиентское приложение-frontend на базе Angular 2.


Hello, world — не наш вариант, поэтому сделанное при необходимости можно будет применить в реальных проектах: весь представленный код выложен под лицензией MIT.


Объем статьи большой огромный! Надеюсь на столь же огромное количество комментариев — любых. Не раз замечал, что из комментариев получаешь не меньше, чем от основной статьи, а иногда и больше.


В первой статье будет несколько вступительных слов и работа над back-end. Поехали!

Читать дальше →
Total votes 23: ↑23 and ↓0+23
Comments10

Простейший JSON RESTful API на Эликсир

Reading time7 min
Views9.4K

Как реализовать на Эликсир JSON API endpoint без каких либо фреймворков?


От переводчика:
В статье приведён пример очень простого веб-приложения, которое можно рассматривать как Hello, World! в создании простейшего API на Эликсире.
Код примера незначительно изменён для того, чтобы соответствовать текущим версиям библиотек.
Полный код примера с изменениями можно увидеть на GitHub.



Проблемы нового языка


Многие разработчики приходят в Эликсир из мира Ruby. Это очень зрелая среда с точки зрения количества доступных библиотек и фреймворков. И такой зрелости мне иногда не хватает в Эликсире. Когда мне нужна сторонняя служба, результат поисков подходящей может быть следующим:

какой же будет результат?
Total votes 18: ↑17 and ↓1+16
Comments0

Phoenix LiveView: когда вам больше не нужен JavaScript*

Reading time4 min
Views14K
* для создания динамической страницы

Не так давно 12.12.2018 был анонсирован выход новой библиотеки для фанатов phoenix framework под названием Phoenix LiveView. Я бы хотел поделиться с вами впечатлениями от ее использования и phoenix в целом, а в следующей статье попробовать написать простую браузерную игру. Часть статьи с личным мнением не является исключительно правдивой, я попробую объяснить преимущества веб-разработки на примере phoenix против php


Читать дальше →
Total votes 19: ↑18 and ↓1+17
Comments21

Phoenix LiveView: когда javascript код доставляет удовольствие*

Reading time2 min
Views4.5K
* благодаря его отсутствию

Продолжение статьи про Phoenix Live View. Сегодня я опишу базовую конфигурацию для комфортной работы с технологией и создам новое приложение.
Читать дальше →
Total votes 7: ↑5 and ↓2+3
Comments4

Хуки времени компиляции в Elixir

Reading time5 min
Views1.4K

Elixir снабжен сложной, очень хорошо продуманной, инфраструктурой макросов. С легкой руки Криса Маккорда, в сообществе существует негласный закон, который неизбежно озвучивается сразу, как только речь заходит о макросах: «Первое правило использования макросов — вы не должны их использовать». Иногда с малозаметной ремаркой, набранной бледно-серым шрифтом четвертого кегля: «только если вам этого не избежать, и вы очень хорошо понимаете, на что идете, и чем рискуете». Это связано с тем, что макросы имеют доступ ко всему AST модуля, в котором они используются, и, вообще говоря, могут до неузнаваемости изменить получившийся код.


Я в принципе согласен, что не следует использовать макросы в процессе ознакомления с языком. Пока вы не можете, будучи разбуженным в три часа ночи с похмелья, ответить на вопрос, выполняется ли этот код на стадии компиляции, или же в рантайме. Elixir — компилируемый язык, и в процессе компиляции происходит выполнение кода «верхнего уровня», полное раскрытие синтаксического дерева до тех пор, пока мы не окажемся в ситуации, когда дальше раскрывать уже нечего, и вот этот результат в конечном итоге и компилируется в BEAM. Когда компилятор встречает вызов макроса в исходном коде, он полностью раскрывает AST для него и впихивает вместо собственно вызова. Понять это невозможно, это можно только запомнить.

Не, попробуем разобраться и понять...
Total votes 9: ↑8 and ↓1+11
Comments2

Что скрывается за постоянной Фейгенбаума

Reading time25 min
Views50K

Некролог: Митчелл Фейгенбаум, (1944‑2019), 4.66920160910299067185320382…


Статья из блога Стивена Вольфрама



Она называется постоянная Фейгенбаума и равняется примерно 4,6692016. И она с завидной периодичностью возникает в определённых видах математических – и физических – систем, способных демонстрировать хаотичное поведение.

Митчелл Фейгенбаум, ушедший от нас 30 июня в возрасте 74 лет, был открывшим её человеком – в 1975 году, и сделал это, занимаясь экспериментальной математикой на карманном калькуляторе.

Это открытие стало определяющим в теории хаоса. Но когда её обнаружили впервые, этот результат был неожиданным, причудливым, не связанным ни с чем из того, что изучалось ранее. Однако некоторым образом тот факт, что её открыл именно Митчелл Фейгенбаум – с которым я был знаком почти 40 лет – кажется подобающим.
Читать дальше →
Total votes 75: ↑72 and ↓3+69
Comments39

Information

Rating
Does not participate
Location
Уфа, Башкортостан(Башкирия), Россия
Registered
Activity