Pull to refresh
0
0
Fest @Fest

User

Send message

Анатомия Hello World на языке C

Level of difficultyMedium
Reading time15 min
Views24K

Эта статья посвящена программе Hello World, написанной на C. Это максимальный уровень, на который можно добраться с языком высокого уровня, не беспокоясь при этом о том, что конкретно язык делает в интерпретаторе/компиляторе/JIT перед выполнением программы.

Изначально я хотел написать статью так, чтобы она была понятна любому, умеющему кодить, но теперь думаю, что читателю полезно иметь хотя бы некоторые знания по C или ассемблеру.
Читать дальше →
Total votes 125: ↑125 and ↓0+142
Comments47

Разработка кросплатформенного приложения на Qt с использованием нейросетей, обученных на tensorflow

Level of difficultyHard
Reading time14 min
Views9.7K

Разработка кроссплатформенного приложения на Qt с использованием нейросетей обученных на tensorflow.

Читать далее
Total votes 12: ↑9 and ↓3+14
Comments16

Происхождение и эволюция аллокатора памяти в С

Reading time11 min
Views23K

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

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

Читать далее
Total votes 79: ↑78 and ↓1+102
Comments31

Заблуждения программистов о времени

Reading time12 min
Views73K

Музей-скансен эпохи Средневековья в Дании в режиме обычной работы (слева) ставит целью воссоздать повседневную жизнь города на стыке XIV и XV веков. Для съёмок фильма (справа) он «погрязнел»

Для киносъёмок в музей под открытым небом Middelaldercentret внесли несколько изменений. Вместо аккуратной каменной улицы развели неприятную кашицу из грязи, не самые роскошные стеклянные окна прикрыли досками и развесили везде выцветшее тряпьё. Здания как следует измазали чем-то коричневым, кое-где зачем-то перемешав субстанцию с соломой. В случайное здание воткнули факел, а не попытались изобразить лучину или фонарь.

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

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

Попытки собрать заблуждения про время и часовые пояса на Хабре уже были шесть и десять лет назад. Но без контрпримеров не так интересно.

Заблуждение 1. В сутках 24 часа или 86 400 секунд


Иногда и кое-где стрелки часов переводят, создавая сутки длиной в 23 и 25 часов — всё очевидно. Будет неплохо углубиться в случаи поэкзотичней.
Читать дальше →
Total votes 152: ↑145 and ↓7+177
Comments313

Обновляемые смарт-контракты: Что это такое и как создать свой собственный. Часть 1

Reading time8 min
Views4K

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

Чтобы получить максимальную пользу от этой статьи, вы должны иметь начальные знания о смарт-контрактах на базе Ethereum и EVM. В этой серии статей приводится краткое описание кода, так что опыт программирования не менее трех месяцев будет полезен, как и базовое понимание Solidity и способов его компиляции, что такое смарт-контракты и как они развертываются, а также как использовать такие инструменты, как Metamask и Hardhat.

Читать далее
Total votes 4: ↑2 and ↓20
Comments0

Примеры ошибок, которые может обнаружить PVS-Studio в коде LLVM 15.0

Reading time20 min
Views3.5K

PVS-Studio: потому, что могу
Компиляторы развиваются и выдают всё больше предупреждений. Остаются ли преимущества от использования статических анализаторов кода, таких как PVS-Studio? Да, так как анализаторы тоже развиваются. Перед вами статья о том, как PVS-Studio находит баги даже в компиляторе.

Читать дальше →
Total votes 21: ↑19 and ↓2+23
Comments8

Пособие по программированию модулей ядра Linux. Ч.7

Reading time25 min
Views11K

Заключительная часть последней версии руководства по созданию модулей ядра от 02 июля 2022 года. Здесь мы рассмотрим обработку прерываний, криптографию, стандартизацию интерфейсов с помощью модели устройства, а также разберём принцип работы драйвера виртуального устройства ввода и возможность внесения в модуль некоторой оптимизации. В завершение же я укажу на пару неявных, но важных нюансов, а также дам рекомендации по дальнейшему погружению в тему программирования ядра.
Читать дальше →
Total votes 27: ↑26 and ↓1+40
Comments0

Пособие по программированию модулей ядра Linux. Ч.1

Reading time19 min
Views37K

