Search
Write a publication
Pull to refresh
186
86.5
Никита Цаплин @ntsaplin

2.3.5 Математическое и программное обеспечение

Send message

Почему я всё ещё люблю C, но при этом терпеть не могу C++?

Reading time10 min
Views54K
Мне на удивление часто приходится говорить о том, почему мне всё ещё нравится язык C, и о том, почему я плохо отношусь к C++. Поэтому я решил, что мне стоит об этом написать, а не снова и снова повторять одно и то же.



Как это обычно бывает у C-программистов, язык C не был ни моим первым языком, ни языком, после которого я уже не изучал ничего другого. Но мне всё ещё нравится этот язык, и когда мне нужно писать программы — я выбираю именно его. Правда, в то же время, я стараюсь быть в курсе того, что происходит в мире современных (и не очень) языков программирования. Я слежу за тенденциями в этой сфере и пишу собственный хобби-проект, связанный с мультимедийными технологиями, на Rust. Почему же я до сих пор не поменял C на что-то более современное? И при чём тут C++?
Читать дальше →

Как попасть в состояние потока?

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

По полочкам:

Практический взгляд на Raspberry Pi Pico с точки зрения STM32

Reading time7 min
Views22K
Сравнительно недавно Raspberry Pi Foundation выпустила плату Raspberry Pi Pico, основанную на микроконтроллере (Micro Controller Unit, MCU) RP2040. Эта плата привлекла большое внимание членов сообщества разработчиков различных электронных устройств. Появилось довольно много проектов, в которых используются программируемые модули ввода-вывода (Programmable I/O, PIO) Raspberry Pi Pico. Например, это проект PicoDVI, в котором конечные автоматы PIO используются для вывода DVI-сигнала.



Но с появлением Raspberry Pi Pico связано не только радостное возбуждение разработчиков электроники. Это событие заставило сообщество задаться важным вопросом о том, окажет ли появление платы какое-то ощутимое влияние на тех, кто пользуется STM32, SAM и другими микроконтроллерами, основанными на Cortex-M. Станет ли микроконтроллер RP2040 жизнеспособным выбором для некоторых из проектов, в которых используются похожие MCU? Учитывая то, что в состав RP2040 входит двухъядерный процессор ARM Cortex-M0+, кажется справедливой идея использования этого микроконтроллера там же, где применяются 32-битные MCU от ведущих производителей компонентов такого рода, в частности, от STMicroelectronics.

Сможет ли небольшой проект Raspberry Pi Foundation показать инженерам STM как надо делать микроконтроллеры, или создателям платы на RP2040 стоит пересмотреть некоторые из своих гипотез? Сложно ли будет портировать на RP2040 низкоуровневый код, рассчитанный на STM32?
Читать дальше →

Из хлама в NAS и немного темы майнинга

Reading time3 min
Views28K

Начну с того, что очень часто, рядом со мной аккумулируется разного рода железо (в простонародье хлам), а так как я по своей природе Плюшкин, в том плане, что я очень редко выкидываю технику, а если и случается предварительно вытаскиваю оттуда всё, что может хоть как-то пригодиться. И что бы ничего не выкидывать, периодически приходится находить применение всему этому железу, об этом сегодня и будет идти речь.

Итак мы имеем: ПК 11 летней давности в состоянии «трэш».
Если подробнее: у блока питания вздуты все конденсаторы на выходе, у жёсткого диска взорванный полимерный конденсатор на входе питания, видеокарта тоже не стартует. По моим догадкам, по 12в линии явно пошло сильно больше 12в. При этом материнка с процессором остались живы. Чудо!
И что можно из этого получить?

Перемешивается ли электролит в аккумуляторе при движении автомобиля?

Reading time8 min
Views32K

Привет, Хабр! Серная кислота почти вдвое тяжелее воды, и её водные растворы, в том числе аккумуляторный электролит, склонны к расслоению: тяжёлая кислота вытесняет лёгкую воду вверх и опускается вниз. Как это влияет на работу аккумуляторной батареи, и насколько эффективно перемешивает электролит тряска при движении транспортного средства? Проведём эксперимент с видео и показаниями приборов.
Перемешивается или нет? Узнай под катом

Разработка REST-серверов на Go. Часть 3: использование веб-фреймворка Gin

Reading time7 min
Views40K
Сегодня, в третьей части серии материалов, посвящённых разработке серверов на Go, мы займёмся реализацией нашего REST-сервера с использованием Gin — одного из самых популярных веб-фреймворков для Go. Вот код, который мы будем тут обсуждать.



Читать дальше →

Неочевидные уязвимости онлайн сервисов. Часть первая

Reading time6 min
Views17K

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

