Как стать автором
Обновить
3
0
Алексей @leshakk

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

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

Лоботомия – зло, казавшееся благом

Уровень сложности Простой
Время на прочтение 8 мин
Количество просмотров 46K

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

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

Читать далее →
Всего голосов 64: ↑56 и ↓8 +48
Комментарии 114

Работа по ИП или ТК РФ (выбор «IT-шника»)

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


В этой статье хочу провести анализ особенностей работы в качестве ИП, раскрыть некоторые юридические аспекты, провести сравнение ИП и работы в штате, также затронуть финансовую сторону вопроса (куда же без этого). Я надеюсь, что информация, представленная в статье, окажется полезной, особенно тем, кто сейчас также стоит перед подобным нелегким выбором или только начинает задумываться на эту тему.
Читать дальше →
Всего голосов 32: ↑30 и ↓2 +28
Комментарии 202

Что необходимо знать, чтобы написать свою Embedded RTOS (часть 1)

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

Хотел бы написать небольшой цикл статей посвященных тому, как я написал свою RTOS с какими трудностями столкнулся и зачем вообще писать свою RTOS если уже есть FreeRTOS, RTX, embOS и т.д. список достаточно большой.

Начнем с того, что по мере работы я сталкивался с тем, что часть разработчиков (и я в том числе когда-то и сам) относятся к RTOS как к некоторому черному магическому ящику, мол что-то там происходит как-то все это работает и лучше туда не лесть, а то поломается ящик и проекту «ХАНА». И все хорошо пока хорошо, но как только появляются проблемы, то начинаются бессонные ночи с отладчиком, сроки по проекту горят, а самое главное и коварное, что ошибки в RTOS отловить крайне сложно. Зачастую они имеют плавающий характер и такие эффекты как переполнение стека, инверсия приоритетов, взаимные блокировки, и все, что связанное со средствами синхронизации отладить крайне сложно.

Cо всем этим я решил разобраться в корне, и чисто в академичесеких целях начал писать свою RTOS, чтобы так сказать прочувствовать все изнутри.

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

При написании RTOS, я осознанно отказался от поддержки проприетарных архитектур как AVR, PIC и мой выбор пал на семействе CORTEX, поскольку cortex-mX, на сегодня самая распространенная архитектура в Embedded.

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

Самый по-человечески написанный учебник компьютерной архитектуры наконец-то выходит на русском языке и для RISC-V

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

В 2015 году скачивания первого русского издания учебника Харрис & Харрис завалили сайт британской компании Imagination Technologies. Книгу стали использовать в МФТИ, ВШЭ МИЭМ, МГУ, МИЭТ, ИТМО и других вузах. С тех пор вышло еще два издания - для ARM и для MIPS, и вот в январе 2022 года выходит новое - для RISC-V и оно уже доступно для предзаказа.

"Цифровая схемотехника и архитектура компьютера: RISC-V" вероятно станет стандартным учебником в российских вузах, как и источником информации для тех, кто хочет попроектировать процессоры на ПЛИС. Ничего лучшего на рынке нет. Паттерсон-Хеннесси не привязан к курсам по языкам описания аппаратуры и не обсуждает тайминг цифровой логики, а Таненбаум устарел.

Кроме этого, архитектура RISC-V становится билетом в будущее для российских процессорных компаний - Ядро купило Syntacore, Байкал Электроникс инвестировал в CloudBear, Миландр выпустил микроконтроллер с архитектурой RISC-V.

Если же вы не хотите работать в российских компаниях, а хотите пройти интервью на проектировщика чипа в Apple, Intel, NVidia, то и в таком случае учебник Харрисов - это самый эффективный способ начать этот путь.

О Харрисах, содержание и почему RISC-V
Всего голосов 48: ↑42 и ↓6 +36
Комментарии 41

«Леди Колец» и юная «мадонна с младенцем» из Геркуланума. Жертвы Везувия

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

Автор: Лысый Камрад (@LKamrad)

Эта фотография обошла весь мир. Наверное, нет популярного интернет-ресурса, где бы его не опубликовали. Женщина с золотыми кольцами (Леди Колец) - жертва извержения Везувия 79 года нашей эры. Но вглядитесь внимательней в фотографию и вы поймете - здесь явно что-то не так.

