Pull to refresh
62
0

Программист

Send message

По-настоящему яркий, надёжный и безопасный источник света для растений

Reading time15 min
Views33K

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

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

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

Читать далее

Продолжение. Частые ошибки в настройках Nginx, из-за которых веб-сервер становится уязвимым

Reading time8 min
Views18K

Ранее Cloud4Y рассказал про уязвимости веб-серверов Nginx, балансировщиков нагрузки и прокси-серверов. Что-то из этого вы могли знать, а что-то, надеемся, стало полезной информацией.

Но история не закончилась. Многочисленные программы bug bounties позволяют проводить широкомасштабные исследования, благодаря которым удаётся найти реально действующие уязвимости. Проект Gixy помог найти множество неправильных конфигураций промежуточного ПО, но далеко не все. Что ещё удалось обнаружить:

Читать далее

Stm32 + USB на шаблонах C++

Reading time9 min
Views11K

Продвигаясь в изучении программирования микроконтроллеров, я осознал необходимость освоить USB, поскольку это, бесспорно, основной интерфейс НЕ-внутрисхемного подключения устройств. Однако оказалось, что соответствующих материалов в открытом мире немного. Попробуем разобраться?

Попробуем

Делаем вечную лампочку

Reading time3 min
Views303K
На упаковках светодиодных ламп указывают срок службы 30, 40 или 50 тысяч часов, но многие лампочки не живут и года.

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

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

Сделаем худший Vue.js в мире

Reading time5 min
Views17K
Некоторое время назад я опубликовал похожую статью про React, где с помощью пары строк кода мы создали крошечный клон React.js с нуля. Но React — далеко не единственный инструмент в современном фронтенд-мире, Vue.js стремительно набирает популярность. Давайте разберемся, как работает этот фреймворк, и создадим примитивный клон, похожий на Vue.js, в образовательных целях.

Реактивность


Как и React.js, Vue является реактивным, то есть все изменения в состоянии приложения автоматически отражаются в DOM. Но в отличие от React, Vue отслеживает зависимости во время рендеринга и обновляет только связанные части без каких-либо «сравнений».

Ключ к реактивности Vue.js — это метод Object.defineProperty. Он позволяет указывать настраиваемый метод getter / setter для поля объекта и перехватывать каждый доступ к нему:
Читать дальше →

Основы JavaScript: почему вы должны знать, как работает JS-движок

Reading time7 min
Views14K

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

Ниже вы увидите однострочную функцию, которая возвращает свойство lastName переданного аргумента. Просто добавив одно свойство к каждому объекту, мы получим падение производительности более чем на 700%!

Объясню подробнее почему так происходит. Отсутствие статической типизации в JavaScript приводит к такому поведению. Если рассматривать это как преимущество перед другими языками, такими как C# или Java, то в данном случае получается скорее "Faustian bargain" ("Фаустовская сделка". Жертвование духовных ценностей ради материальных выгод; происхождение выражения связано с именем Дж. Фауста).

Читать далее

«Группа смерти» изнутри: люди, которые играют в опасные игры

Reading time40 min
Views143K


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

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

Конструкция космической электроники (ч.1)

Reading time24 min
Views60K


Для типичного геостационарного телекоммуникационного спутника есть своего рода правило 80%. Спутник подразделяют на две большие системы: платформу и полезную нагрузку.

Платформа – это несущие конструкции, электропитание, двигатели, система ориентации и стабилизации и т.д., а полезная нагрузка – это связная аппаратура, которая выполняет целевую функцию. Так вот, масса платформы составляет примерно 70-80% массы космического аппарата (КА), но для стоимости самого КА соотношение обратное, 70-80% цены – это полезная нагрузка. В основном, полезная нагрузка – это электронные приборы, разного рода приемники, передатчики и модемы. Их цена в большой степени складывается из цены радиационно-стойких космических микросхем. Про космические микросхемы уже было несколько интересных статей, а вот про «железо», которое их физически связывает в рабочий прибор, еще вроде нет. Несмотря на то, что стоимость механической конструкции – это единицы процентов в общей стоимости прибора, без ее правильного проектирования невозможно обеспечить адекватную массу и надежность космической электроники. И теперь, если вы прониклись важностью и актуальностью этой темы, добро пожаловать под кат.

Как мы делаем базовые компоненты в Taiga UI более гибкими: концепция контроллеров компонента в Angular

Reading time6 min
Views13K

В процессе эволюции нашей библиотеки компонентов Taiga UI мы стали замечать, что некоторые компоненты посложнее имеют @Input просто для того, чтобы прокинуть его значение в @Input другого нашего базового компонента внутри себя. Иногда встречается такая вложенность даже в три слоя.

Мы справились с помощью хитрых директив, которые назвали контроллерами. Они полностью решили проблему вложенности и сократили вес библиотеки.

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

Посмотреть

Эксперименты с карбидом кремния (SiC): замедление переключения SiC-MOSFET