А может быть, вы популярный хостинг? Хотите привлечь пользователей, используя около-тематический трафик — создаете онлайн сервис который смог бы заменить целые серверные утилиты — nslookup, dig, curl?! Звучит неплохо, но всё ли так хорошо с безопасностью пользователей?

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

Запросить 100 серверов нельзя оптимизировать код. Ставим запятую

Reading time7 min
Views6.6K

Можно выделить ряд алгоритмов, которые являются базовыми и лежат в основе практически каждой строчки программ, написанных на языках высокого уровня. Хорошо иметь под руками классический многотомный труд Дональда Кнута "The Art of Computer Programming", там детально разобраны многие базовые алгоритмы. Но прочесть и усвоить все — задача, требующая много усилий и времени, которая должна как-то быть мотивирована.


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


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


Является продолжением серии предыдущих публикаций.

Читать дальше →

Странные управленческие решения внутри хостинга

Reading time9 min
Views35K
Звонит как-то вендор и говорит, что в возврате бракованного железа — не их жёсткий диск.


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

Гарантийный отдел ковыряется с диском, а потом звонят:

— А зачем вы подменили диск?

Мы такие:

— В смысле подменили?

— Мы вам продавали другой. А тут корпус тот, а внутри — другой. Какие-то следы от отвёртки.

Дичь полнейшая! Мы начали было ругаться, но потом стали разбираться. Начали смотреть на камеры и увидели, что наш сотрудник очень подозрительно себя вёл, когда работал с этим диском в стойке. Как в плохих комедиях про жуликов: постоянно осматривался по сторонам, отходил в сторону, возвращался. Оказалось, что он подменил диск. Честно, я не знаю зачем. Его финансовая выгода минимальная, скорее всего, даже не окупает время работы по замене корпуса.

У нас было ещё несколько странных ситуаций, и сейчас я о них расскажу.
Узнать подробности

Вакцины vs антибиотики: почему люди не доверяют вакцинам, но не боятся злоупотреблять антибиотиками

Reading time12 min
Views27K
Реакция мира на новый коронавирус в 2020 году и идущая с разным успехом в разных странах прививочная кампания от него него в 2021, обнажили и обострили множество слабых мест экономики и социальных проблем. Фактически, многие аспекты социального (коллективного) бытия сейчас переживают стресс-тест, подобного которому не было с начавшейся в 1929 году Великой депрессии.

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

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



Однако в коллективном восприятии отпечаталась, почему-то, вывернутая наизнанку картинка: антибиотики среди людей очень, чрезмерно популярны. Врачи в один голос говорят о важности основных прививок и предупреждают об опасностях злоупотребления антибиотиками — однако в народе процветает антиваксерство, а антибиотики в аптеках сметают с полок как витаминки.
Как в массовой культуре перепутались опасности вакцин и антибиотиков

Самодельный миниатюрный лазерный гравер на Arduino Uno

Reading time4 min
Views41K

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

SB181: логический вычислитель на базе АЛУ 74LS181

Reading time4 min
Views4.9K


Уже какое-то время в моей мастерской дожидаются своего проекта пара микросхем АЛУ 74LS181. Но так как мысль о создании на их базе целого процессора была несколько пугающей, я решил задействовать эти чипы в роли «логического вычислителя»: своеобразного 8-битного калькулятора, который получает шестнадцатеричные входные данные и отображает результаты различных логических операций в двоичном и hex-форматах. Будучи собранным исключительно на базе логики микросхем 74-й серии без какого-либо микроконтроллера или ЦПУ, такое устройство оказывается удобным помощником в 8-битном программировании.
Читать дальше →

Психотронная тюрьма риторики: история о том, что мешает нам мыслить здраво

Reading time13 min
Views73K

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

Познакомился я с ними, когда работал академконсультантом в США: помогал получать высшее образование так, чтобы иметь хорошие оценки и не тратить слишком много денег. В колледжах США риторику изучают все гуманитарии на первом курсе, иногда даже технари. И так как всю риторику сводили именно к способам убеждения, мои клиенты из Ближнего Востока и Китая часто этим возмущались. И спрашивали меня, какой скрытый смысл в том, чтобы изучать такие очевидные вещи.

Что же, ответ у меня есть. Я считаю, что этос — это бич мыслящего человека. Кайрос — кандалы, который выковал информационный век. А понимание того, как работает риторика — базовый инструмент критического мышления. Особенно для IT-специалиста.

Я так много рассказывал об этом на кухнях и в чатах, что решил написать статью. А получился лонгрид с научными исследованиями, разбором влияния алгоритмических новостных лент, и безумным комиксом из мемов, который я делал 4 часа в Фигме. Поехали!

UPD Большое спасибо всем тем людям, что помогли мне исправить ошибки и очепятки! Только на Хабре так стремятся помочь, и это неоценимо.
Читать дальше →

