Как стать автором
Обновить
8
0

Пользователь

Отправить сообщение

Как получить температуру в -50°C (и ниже!) на дому или вихревая трубка Ранка-Хилша «под микроскопом»

Время на прочтение13 мин
Количество просмотров69K

А что, если я скажу Вам, что можно «подуть» в Т-образную трубку — и с двух других её концов пойдет воздух «сильно минусовой» и «сильно плюсовой» температуры? Похоже на какой-то бред, не так ли? Тем не менее, такое замечательное устройство вполне себе существует и известно очень давно. Ученые до сих пор расходятся во мнениях относительно того, «как же оно всё-таки работает?!». Предлагаем и Вам ознакомиться с этим любопытным эффектом…
Всего голосов 134: ↑128 и ↓6+165
Комментарии101

HTML трюки

Время на прочтение2 мин
Количество просмотров14K
image

1. Атрибут `loading=lazy`


Совет по производительности. Вы можете использовать атрибут loading = lazy, чтобы отложить загрузку изображения до тех пор, пока пользователь не домотает до них.

<img src='image.jpg' loading='lazy' alt='Alternative Text'>  
Всего голосов 35: ↑26 и ↓9+22
Комментарии16

Базовая структура HTML-документа с объяснением каждой строчки

Время на прочтение9 мин
Количество просмотров114K
<!DOCTYPE html>
<html lang="en" class="no-js">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width">

  <title>Unique page title - My Site</title>

  <script type="module">
    document.documentElement.classList.remove('no-js');
    document.documentElement.classList.add('js');
  </script>

  <link rel="stylesheet" href="/assets/css/styles.css">
  <link rel="stylesheet" href="/assets/css/print.css" media="print">

  <meta name="description" content="Page description">
  <meta property="og:title" content="Unique page title - My Site">
  <meta property="og:description" content="Page description">
  <meta property="og:image" content="https://www.mywebsite.com/image.jpg">
  <meta property="og:image:alt" content="Image description">
  <meta property="og:locale" content="en_GB">
  <meta property="og:type" content="website">
  <meta name="twitter:card" content="summary_large_image">
  <meta property="og:url" content="https://www.mywebsite.com/page">
  <link rel="canonical" href="https://www.mywebsite.com/page">

  <link rel="icon" href="/favicon.ico">
  <link rel="icon" href="/favicon.svg" type="image/svg+xml">
  <link rel="apple-touch-icon" href="/apple-touch-icon.png">
  <link rel="manifest" href="/my.webmanifest">
  <meta name="theme-color" content="#FF00FF">
</head>

<body>
  <!-- Content -->
  <script src="/assets/js/xy-polyfill.js" nomodule></script>
  <script src="/assets/js/script.js" type="module"></script>
</body>
</html>


Под катом — разбор каждой строчки
Читать дальше →
Всего голосов 44: ↑36 и ↓8+34
Комментарии9

Краткий конспект по языку JavaScript

Время на прочтение15 мин
Количество просмотров114K
Я —.NET разработчик. Но в последнее время всё чаще сталкиваюсь с JavaScript. Причём, процентах в 50 случаев я что-то на нём пишу, в остальных 50 — разбираюсь с чужим кодом, да ещё и прошедшим через минификацию, а иногда и обфускацию. В этой статье захотелось поделиться теми моментами, которые мне показались важными для понимания языка и эффективной работы с ним. Тут не будет ничего нового или неизвестного для людей, уже имевших дело с языком, и не будет чего-то такого, чего нельзя найти в других источниках. Для меня статья будет полезна как способ лучше разобраться в предмете, для читателей, я надеюсь, — как повод освежить знания.

Брендан Айк упоминал, что JavaScript был создан за 10 дней. Думаю, идея вынашивалась дольше. Как бы то ни было, язык получился и с тех пор только набирает популярность. Особенно после появления AJAX.

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

JavaScript состоит из трёх обособленных частей:

  • ядро (ECMAScript),
  • объектная модель браузера (Browser Object Model или BOM),
  • объектная модель документа (Document Object Model или DOM).


В статье, в основном, пойдёт речь о ядре. Конечно, в примерах кода будут использоваться элементы DOM и BOM, но заострять на них внимание не буду.
Читать дальше →
Всего голосов 75: ↑65 и ↓10+55
Комментарии20

