Pull to refresh
245
-16
Aleksandr Dikarev @AlekDikarev

Embedded software developer

Send message

Как издать компьютерную книгу и не сойти с ума

Reading time16 min
Views13K


Каждый год в ноябре я отмечаю своеобразную веху — очередную годовщину с момента выхода моей первой книги о компьютерных технологиях в издательстве «Питер». Эта книга уже давно отпраздновала совершеннолетие — в нынешнем году ей исполнилось 19. С той поры я написал еще 45 книг, а кроме того, поработал редактором компьютерной литературы в издательствах «Символ-Плюс» и «БХВ» (в последнем я тружусь до сих пор), где помог увидеть свет множеству произведений других авторов. Сегодня по просьбе моих друзей из RuVDS я расскажу, как устроена кухня компьютерного издательства изнутри, как написать и издать собственную техническую книгу и сколько на этом можно заработать.
Читать дальше →
Total votes 62: ↑62 and ↓0+62
Comments82

Делаем гидрофон и записываем звук трескающегося льда

Reading time29 min
Views8.7K

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

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

Радиосвязь «Судного дня»

Reading time7 min
Views35K
Картинка Starline, Freepik

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

Попробуем и мы порассуждать на эту тему, предположив, что наступил некий час «Х», после которого вся электроника так или иначе «приказала долго жить». Мы сейчас не будем останавливаться на причинах этого события. Только возьмём за отправную точку, что мы остались без своего любимого интернета, раций и даже без модного LoRa :-)

Ранее мы уже изучали устройство и простые возможности создания собственного «двигателя Судного дня». Теперь же попробуем прикинуть, как нам организовать радиосвязь между разрозненными группами людей, учитывая, что электроники не осталось от слова «совсем» (правда сделаем допущение, что некоторые механические компоненты могут быть найдены на свалках или сняты из мест «остатков цивилизации»).
Читать дальше →
Total votes 81: ↑79 and ↓2+77
Comments99

STM32 BluePill + RNDIS, или делаем из нехитрых приспособлений троллейбус…

Reading time13 min
Views17K

Привет, Хабр. Год назад я круто изменил направление своей деятельности с desktop разработчика на программиста микроконтроллеров. Хочу поговорить о том, как прошел этот год, поделиться своими наблюдениями, рассказать в одном месте о чем никто не рассказывает. А, еще и RNDIS на STM32F103 поднимем.

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

...и знать ничего не хотят
Total votes 45: ↑42 and ↓3+39
Comments40

Мы разработали 44 устройства за 6 лет, продаем их по всему миру, только этого мало

Reading time38 min
Views75K

История эмиграции, блеск и нищета стартапов, техническое порно, непрерывная разработка, гидроакустика, нарциссизм, рефлексия, open-source и много фото.

Это все под катом.

Начать погружение
Total votes 410: ↑409 and ↓1+408
Comments194

Список ноотропов, покупка которых не окажется пустой тратой денег

Reading time5 min
Views297K

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

Читать далее
Total votes 121: ↑85 and ↓36+49
Comments238

Нейтринная обсерватория на дне Байкала

Reading time6 min
Views16K

Нейтрино — это двигающиеся со скоростью света, нейтральные частицы. До недавнего времени считалось, что их масса равна нулю. Экспериментальное исследование этих частиц чрезвычайно затруднено, поскольку нейтрино имеют очень маленькое сечение взаимодействия с веществом. Для них проницаемо практически все, они беспрепятственно преодолевают гигантские расстояния и доставляют на Землю информацию о процессах, происходящих во всех частях Вселенной. Поэтому сегодня нейтрино-объект изучения мощных научных лабораторий во всех странах мира.

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

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

Озеро Байкал в России предоставляет учёным идеальную среду для наблюдения нейтрино, потому что эти частицы излучают видимый свет при прохождении через прозрачную воду. Глубина озера также может защитить детекторы от излучения и помех.
Читать дальше →
Total votes 37: ↑37 and ↓0+37
Comments9

Лайфхак: как спарсить гигабайт double-ов в секунду

Reading time6 min
Views23K


Как в коде на C++ прочитать значение double из строки?

std::stringstream in(mystring);
while(in >> x) {
   sum += x;
}

На Intel Skylake с компилятором GCC 8.3, такой код парсит 50 МБ/с. Жёсткие диски запросто обеспечивают последовательное чтение со скоростью в несколько ГБ/с, так что вне всякого сомнения, нас ограничивает не скорость чтения с диска, а именно скорость парсинга. Как его ускорить?

Первое, что напрашивается – отказаться от удобств, предоставляемых потоками в C++, и вызывать strtod(3) напрямую:

do {
    number = strtod(s, &end);
    if(end == s) break;
    sum += number;
    s = end; 
} while (s < theend);

Скорость вырастает до 90 МБ/с; профайлинг показывает, что при чтении из потока выполняется ~1600 инструкций на каждое читаемое число, при использовании strtod – ~1100 инструкций на число. Стандартные библиотеки Си и C++ можно оправдать требованиями универсальности и переносимости; но если ограничиться парсингом только double и только на x64, то можно написать намного более эффективный код: хватит 280 инструкций на число.
Читать дальше →
Total votes 104: ↑102 and ↓2+100
Comments62