Создание часов из обычных микросхем на макетной плате

Reading time4 min
Views19K
В этом материале речь пойдёт о том, как собрать часы из обычных микросхем.

Схема часов (оригинал)
Как собрать часы?

Жадные до свинца: как оружейники изобретают идеальный магазин

Reading time12 min
Views50K
За годы исследований военные инженеры придумали массу странных, вычурных и просто безумных конструкций. Проследим за их работой с 17 века и до наших дней.

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

Ленточная подача патронов на примере старого американского пулемета Browning 1917. Анимация целиком
Would you like to know more?

Реактивный самолёт своими руками: «Два дебила — это сила»

Reading time2 min
Views277K
Настало время турбореактивных аппаратов для всех желающих.



Игорь со своим дружбаном в феврале засели за винишком и задумали построить планер легче 115 кг (чтобы хакнуть Росавиацию). Ставить электромоторы было не круто, поэтому они поставили турбореактивные движки. Потому что могут.


10 ноября 2018 был совершен первый полет на самодельном планере весом до 115 кг с турбореактивным приводом (2х30кг JetCat P-300 Pro). Даже петлю Нестерова выполнили.
«Я думал что будет круто, но я не думал что будет настолько о… енно! Мы сделали это! Два дебила — это сила».
— Игорь, пилот-испытатель
Под катом — экспресс фотоотчет (очень хочется побыстрее поделиться новостью, поэтому не ругайте за видео с мобильника и прочие ляпы).

DISCLAIMER — комментарии сугубо мои, пилоты и техники разговаривали на непонятной суперпрофессиональной белиберде, которую я не разобрал. (Меня уже отругали за «изнасилованные термины» и за «самолёт», который планер.)
Читать дальше →

Дамп прошивки беспроводной Logitech K360 с помощью GreatFET

Reading time6 min
Views9.1K


Недавно чисто ради спортивного интереса я решил хакнуть клавиатуру, и в качестве первой подопытной выбрал самую дешевую беспроводную модель Logitech K360. Она уже несколько устарела, а ее основная микросхема также, как и используемый протокол беспроводной связи, ранее подробно разбирались. Можете посмотреть презентацию Mousejack Марка Ньюлина, почитать работу Трэвиса Гудспида по сниффингу nRF24, а также ознакомиться с упоминаемой в этих материалах разработкой KeyKeriki.

Я же занялся всем этим больше в качестве тренировки нежели нового исследования и никак не знал, что в итоге обнаружу. Тем не менее мне показалось, что подобная затея станет интересным небольшим примером извлечения из встроенной флэш-памяти голой прошивки.
Читать дальше →

Мото AGM аккумулятор: ввод в эксплуатацию

Reading time7 min
Views25K

Привет, Хабр! Сегодня мы введём в эксплуатацию сухозаряженный мотоциклетный AGM аккумулятор. Данное руководство можно использовать и для обычных сухозаряженных кальциевых АКБ с жидким электролитом.

Заодно обсудим, чем отличаются разные типы свинцовых аккумуляторов, и как это сказывается на их применении. Как всегда, будут видео и показания приборов.
Узнать подробности

Разработка REST-серверов на Go. Часть 2: применение маршрутизатора gorilla/mux

Reading time6 min
Views26K
Перед вами второй материал из серии статей, посвящённой разработке REST-серверов на Go. В первом материале этой серии мы создали простой сервер, пользуясь стандартными средствами Go, а после этого отрефакторили код формирования JSON-данных, вынеся его во вспомогательную функцию. Это позволило нам выйти на достаточно компактный код обработчиков маршрутов.


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



Это — проблема, с которой сталкиваются все, кто пишет HTTP-сервера, не используя зависимости. Если только сервер, принимая во внимание систему его маршрутов, не является до крайности минималистичной конструкцией (например — это некоторые специализированные серверы, имеющие лишь один-два маршрута), то оказывается, что размеры и сложность организации кода маршрутизатора — это нечто такое, на что очень быстро обращают внимание опытные программисты.
Читать дальше →

Тест пропускной способности ASP.NET Core 5.0 в Kestrel, IIS, Nginx и Caddy

Reading time4 min
Views12K
Начиная с версии 2.2. ASP.NET Core поддерживает режим внутрипроцессного размещения приложения (InProcess) в IIS, направленный на улучшение производительности кода. Рик Страл написал статью, в которой подробно исследовал эту тему. С тех пор прошло три года, теперь платформа ASP.NET Core добралась до версии 5.0. Как это повлияло на производительность ASP.NET Core-проектов на различных серверах?


Узнать подробности

Information

Rating
52-nd
Location
Москва, Москва и Московская обл., Россия
Works in
Date of birth
Registered
Activity