Создание TreeView и ComboBox в Glade

Время на прочтение3 мин
Количество просмотров2K

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

Читать далее
Рейтинг0
Комментарии0

Вы можете создавать эти элементы, не используя JavaScript

Время на прочтение4 мин
Количество просмотров17K

Мы привыкли создавать некоторые элементы пользовательского интерфейса с помощью JavaScript, например аккордеоны, всплывающие подсказки (тултипы), усечение текста и т. д. Но, поскольку HTML и CSS постоянно получают новые функции, а старые браузеры больше не нужно поддерживать, мы можем использовать намного меньше JavaScript-кода для создания элементов пользовательского интерфейса и больше фокусироваться на логической части (проверки, обработка данных и т. д.). Специально к старту новых потоков по специализации Frontend-разработчик и Веб-разработчик делимся с вами несколькими хитростями.

Читать далее
Всего голосов 20: ↑15 и ↓5+14
Комментарии23

Заметки фитохимика 2021. БОРЩЕВИК

Время на прочтение25 мин
Количество просмотров55K
Когда-то давным-давно, после публикации статьи посвященной лампе Вуда (см. gReebok detected. Сам себе дерматовенеролог), я анонсировал «борьбу с борщевиком». Потом периодически то в телеграм-канале, то в патреоне читатели у меня спрашивали на предмет этого ненароком брошенного «бороться». Вот на улице весна и кое-где «главный ворог православного народа» начал показываться из-под земли. А значит, самое время описать свое видение того, а надо ли бороться вообще и только ли с борщевиком.

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


Памятка по работе с борщевиком
Всего голосов 95: ↑91 и ↓4+118
Комментарии89

SQLite — не игрушка

Время на прочтение7 мин
Количество просмотров82K

Рассказываю, почему SQLite отлично подойдет вам в повседневной работе. И неважно, разработчик вы, аналитик, тестировщик, админ или продакт-менеджер.

Читать далее
Всего голосов 189: ↑187 и ↓2+235
Комментарии89

Самодельный спектрометр с высоким разрешением

Время на прочтение3 мин
Количество просмотров33K

Хорошее разрешение достижимо

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

Читать дальше
Всего голосов 139: ↑139 и ↓0+139
Комментарии73

АЦП преобразования в указанные моменты времени на STM32

Время на прочтение5 мин
Количество просмотров24K

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

Читать далее
Всего голосов 20: ↑19 и ↓1+26
Комментарии14

Vue.js для начинающих, урок 6: привязка классов и стилей

Время на прочтение6 мин
Количество просмотров20K
Сегодня, в шестом уроке курса по Vue, мы поговорим о том, как динамически стилизовать HTML-элементы, привязывая данные к их атрибутам style и привязывая к элементам классы.


Читать дальше →
Всего голосов 19: ↑17 и ↓2+26
Комментарии2

Vue.js для начинающих, урок 7: вычисляемые свойства

Время на прочтение7 мин
Количество просмотров20K
Сегодня, в седьмом уроке курса по Vue, мы поговорим о вычисляемых свойствах. Эти свойства экземпляра Vue не хранят значения, а вычисляют их.


Читать дальше →
Всего голосов 15: ↑13 и ↓2+17
Комментарии3

Vue.js для начинающих, урок 9: пользовательские события

Время на прочтение7 мин
Количество просмотров9K
На предыдущем уроке нашего курса по Vue вы узнали о том, как создавать компоненты, и о том, как передавать данные от родительских сущностей дочерним с использованием механизма входных параметров (props). А что если данные нужно передавать в обратном направлении? Сегодня, в девятом уроке, вы узнаете о том, как наладить двустороннюю связь между компонентами разного уровня.

Читать дальше →
Всего голосов 24: ↑24 и ↓0+24
Комментарии2

Сборка бинарных файлов Android с помощью исходников и Android NDK. Прокачиваем утилиту screencap

Время на прочтение25 мин
Количество просмотров6.7K
Я занимаюсь автоматизацией Android устройств и часто SDK или ОС Android не имеют нужного функционала или его работа выполняется медленно/очень медленно.

Используя возможности Native Development Kit (NDK) мы можем написать функционал, который будет выполняться быстрей, чем тот же функционал на Java. За счет данного кита мы можем добавлять в свое приложение код, написанный на C/C++ или создавать свои бинарные файлы под мобильные Android устройства.

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