Отладочная плата для Arduino Nano

Reading time4 min
Views13K
На данный момент плата используется как учебная, тестер модулей с интернет- магазинов для различных микроконтроллеров (МК) и для создания законченных конструкций с минимальным изменением топологии печатной платы. В общем достаточно универсальная. Как всегда универсальность- это компромисс, который считаю был достигнут.
Читать дальше →
Total votes 19: ↑16 and ↓3+13
Comments27

НЕрадиоуправляемые модели: вперед к беспроводным подлодкам на пульте

Reading time10 min
Views20K

Приветствую вас, глубокоуважаемые!

Мы тут опять решили проблему, о существовании которой вы скорее всего и не подозревали: сделали хоббийные модули для передачи и приема 4 управляющих команд через воду на дальность (и глубину) до 300 метров. 

Видео испытаний лодки на акустическом управлении и подрыва фейерверка по акустическому сигналу через воду, а также зачем, почему и как - под катом.  

Читать далее
Total votes 60: ↑60 and ↓0+60
Comments82

Куда идут лучи под водой?

Reading time15 min
Views9K

Приветствую вас, глубокоуважаемые!

Представьте, каким был бы наш мир, если бы условия распространения звука в нем были бы несколько иными. Например, иногда ваш крик был бы не слышен на расстоянии десяти метров, но становился бы вполне различим на сотне-другой и, скажем, на паре километров? А иногда, негромкий разговор или даже шепот разносился бы на километры от вас. Уверен, что пословица «слово - не воробей..» - заиграла бы совершенно новыми красками!

Для тех, кто услышал мой «шепот» в современном потоке информации - добро пожаловать под кат, у нас сегодня не только ликбез и культпросвет, но модель с красивыми картинками, исходным кодом на двух языках и онлайн-симулятором, а также видео, где за 15 минут отображаются все научные морские экспедиции с 1961 по 2010 год.

Начать погружение!
Total votes 29: ↑27 and ↓2+25
Comments16

Как глубока Бездна Челленджера: измерение глубины

Reading time7 min
Views30K
«Надо понимать всю глубину наших глубин» (С) ДМБ

Приветствую вас, глубокоуважаемые!


Всегда поражался, что расстояние до Луны измеряется с миллиметровой точностью. Даже при открытии экзопланет методом лучевых скоростей, скорости звезд измеряются с точностью до 0.97 м/с. А вот, например, глубина Бездны Челленджера определена с точностью ± 10 метров.
Почему же с водой все так сложно?

image

С этим вопросом разбираемся под катом. В качестве вишенки на торт: приложение для визуализации движения звука через воду со слоями разной плотности с исходниками на гитхабе и онлайн-калькулятор.
Читать дальше →
Total votes 66: ↑66 and ↓0+66
Comments87

Вы делаете это неправильно: расчет глубины

Reading time5 min
Views13K

Приветствую вас, глубокоуважаемые!


Что если я скажу, что глубина, что бы вы под ней не подразумевали, является одной из самых сложных для точного измерения величин? На какой глубине плывет подводная лодка? Какая глубина марианской впадины? На какой глубине лежит Титаник? Если вам не повезет с параметрами, то на первом километре глубины, вы можете ошибиться примерно на 30-40 метров и на 200-300 метров на 6-ом километре, используя датчик давления. Если вы предпочитаете эхолот, то при неудачном стечении обстоятельств, которые вы не учли, ошибка на первом километре составит метров 100, а на 6-ом — целый километр. Конечно, можно еще использовать длинную веревку… Но там, как известно, свои подводные камни.

Как такое могло случиться и как делать правильно я расскажу под катом. В довесок к статье есть Open-source библиотека на C#/C/Rust/Matlab/Octave/JavaScript и пара онлайн-калькуляторов для демонстрации.



Статья будет полезна разработчикам подводной техники, число которых за последние лет пять выросло в разы.
Читать дальше →
Total votes 49: ↑49 and ↓0+49
Comments52

Кто, как и на чем исследовал мировой океан — разбираем базы NOAA

Reading time16 min
Views4K

Приветствую вас, глубокоуважаемые!


«Выбросило меня тогда из кабины, в тысячный раз подумал он. Ударило обо что-то головой, так я больше и не оправился…» (С) АБС, «Улитка на склоне»
Пока коронaвирус бороздит просторы планеты, предлагаю с одного ракурса взглянуть, как мы (человечество) исследовали мировой океан.

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

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

Кто, как, когда и на чем исследовал мировой океан: список экспедиций с 1772 по 2018 годы с разбивкой по странам, интересные подробности и небольшой статистический анализ — под катом!

image
Читать дальше →
Total votes 20: ↑20 and ↓0+20
Comments4

Через всю географию: навигационные и геодезические задачи на разных языках

Reading time18 min
Views8K