Reading time6 min
Views15K
На этот раз рассказываю про карбид кремния (SiC) и свои разработки и эксперименты с ним.
Из статьи вы узнаете особенности применения карбид-кремниевых MOSFET-транзисторов и диодов, как выбрать элемент и сравнение с кремниевыми (Si) приборами, и, самое главное результаты моих экспериментов и исследований в замедлении переключения SiC-транзисторов, проведённых на моей недавней разработке – источнике питания для солнечной энергетики.



Под катом немного аналитики и практики в области силовой электроники – добро пожаловать.
Читать дальше →

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

Reading time7 min
Views18K

В предыдущих статьях (раз, два) я описывал устройство качания детской кроватки с маятниковым механизмом. Прошло всего каких-то пять лет – и теперь вашему вниманию хочу представить следующую разработку – устройство качания для кроватки с дугообразным полозом. Ах, да! Предвидя вопросы: «а зачем качать?», «а качать-то, наверное, вредно?», «а вот у меня дети никогда в кроватке не качались – и выросли достойными людьми!», «не нужно приучать детей к качанию, в Спарте таких вообще не любили!» и т.д. – отвечаю: это не предмет рассмотрения данной статьи. Если звезды зажигают – сами понимаете. Всегда качали – это в культуре, причем разных народов. Люльки, колыбели, «бешики» – вот это вот всё. И сейчас тоже – кроватки-качалки, кроватки с маятниковым механизмом. Качали, качают и качать будут. И мы с женой – тоже качали, конечно.

А раз так – будем автоматизировать!

Как мы «вырастили» и победили читеров в своем онлайн-шутере

Reading time8 min
Views45K

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

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

Читать далее

Почему накопители SSD ускоряются после очистки и насколько важен размер кэша — бенчмарки популярных моделей PCIe 4.0

Reading time8 min
Views65K
Почему накопители SSD ускоряются после очистки и насколько важен размер кэша — бенчмарки популярных моделей PCIe 4.0



В прошлом году SSD впервые в истории обогнали HDD по объёму продаж. В отличие от винчестеров, здесь сумасшедший технический прогресс. За несколько лет рынок меняется кардинально: интерфейс NVMe вместо SATA, память SLC→MLC→TLC→QLC…

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

Давайте посмотрим, что произошло на рынке потребительских SSD за последние десять лет. И как выбор конкретных технологий влияет на производительность.
Читать дальше →

Как немного облегчить себе жизнь при проектировании электроники?

Reading time9 min
Views45K

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

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

Итак, поехали!

Учим HostBinding работать с Observable

Reading time6 min
Views10K

Как и многие другие Angular-разработчики, я мирился с одним ограничением. Если мы хотим использовать Observable в шаблоне, мы можем взять знакомый всем async-пайп. Но его нельзя применить к @HostBinding. Давным-давно это было возможно по ошибке, но это быстро исправили. Все потому, что хост байндинг относится к родительскому view и в нем этот пайп может быть не подключен. Это довольно желанная фича. Давайте посмотрим, как мы можем ее реализовать, пока нет официального решения.

Читать далее

Рецепт раствора для омеднения любых поверхностей

Reading time2 min
Views36K

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

Как не оконфузиться при выборе автоматического выключателя

Reading time10 min
Views187K

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

Читать далее

Все, что вы хотели узнать об LDPC кодах, но стеснялись спросить (наверное)

Reading time18 min
Views41K


Предисловие


С кодами малой плотности проверок на чётность, которые дальше мы будем именовать коротко LDPC (Low-density parity-check codes), мне удалось познакомиться более или менее близко, работая над семестровым научным проектом в ТУ Ильменау (магистерская программа CSP). Моему научному руководителю направление было интересно в рамках педагогической деятельности (нужно было пополнить базу примеров, а также посмотреть в сторону недвоичных LDPC), а мне из-за того, что эти коды были плюс-минус на слуху на нашей кафедре. Не все удалось рассмотреть в том году, и поэтому исследование плавно перетекло в мое хобби… Так я набрал некоторое количество материала, которым сегодня и хочу поделиться!


Кому может быть интересна данная статья:


  1. Студентам, которые хотят разобраться с данными кодами (в начале статьи будет много теории, я предупредил).
  2. Преподавателям, которые хотели бы добавить коды LDPC в область своих семинаров.
  3. Всем, кто любит покопаться в различных алгоритмах, а также чего-нибудь помоделировать и посравнивать (в конце будут примеры: как скрипты, так и реализации "из коробки" open-source проекта aff3ct).

В общем, присоединяйтесь!

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

Кодирование Рида-Соломона для чайников

Reading time14 min
Views32K

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

этой статьи

Паспортный контроль, или Как сжать полтора гигабайта до 42 мегабайт

Reading time3 min
Views42K

Однажды, в качестве тестового задания на позицию PHP разработчика была предложена задача реализации сервиса проверки номеров паспортов граждан РФ на предмет нахождения в списке недействительных. Текст задания был лаконичным: «Пользовательская база 10 миллионов, время ответа 1 миллисекунда, аптайм 99%».

Не густо, но попробуем сделать из этого конфетку.

Читать далее

Information

Rating
4,569-th
Date of birth
Registered
Activity