Кто-то даже спрашивал меня: "А что мог значить обычай носить два кольца на одном пальце?"

Читать далее
Всего голосов 115: ↑109 и ↓6 +103
Комментарии 30

Кровавый клад универмага Fenwick

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

Автор: Лысый Камрад (@LKamrad)

Бывают клады, впечатляющие нас вовсе не блеском и изобилием золота. Скромные украшения и небольшая сумма денег — все что есть за душой у человека, который прячет их перед надвигающейся неумолимой катастрофой, в тщетной надежде вернуться за ними. И то, что клад дожил до наших дней, означает лишь одно — его хозяева погибли. Если мы знаем, когда и почему это произошло, такие клады становятся для нас возможностью заглянуть в далекое прошлое. История словно оживает, становится осязаемой, такой близкой и понятной. Ведь и тогда жили люди, такие же как и мы c вами, они любили, страдали и умирали, но все-таки надеялись на лучшее, даже когда шансов выжить у них практически не оставалось...

Читать далее
Всего голосов 188: ↑177 и ↓11 +166
Комментарии 59

Лямбды: от C++11 до C++20. Часть 1

Время на прочтение 11 мин
Количество просмотров 67K
Добрый день, друзья. Сегодня мы подготовили для вас перевод первой части статьи «Лямбды: от C++11 до C++20». Публикация данного материала приурочена к запуску курса «Разработчик C++», который стартует уже завтра.

Лямбда-выражения являются одним из наиболее мощных дополнений в C++11 и продолжают развиваться с каждым новым стандартом языка. В этой статье мы пройдемся по их истории и посмотрим на эволюцию этой важной части современного C++.



Вторая часть доступна по ссылке:
Lambdas: From C++11 to C++20, Part 2
Читать дальше →
Всего голосов 28: ↑26 и ↓2 +24
Комментарии 8

eBPF: современные возможности интроспекции в Linux, или Ядро больше не черный ящик

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


У всех есть любимые книжки про магию. У кого-то это Толкин, у кого-то — Пратчетт, у кого-то, как у меня, Макс Фрай. Сегодня я расскажу вам о моей любимой IT-магии — о BPF и современной инфраструктуре вокруг него.

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

В этой статье не будет уникальных открытий. Я просто постараюсь показать, что такое BPF, на что он способен и как может помочь лично вам. Также мы рассмотрим особенности, связанные с Go.

Я бы очень хотел, чтобы после прочтения моей статьи у вас зажглись глаза так, как зажигаются глаза у ребёнка, впервые прочитавшего книгу о Гарри Поттере, чтобы вы пришли домой или на работу и попробовали новую «игрушку» в деле.
Читать дальше →
Всего голосов 82: ↑79 и ↓3 +76
Комментарии 18

Первое впечатление от концептов

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


Решил разобраться с новой возможностью С++20 — концептами.

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

По сути это типизация для аргументов шаблонов.

Основная проблема шаблонов до С++20 — в них можно было подставить все что угодно, в том числе то, на что они совершенно не рассчитаны. То есть система шаблонов была совершенно нетипизирована. В результате, при передаче в шаблон неверного параметра возникали невероятно длинные и совершенно нечитаемые сообщения об ошибках. С этим пытались бороться с помощью разных языковых хаков, которые я даже упоминать не хочу (хотя приходилось сталкиваться).

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

Скажу честно, я немножко в шоке:) С++ и без того сложный язык, но тут хотя бы есть оправдание: так получилось. Метапрограммирование на шаблонах именно открыли, а не заложили при проектировании языка. А дальше, при разработке следующих версий языка, были вынуждены подстраиваться под это «открытие», так как в мире было написано очень много кода. Концепты же — принципиально новая возможность. И, как мне кажется, в их реализации уже присутствует некоторая непрозрачность. Возможно, это следствие необходимости учесть огромный объем унаследованных возможностей? Попробуем разобраться…
Читать дальше →
Всего голосов 50: ↑49 и ↓1 +48
Комментарии 34

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

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

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

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

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

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

UPD Большое спасибо всем тем людям, что помогли мне исправить ошибки и очепятки! Только на Хабре так стремятся помочь, и это неоценимо.
Читать дальше →
Всего голосов 195: ↑182 и ↓13 +169
Комментарии 353

Спецификатор constexpr в C++11 и в C++14