Приветствую вас, глубокоуважаемые!


«… истинное место судна хотя и неизвестно, но оно не случайно, оно есть, но неизвестно в какой точке» Алексишин В. Г. и др. Практическое судовождение, 2006. стр. 71
«С двух краев галактики вышли пешеходы...» (С) Сергей Попов (Астрофизик)
В свете новых тенденций стиля арт-нуво я хотел написать о решении геодезических задач на плоской земле. Но пока еще заявление о том, что форма земли удобно аппроксимируется эллипсоидом не является ересью и крамолой, предлагаю всем интересующимся приобщиться к более консервативным моделям.

  • расстояние между двумя географическими точками
  • определение точки по известной, расстоянию до нее и азимутальному углу
  • определение положения точки по измеренным дальностям до известных точек (TOA, TOF)
  • определение положения точки по измеренным временам прихода сигнала (TDOA)

Все это на C#, Rust и Matlab, на сфере и эллипсоидах, с картинками, графиками, исходным кодом — под катом.

А это, релевантная КДПВ:


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

Мечты о глубоком вакууме (часть 1). Диффузионный паромасляный насос: реанимация и немного теории

Reading time14 min
Views23K
Вместо эпиграфа
И масляный туман над цехом проплывает,
а в камере горит красивая дуга.
Технолог не спешит — технолог понимает,
что плюс один микрон ничё уж не решит.

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


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

Кибератаки на гидроакустические системы: мифы и реальность

Reading time11 min
Views9.1K

Приветствую вас, глубокоуважаемые!


«Если в ответ на запрос свой-чужой ответить неправильно, второй запрос придет уже на 533-ей частоте» (С)

«Все это идет как-то мимо вас. Или сквозь вас. А по мне это идет, как паровой каток. Ни одной целой кости не осталось. » (С) А. и Б. Стругацкие, «Град Обреченный»

Вы когда-нибудь задумывались, как бы выглядел под водой, ну, скажем, бокс или спортивная ходьба?

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

Total votes 42: ↑42 and ↓0+42
Comments56

uMCPIno: Пишем простой протокол с гарантированной доставкой для Arduino

Reading time19 min
Views16K

Приветствую вас, Глубокоуважаемые!


На каком-то этапе жизни, каждому упорному упоротому DIY-щику перестает хватать кантовского Arduino как «вещи-в-себе» they just can't!: поморгать светодиодиком, взять данные с датчиков и передать по проводу на PC конечно весело, но святой Грааль кроется в мобильности, в освобождении от «медных пут», в истинной свободе среди волн вселенского эфира.
Вот здесь нам и открывается суровая реальность неустойчивых каналов связи, ошибок передачи, недоставленных сообщений.
Боже упаси претендовать на оригинальность в этой области: человечество давно использует целый ворох протоколов на все случаи жизни.
Но наша цель — научиться, а так как я ярый сторонник разведки боем, то учиться мы будем, изобретая свой собственный протокольный «велосипед».
Сегодня я предлагаю разработать протокол, который обеспечивает гарантированную доставку, целостность и очередность сообщений между двумя абонентами (соединение точка-точка, Point-to-Point), умеет и применяет алгоритм Нагла и protocol pipelining, чтобы это ни значило. При этом он должен иметь минимальный оверхед и втискиваться даже в тесный Arduino UNO.



Всех заинтересовавшихся прошу на борт, задраиваем люки, открываем кингстоны, заполняем балластные цистерны. Нам предстоит экскурсия в прошлое, destination: year 1974!
Читать дальше →
Total votes 19: ↑17 and ↓2+15
Comments13

Самая полная классификация подводных навигационных систем, что вы можете найти

Reading time21 min
Views8.9K

Приветствую вас, глубокоуважаемые!


«Гидроакустика — продажная девка империализма!» (С)

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

Ну и что же? Длинная, короткая, ультрокороткая? О, нет, все гораздо глубже! Дьявол, как обычно кроется в реализации. Как устроены подводные навигационные системы в реальном мире, почему они устроенны именно так, как работают — сегодня я все это разложу по полочкам.
Со следовыми количествами матана в качестве специй, конечно.

Бонусом идет библиотека с открытым кодом, для решения навигационных задач.

Кто не испугался — добро пожаловать в прохладные декабрьские воды нашего пруда!


Читать дальше →
Total votes 16: ↑15 and ↓1+14
Comments2

Неправильная классификация подводных навигационных систем «на пальцах»

Reading time18 min
Views6.9K

Приветствую вас, глубокоуважаемые!


«Гидроакустик гидрофон пропил» ©

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

Итак, усиливаю как умею.

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

Ахтунг: в статье могут присутствовать следовые количества матана!



Если спокойные воды вашей души всколыхнул этот сигнал, добро пожаловать под кат!
Читать дальше →
Total votes 22: ↑22 and ↓0+22
Comments16
1

Information

Rating
Does not participate
Location
Россия
Date of birth
Registered
Activity

Specialization

Fullstack Developer, Embedded Software Engineer
Lead
English
C
C#