Для примера я «прокачаю» screencap, который сможет не только получать скриншот всего экрана или выдавать «сырые данные», но и возвращать цвет пикселя по указанной точки или получать изображение только нужной области. Итак, поехали!
Читать дальше →
Всего голосов 6: ↑5 и ↓1+4
Комментарии7

Трюки с виртуальной памятью

Время на прочтение14 мин
Количество просмотров18K

Я уже довольно давно хотел написать пост о работе с виртуальной памятью. И когда @jimsagevid в ответ на мой твит написал о ней, я понял, что время пришло.

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

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

Читать далее
Всего голосов 34: ↑30 и ↓4+35
Комментарии24

Пишем простой Path Tracer на старом добром GLSL

Время на прочтение18 мин
Количество просмотров18K

На волне ажиотажа вокруг новых карточек от Nvidia с поддержкой RTX, я, сканируя хабр в поисках интересных статей, с удивлением обнаружил, что такая тема, как трассировка путей, здесь практически не освящена. "Так дело не пойдет" - сказал я и решил, что неплохо бы запилить что-нибудь небольшое из этой темы, да и так, чтобы другим полезно было. Тут как кстати API собственного движка нужно было протестировать, поэтому решил - запилю-ка я свой простенький path-tracer прямо во фрагментном шейдере. Что из этого вышло, думаю вы уже догадались по превью к этой статье

Читать далее
Всего голосов 70: ↑70 и ↓0+70
Комментарии10

Управление бесколлекторным двигателем по сигналам обратной ЭДС – понимание процесса

Время на прочтение13 мин
Количество просмотров117K
Когда я начал разрабатывать блок управления бесколлекторным двигателем (мотор-колесом), было много вопросов о том, как сопоставить реальный двигатель с абстрактной схемой из трех обмоток и магнитов, на которой, как правило, все объясняют принцип управления бесколлекторными двигателями.

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

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

Ниже я постараюсь расписать свой путь к пониманию принципа управления бесколлекторным двигателем постоянного тока.


Читать дальше →
Всего голосов 21: ↑20 и ↓1+19
Комментарии18

Mkcert: валидные HTTPS-сертификаты для localhost

Время на прочтение2 мин
Количество просмотров92K

В наше время использование HTTPS становится обязательным для всех сайтов и веб-приложений. Но в процессе разработки возникает проблема корректного тестирования. Естественно, Let’s Encrypt и другие CA не выдают сертификаты для localhost.

Традиционно есть два решения.
Читать дальше →
Всего голосов 65: ↑54 и ↓11+43
Комментарии35

Тестирование приложений в условиях нехватки памяти

Время на прочтение9 мин
Количество просмотров4.8K

Вопрос о том надо ли проверять то, что возвращает malloc является спорным и всегда порождает жаркие дискуссии.


Часть людей считает, что надо пытаться обрабатывать все виды runtime ошибок, в т.ч. и OOM ситуации. Другие считают, что с OOM всё равно мало что можно сделать и лучше дать приложению просто упасть. На стороне второй группы людей ещё и тот факт, что дополнительная логика обработки OOM с трудом поддаётся тестированию. А если код не тестируется, то почти наверняка он не работает.


Я полностью согласен с тем, что не стоит реализовывать логику обработки ошибок которую вы не собираетесь тестировать. Почти наверняка она ничего не улучшит, а может и того хуже — всё испортит.


Вопрос о том надо ли пытаться обрабатывать OOM ситуации в библиотеках/приложениях является противоречивым и мы не будем его здесь касаться. В рамках данной публикации я лишь хочу поделиться опытом того как можно тестировать реализованную логику обработки OOM ситуаций в приложениях написанных на C/C++. Разговор будет идти об операционных системах Linux и macOS. Ввиду ряда причин, Windows будет обойдён стороной.

Читать дальше →
Всего голосов 7: ↑6 и ↓1+7
Комментарии52

Операционные усилители: 10 схем на (почти) все случаи жизни

Время на прочтение15 мин
Количество просмотров495K
Всем привет!

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


Читать дальше →
Всего голосов 102: ↑100 и ↓2+135
Комментарии54

Информация

В рейтинге
4 844-й
Откуда
Йошкар-Ола, Марий Эл, Россия
Зарегистрирован
Активность