Время на прочтение 16 мин
Количество просмотров 207K
Одна из новых возможностей C++11 — спецификатор constexpr. С помощью него можно создавать переменные, функции и даже объекты, которые будут рассчитаны на этапе компиляции. Это удобно, ведь раньше для таких целей приходилось использовать шаблоны. Но тут все не так просто. У тех, кто не так хорошо знаком с constexpr, может сложиться впечатление, что теперь не будет никаких проблем с расчетами на этапе компиляции. Но на constexpr-выражения наложены серьезные ограничения.

В первой части будет рассказано про constexpr, о том, какие будут изменения в стандарте C++14, а во второй части будет пример использования constexpr: библиотека, которая считает результат математического выражения в строке.
С помощью нее можно будет написать следующий код:
constexpr auto x = "(4^2-9)/8+2/3"_solve;
std::cout << "Answer is " << x;

И ответ в виде дроби будет получен на этапе компиляции:
Answer is 37/24
Сразу предупреждаю, код этой библиотеки сложно понять.
Кому эта тема интересна, добро пожаловать под кат!
Читать дальше →
Всего голосов 53: ↑52 и ↓1 +51
Комментарии 45

Чума

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

Автор: Сергей Ветров

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

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

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

Читать далее
Всего голосов 168: ↑158 и ↓10 +148
Комментарии 81

Пирамидальная сортировка, сортировка слиянием и выпуклая оболочка

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

Куча (heap) — это не что иное, как двоичное дерево с некоторыми дополнительными правилами, которым оно должно следовать: во-первых, оно всегда должно иметь структуру кучи, где все уровни двоичного дерева заполняются слева направо, и, во-вторых, оно должно быть упорядочено в виде max-кучи или min-кучи. В качестве примера я буду использовать min-кучу.

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

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

«Вам здесь больше не рады...» Или что делать, если вы думаете, что работаете здесь, а начальник думает, что уже нет

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

Представьте, что однажды Вы приходите на любимую работу, но начальник встречает Вас нервно, напряжен как струна, и, вызвав Вас к себе, объявляет Вам, что Вы уволены. Вам это объявление портит настроение, опускает самолюбие ниже плинтуса, Вы теряетесь, не знаете, как поступить, что говорить, и о чем начинать беспокоиться в первую очередь - чем оплачивать жилье, квартиру, ипотеку или отдавать долг Сашке и т. п. Попутно Вам начальник/кадровик подсовывает в руки пустой лист бумаги и ручку и говорит написать заявление. Туман в голове, дрожащими руками Вы начинаете выводить на белоснежном листе «генеральному директору ООО «Компания» Иванову И. И., заявление» ниже «прошу уволить меня по собственному желан…» СТОП. Какая-то ерунда получается. Может сказать чудаку начальнику, что у меня желания-то увольняться совсем нет, и зачем тогда писать это заявление, если я уже уволен? Если я уволен – отдайте трудовую книжку, зарплату и отпустите восвояси. Непонятно…

Поделившись своими сомнениями с кадровиком, Вы замечаете, что Инспектор по кадрам багровеет и рассказывает, что Ваши коллеги-соратники уже написали заявление и советует Вам сделать то же самое - это в Ваших же интересах – «иначеуволимпостатьеиотправимсволчьимбилетом».

Вам становится еще страшнее от ее уверенности, но у Вас уже просыпается любопытство, подбадриваемое логикой и верой в справедливость - «За что уволите, я ж ничего не нарушал(а)?». Инспектор, не ожидая такого поворота, багровеет еще больше и выбегает из кабинета. Немного погодя, у Вас уже разговор с начальником отдела кадров и Вашим начальником. Они участливо с Вами беседуют, но припоминают Вам Ваши старые грешки: опоздания, болезни без бюллетеня пусть даже с разрешения начальника (этожепрогул!) и убедительно описывают Вашу низкую квалификацию, не выполнение Вами поручений руководителя, невыполнение плана продаж/обзвонов и т. п. и повторно убеждают Вас, что заявление – лучший вариант. Вы послушно отправляетесь писать заявление на увольнение. Вроде все логично и ситуация знакома многим, но есть три момента, о которых обычно забываем(или не знаем) при оценке того, что Вам говорят. С тех пор, как у нас в стране отменили крепостное право многое изменилось и государство больше защищает работников, чем работодателей и при любых спорах действует презумпция невиновности работника. Именно работодатель обязан оправдываться и доказывать, что он все корректно сделал и оформил. Допустил малейшее нарушение - отмена увольнение и оплата всего времени с момента незаконного увольнения.