Перед вами последняя версия пособия по программированию модулей ядра Linux, вышедшего 2 июля 2022 года. Пособие большое, поэтому материал будет разбит на серию статей. В первой части мы разберём, что такое модули ядра, рассмотрим необходимые подготовительные этапы для их создания и в завершении по традиции напишем первый простейший модуль «Hello world», попутно разобрав вопросы лицензирования, передачу аргументов командной строки и прочие нюансы. Это пособие вы можете смело воспроизводить и изменять в соответствии с условиями Open Software License v 3.0.
Читать дальше →
Total votes 43: ↑43 and ↓0+43
Comments4

Влияние дофамина на организм: как работает и как этим управлять

Reading time25 min
Views119K

Ура! Готов магнум опус про дофамин, по мотивам подкаста Лаборатории Губермана! Это было сложно, долго и дорого, но оно того точно стоило!

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

Она является конспектом и осмыслением 39 выпуска подкаста “Лаборатория Губермана” (Controlling Your Dopamine For Motivation, Focus & Satisfaction | Huberman Lab Podcast #39), который ведет Эндрю Губерман, профессор нейробиологии Стэнфордского Университета. 

Подстрочный перевод выпуска (35 страниц).

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

Читать далее
Total votes 71: ↑66 and ↓5+73
Comments28

В Data Science не нужна математика (Почти)

Reading time6 min
Views87K

Привет, чемпион!

Ребята с «вышкой» всё время умничают, что в Data Science нужна «математика», но стоит копнуть глубже, оказывается, что это не математика, а вышмат.

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

Решил накидать чек-лист из простых математических приёмов, без понимания которых — тебе точно будет сложно в DS. Если ты только начинаешь карьеру в DS, то тебе будет особенно полезно. Мощь вышмата не принижаю, но для старта всё сильно проще, чем кажется. Важно прочитать до конца!
Читать дальше →
Total votes 109: ↑102 and ↓7+129
Comments87

Изучаем, как собрать свой двигатель — на случай «Большого ПЭ» и не только

Reading time17 min
Views44K
Картинка Freepik и Flickr

Энергия в современном мире — это всё, и чем дальше, тем больше: экзоскелеты, роботы, разнообразные электрические виды транспортных средств. Всё это базируется на необходимости доступа к соответствующим источникам питания и, в то же время, ограничивается их отсутствием. Однако всё может стать ещё хуже, если традиционные источники питания станут вдруг недоступны, по тем или иным причинам. Либо же, потребуется создать собственный источник питания (например, для электропитания далеко расположенного лесного домика и т.д.). Ещё одним интересным вариантом может быть изготовление альтернативного источника питания для уже существующих устройств, — например, для дронов. Да, в этой статье мы поговорим об устройстве и возможности изготовления собственных двигателей внутреннего сгорания различных типов. Кроме того, для этих целей можно даже применить технологии машинного обучения!

Читать дальше →
Total votes 70: ↑69 and ↓1+98
Comments129

Продление жизни временных значений в С++: рецепты и подводные камни

Reading time19 min
Views17K

Прочитав эту статью вы узнаете:

1. Способы, которыми можно продлить время жизни временного объекта в С++.

2. Рекомендации и подводные камни этого механизма, с которыми может столкнуться С++ программист, и с которыми сталкивался на работе я.

Информация из статьи может быть полезна как новичкам, так и профессионалам.

Если заинтересовало, то самое время налить чая, и погнали разбираться где тут референсы висят.

Чай готов, начинаем погружение
Total votes 33: ↑31 and ↓2+37
Comments11

Динамические структуры в shared-памяти

Reading time5 min
Views5.7K

Приветствую, читатель! Хотелось бы осветить свою небольшую библиотеку для C++, которая призвана помочь Вам создавать динамические структуры в shared-памяти. Далее - под катом.

Читать далее
Total votes 6: ↑2 and ↓4-2
Comments27

Мифы про аутизм и вещи, которые можно сделать вовремя, если знать

Reading time15 min
Views34K


Привет, Хабр! Я врач-невролог, и ко мне часто попадают пациенты с РАС или подозрением на РАС. Поскольку я детский невролог, то занимаюсь детьми и подростками. Пожалуй, из всего спектра моей работы именно аутизм больше всего подвержен разным выдумкам и мифам как среди пациентов, так и среди специалистов. В последние годы появилось немало новых научных исследований с хорошими уровнями достоверности, которые меняют представление о том, что можно сделать, а что — нет. И поэтому давайте разберём основные мифы.

Первое и главное — ранняя диагностика до двух лет позволяет иногда очень сильно скомпенсировать возможные последствия.

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

В общем, давайте я расскажу, с чем часто сталкиваюсь в работе, и попробую объяснить, чем на самом деле можно помочь пациентам с РАС. Ниже будут список мифов и разбор каждого из них.
Читать дальше →
Total votes 66: ↑64 and ↓2+77
Comments66

Базовые концепции аллокаторов

Reading time10 min
Views17K

Находясь в поисках какой-то агрегированной информации о стандартных приёмах, используемых при проектировании кастомных аллокаторов, я обнаружил, что существует достаточное количество статей о том, как аллокаторы работают в C++, каких-то базовых вариантах или наоборот очень специфических версиях, но ничего достаточно общего. Попался только замечательный доклад замечательного Андрея Александреску про неправильную архитектуру std::allocator и собственно базовые концепции построения своего нового самого крутого в мире аллокатора. Эта статья является довольно вольным переводом второй части его выступления с моими небольшими дополнениями. Конечно же, категорически рекомендую посмотреть оригинальный доклад, но, если вы любитель текстовых версий, прошу под кат.

Выделить знания...
Total votes 40: ↑40 and ↓0+40
Comments5

Оптимизация математических вычислений и опция -ffast-math в GCC 11

Reading time9 min
Views8.1K
В этом материале речь пойдёт об оптимизациях, которые включает опция -ffast-math при компиляции кода, написанного на C или C++, с использованием GCC 11 для x86_64 Linux (при применении других языков, операционных систем, процессоров могут использоваться немного другие оптимизации).


Читать дальше →
Total votes 33: ↑32 and ↓1+44
Comments5

Физическая и математическая реальности

Reading time17 min
Views20K

Эта статья является второй частью конспекта книги «Наша математическая вселенная. В поисках фундаментальной природы реальности» (автор Макс Тегмарк).

Идея, что Вселенная в некотором смысле является математической, восходит по меньшей мере к пифагорейцам и породила многовековую дискуссию физиков и философов. Галилей утверждал, что Вселенная – это «величественная книга», написанная на языке математики. Лауреат Нобелевской премии по физике Юджин Вигнер в 60-х годах XX века настаивал, что «невероятная эффективность математики в естественных науках» нуждается в объяснении.

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

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

Туннели I2P: Чесночное шифрование и однонаправленная передача информации

Reading time13 min
Views12K

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

Читать далее
Total votes 13: ↑12 and ↓1+15
Comments7

Квантовая мультивселенная

Reading time23 min
Views31K

Эта статья является первой частью конспекта книги «Наша математическая вселенная. В поисках фундаментальной природы реальности» (автор Макс Тегмарк). Материал статьи посвящен многомировой интерпретации квантовой механики.

Является ли квантовая механика внутренне противоречивой? Действительно ли волновая функция коллапсирует? Если да, то когда? А если нет, то почему мы не видим вещи в двух местах сразу? Откуда появляются случайности и вероятности в квантовой механике?

В 1957 году принстонский аспирант Хью Эверетт предложил поистине радикальный ответ, подразумевающий существование параллельных вселенных. Однако эту идею в основном игнорировали. В чем же идея Эверетта? Это на удивление простое утверждение: Волновая функция не коллапсирует. Никогда. Иными словами, волновая функция, которая полностью описывает нашу Вселенную, всегда изменяется детерминистически, всегда подчиняется уравнению Шредингера, независимо от того, выполняются наблюдения или нет.

Читать далее
Total votes 38: ↑36 and ↓2+46
Comments125

К чёрту всё, сделаю свой сервер

Reading time7 min
Views16K
Обычно всё бывает замечательно и ничто не предвещает беды, пока кто-нибудь не теряет доступ к своим конфиденциальным и/или бизнес-данным, потому что доверил их хранение кому-то другому.

Не нужно быть специалистом по поиску информации, чтобы найти кучу историй о людях, по которым прокатились монструозные корпорации, исповедующие принципы в духе «don’t be evil».

Вот несколько примеров:


Как сохранить контроль над своими данными и инструментами


Для владения своими данными далеко недостаточно иметь резервные копии цифровой информации. Дело ещё и в контроле с конфиденциальностью. Дело в доверии. Не знаю, как вы, а я не особо доверяю многим сервисам в вопросе хранения моих данных (за редкими исключениями).
Читать дальше →
Total votes 12: ↑10 and ↓2+17
Comments43
1
23 ...

Information

Rating
Does not participate
Registered
Activity