Читать далее
Всего голосов 167: ↑161 и ↓6 +155
Комментарии 148

Вакцины COVID, их сравнение и принципы действия

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

Вакцин много, данных о них тоже, а что же лучше для конкретного человека ? Тема на нова, поэтому статья более аналитическая, нежели научно-популярная.

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

Постараюсь ответить на эти вопросы в статье.

Читать далее
Всего голосов 53: ↑42 и ↓11 +31
Комментарии 212

Шпаргалка полезных команд GDB

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

Для кого она нужна?


1) начинающих реверсеров, знающих особенности обратного проектирования, и желающих изучить такой отладчик как GDB


2) как подсказка тем кто постоянно работает с IDA, Ghidra или любым другим мощным и надежным инструментом, но в силу тех или иных обстоятельств решить задачу проще и быстрее с помощью GDB, и не очень хочется залезать в официальную документацию и снова все вспоминать

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

Реверсим и улучшаем SATA контроллер

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

Вы когда-нибудь задумывались, как много вокруг умной электроники? Куда ни глянь, натыкаешься на устройство, в котором есть микроконтроллер с собственной прошивкой. Фотоаппарат, микроволновка, фонарик... Да даже некоторые USB Type C кабели имеют прошивку! И всё это в теории можно перепрограммировать, переделать, доработать. Вот только как это сделать без документации и исходников? Конечно же реверс-инжинирингом! А давайте-ка подробно разберём этот самый процесс реверса, от самой идеи до конечного результата, на каком-нибудь небольшом, но интересном примере!

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

Сравнение структур разделов GPT и MBR

Время на прочтение 11 мин
Количество просмотров 659K
Вы когда-нибудь задумывались о том, как загружается компьютер? Независимо от аппаратуры и операционной системы, все компьютеры при загрузке используют или традиционный метод BIOS-MBR, или более современный UEFI-GPT, реализованный в последних версиях ОС.

В этой статье мы сравним структуры разделов GPT и MBR; GPT означает GUID Partition Table, а MBR — Master Boot Record. Начнём с того, что разберём сам процесс загрузки.

В следующих главах выделяются различия между стилями разделов GPT и MBR, в том числе приводятся инструкции, как осуществить преобразование между двумя стилями, и советы, какой из них выбрать.
Читать дальше →
Всего голосов 26: ↑23 и ↓3 +20
Комментарии 38

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

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


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

В чем же, собственно, задача


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

Для простоты считайте, что трамвайные маршруты в городе пронумерованы без пропусков числами от 1 до N и изначально каждое из этих чисел с равными шансами могло оказаться номером трамвая, который вы бы увидели первым.
Читать дальше →
Всего голосов 42: ↑37 и ↓5 +32
Комментарии 145

Специалисты по информатике хотят загнать в угол гипотезу Коллатца

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

Действенная технология SAT-решателей может сработать с печально известной гипотезой Коллатца. Однако шансы на это не слишком велики.




В последние несколько лет Марийн Хиюл использовал технологию компьютеризированных поисков доказательств под названием «SAT-решатель» (SAT от «satisfiability», то есть, «удовлетворяемость»), чтобы покорить впечатляющий список математических задач. Пифагоровы тройки в 2016 году, число Шура 5 в 2017, а недавно и гипотеза Келлера в седьмом измерении, о чём мы не так давно писали в статье "Компьютерный поиск помог разобраться с 90-летней математической задачей".

Однако теперь Хиюл, специалист по информатике из университета Карнеги-Меллона нацелился на ещё более амбициозную цель: гипотеза Коллатца, которую многие считают наиболее сложной из открытых задач в математике (и при этом, возможно, наиболее простой по формулировке). Другие математики, узнавая от меня о том, что Хиюл делает такую попытку, относились к этому с недоверием.
Читать дальше →
Всего голосов 16: ↑14 и ↓2 +12
Комментарии 11

Информация

В рейтинге
Не участвует
Откуда
Москва, Москва и Московская обл., Россия
Дата рождения
Зарегистрирован
Активность