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

C++ разработчик

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

Неожиданные причины торможения программ и систем

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

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

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

Разделы поста чаще всего никак не связаны друг с другом, поэтому можете выбирать самые интересные для вас.
Читать дальше →
Всего голосов 112: ↑111 и ↓1+110
Комментарии88

Как запускается сервер: UEFI

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

Ранее мы уже разбирали последовательность запуска сервера на примере устаревшего Legacy. Настало время познакомиться с UEFI поближе.

Первая версия того, что сейчас известно как Unified Extensive Firmware Interface (UEFI), разрабатывалась в 90-е годы прошлого тысячелетия специально под системы на Intel® Itanium® и называлась Intel Boot Initiative, а позже — EFI.

Желание «обновить» процесс загрузки было ожидаемо. PC-BIOS, именуемый ныне Legacy, предлагает работать в 16-битном real mode, адресует всего 1 МБ оперативной памяти, а загрузчик вместе с таблицей разделов должен размещаться в первых 512 байтах накопителя. Более того, PC-BIOS передает управление первому найденному загрузчику без возможности возврата назад. При этом обработку случаев с несколькими операционными системами возлагают на плечи загрузчика.
Читать дальше →
Всего голосов 57: ↑57 и ↓0+57
Комментарии16

Zip-файлы: история, объяснение и реализация

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


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

В статье очень подробно объясняется, как работают Zip-файлы и схема сжатия: LZ77-сжатие, алгоритм Хаффмана, алгоритм Deflate и прочее. Вы узнаете историю развития технологии и посмотрите довольно эффективные примеры реализации, написанные с нуля на С. Исходный код лежит тут: hwzip-1.0.zip.
Читать дальше →
Всего голосов 176: ↑175 и ↓1+174
Комментарии45

О работе ПК на примере Windows 10 и клавиатуры ч. 1

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

Меня зовут Андрей Артемьев, я работаю в Microsoft над ядром ОС Windows 10, ранее я работал над Windows 10x (WCOS), XBox, Windows Phone и Microsoft Edge. Я хочу популярно в образовательных целях рассказать о том как работает компьютер на примере клавиатурного ввода и Windows 10. Данный цикл статей рассчитан в первую очередь на студентов технических специальностей. Мы рассмотрим какой путь проходит информация о нажатой клавише от клавиатуры до отображения в Notepad.exe. В виду обширности и междисциплинарности темы в статьях могут быть неточности, о которых сообщайте в комментариях. Какая-то информация может быть устаревшей в виду скорости с которой развивается Windows.
Читать дальше →
Всего голосов 85: ↑78 и ↓7+71
Комментарии412

CreateRemoteThread для Linux

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

Мицуха несёт новые потокиВ WinAPI есть функция CreateRemoteThread, позволяющая запустить новый поток в адресном пространстве другого процесса. Её можно использовать для разнообразных DLL-инъекций как с нехорошими целями (читы в играх, кража паролей, и т. д.), так и для того, чтобы на лету исправить баг в работающей программе, или добавить плагины туда, где они не были предусмотрены.


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


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


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

Читать дальше →
Всего голосов 76: ↑75 и ↓1+74
Комментарии27

Привет, люди с аутистическими нарушениями

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


В смысле, привет, Хабр! Если вы можете сказать про себя слово «интроверт» (как и я) то вас, скорее всего, можно заносить в эту категорию. Другое дело, что категория, мягко говоря, размыта. И в неё от души навалено сразу несколько синдромов.

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

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

А теперь давайте разбираться в деталях.
Читать дальше →
Всего голосов 198: ↑182 и ↓16+166
Комментарии425

Доступно о криптографии на эллиптических кривых

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


Тем, кто знаком с криптографией с открытым ключом, наверно известны аббревиатуры ECC, ECDH и ECDSA. Первая — это сокращение от Elliptic Curve Cryptography (криптография на эллиптических кривых), остальные — это названия основанных на ней алгоритмов.

Сегодня криптосистемы на эллиптических кривых используются в TLS, PGP и SSH, важнейших технологиях, на которых базируются современный веб и мир ИТ. Я уже не говорю о Bitcoin и других криптовалютах.

До того, как ECC стала популярной, почти все алгоритмы с открытым ключом основывались на RSA, DSA и DH, альтернативных криптосистемах на основе модулярной арифметики. RSA и компания по-прежнему популярны, и часто используются вместе с ECC. Однако несмотря на то, что магия, лежащая в фундаменте RSA и подобных ей алгоритмов легко объяснима и понятна многим, а грубые реализации пишутся довольно просто, основы ECC всё ещё являются для большинства людей загадкой.

В этой серии статей я познакомлю вас с основами мира криптографии на эллиптических кривых. Моя цель — не создание полного и подробного руководства по ECC (в Интернете полно информации по этой теме), а простой обзор ECC и объяснение того, почему её считают безопасной. Я не буду тратить время на долгие математические доказательства или скучные подробности реализации. Также я представлю полезные примеры с визуальными интерактивными инструментами и скриптами.
Читать дальше →
Всего голосов 127: ↑125 и ↓2+123
Комментарии72

Евангелие от аутиста

Время на прочтение9 мин
Количество просмотров9.6K
Прочитав историю tanenn, решил рассказать и о себе: я аутист. Если быть точнее, то у меня Синдром Аспергера.

Так уж «повезло», что с рождения диагноз поставить мне не могли: тогда распался СССР и нашей семье пришлось бежать.
13 переездов сделали свое: диагностировать было сложно. Однако к 18-летию я решил-таки сходить в военкомат, где был тут же отправлен к психологам, которые и поставили данный диагноз.

Заранее извиняюсь за то, что рассказ может быть несколько странно изложен.
Читать дальше →
Всего голосов 142: ↑125 и ↓17+108
Комментарии188

Патч для гипервизора сознания

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

Недавно в топе Хабра появился пост, заставивший меня вылезти из read-only: «Overclock мозга или внутрення виртуализация сознания».
Вводящее в заблуждение название и не менее спорное содержание. Неприятные ощущения вызывает еще и тот факт, что при всей неточности и искажении фактов автор осмелился прикрепить к нему метку tutorial.

Желающих взглянуть на осознанные сновидения без налета авторской фантазии, прошу под кат.
Читать дальше →
Всего голосов 135: ↑113 и ↓22+91
Комментарии168

Overclock мозга или Внутренняя виртуализация сознания

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


Все помнят этот фильм? Какого черта он делает на Хабре? И вообще что тут делает подобный пост?
Наверное потому, что я считаю главным звеном в IT все таки человека, а точнее его мозги. Я попробую рассказать еще об одной возможности использовать свой мозг чуточку эффективнее. Одна из слабо задокументированных возможностей, которую мы используем каждый день, но не всегда даже об этом вспоминаем. Все описанное проверялось на мне. Если что-то я не пробовал, но рассказать об этом важно буду отмечать особо. Никаких наркотиков, аппаратов и издевательств над собой, только общедоступные легкие методики (короче, лег проспался и вперед, не вставая даже с кровати).
И да… Это до жути реалистично, на столько, что попробовав, вы не сможете не рассказать об этом.

Что бы не было лишних криков в комментах, попрошу всех кто ярых сторонников любой религии и конфессии, а так же убежденных эзотериков сразу поставить минус в карму и не читать дальше. Здесь не будет философии и великих вселенских тайн. А остальных прошу под кат — попробую рассказать о своей практике разгона мозга с помощью встроенных функций.
ночь как полигон для...
Всего голосов 224: ↑172 и ↓52+120
Комментарии292

Тульпа — карманная шизофрения для гиков или реальный воображаемый друг

Время на прочтение9 мин
Количество просмотров1.5M
Скажите, вы бы хотели иметь друга? Любого человека или другое существо, которое будет вашим самым лучшим другом, обладая той внешностью, которая вам нравится, и тем характером который вам необходим, которое не надо будет делить с ее или его друзьями, родителями, собачкой, игрушками или учебой.
А секретаря, который всегда с вами, имеет прямой доступ к вашей памяти, напомнит, подскажет, и подаст нужную идею, напарника для мозгового штурма?
Тогда добро пожаловать под кат.



Тульпа — это стабильная самовнушенная осознанная визуализация, способная к самостоятельным мыслям и действиям, обладающая собственным сознанием. Что характерно, создается она совершенно осознанно, путем целенаправленных действий в течении долгого времени, и позволяет задавать начальный характер и форму по вашему усмотрению.
Это ты сейчас с кем разговаривал? Расшифруй определение.
Всего голосов 161: ↑83 и ↓78+5
Комментарии563

Шизофрения: взгляд изнутри

Время на прочтение8 мин
Количество просмотров204K
Пишу сюда первый раз, и на русском пишу редко, так что если что не так, прошу о понимании.

Тема указанная в заголовке как мне показалось из комментариев к этой статье вызывает определённый интерес, и я решил поделиться своим небольшим опытом в надежде, что он поможет кому-то преодолеть жизненные трудности.
Читать дальше →
Всего голосов 133: ↑129 и ↓4+125
Комментарии497

Шизотипическое расстройство: взгляд изнутри

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


На Хабре уже писали о различных расстройствах, но как-то так получается, что тема шизотипического расстройства остается не раскрытой. Да и в сети сложно найти информацию для широкого круга людей по этой теме. Часто можно встретить много раз скопированные копирайтерами тексты со множеством неточностей и откровенными мифами, а еще чаще — полную противоположность, заумные тексты, написанные врачами для врачей. Так, согласно DSM, шизотипическое расстройство — это демонстрация пациентом первазивной модели социального и межличностного дефицита, отмеченного острым дискомфортом и сниженной способностью к формированию близких отношений, который испытывает когнитивное и перцептивное искажение, а также проявляет эксцентричность в поведении, начинающеюся с ранней юности и представленную в различных контекстах. Если вы ни слова из этого не поняли — добро пожаловать под кат. Сегодня мы посмотрим, как все это выглядит изнутри.

Читать дальше →
Всего голосов 168: ↑165 и ↓3+162
Комментарии282

«Статья про минет»: ученые обработали 109 часов орального секса, чтобы разработать ИИ, который сосет член

Время на прочтение6 мин
Количество просмотров330K
Привет, Хабр! Представляю вашему вниманию перевод статьи Саманты Коул (Samantha Cole) c motherboard.vice.com.

Анонимные специалисты по машинному обучению написали «статью про минет», чтобы сделать эту машинку для отсоса более реалистичной.


Autoblow AI, секс-игрушка для пользователей с пенисом, состоит из резинового рукава и расположенного внутри корпуса электродвигателя, и пытается имитировать оральный секс. Ее кампания на Indiegogo была запущена на прошлой неделе и быстро достигла своей цели в 50 000 $. Ее главное преимущество над предыдущей моделью, Autoblow 2, выпущенной в 2014 — это алгоритм машинного обучения, который «постоянно меняет технику», чтобы удовлетворить пользователя новыми способами.

Вместо повторяющихся, механических движений, этот «режим искусственного интеллекта» обещает воспроизвести сложные и непредсказуемые движения настоящего, человеческого минета. Чтобы сделать это, компания попросила команду из шести человек просмотреть и аннотировать 109 часов порно и наняла специалистов по машинному обучению, чтобы создать модель, обрабатывающую эти данные и транслирующую их в то, что делает игрушка. Вся работа заняла три года.
Читать дальше →
Всего голосов 321: ↑252 и ↓69+183
Комментарии395

(Не только) первокурснику: Вуз.Инструкция 2.0

Время на прочтение15 мин
Количество просмотров20K
Часть 1 >>

Всем привет! Наш предыдущий пост про адаптацию на первом курсе «Первокурснику: Вуз.Инструкция 1.0» вызвал серьёзную ответную реакцию — шутка сказать, 290 комментариев суммарным объемом 153 000 знаков (это около 10 солидных хабропостов). И там же, в глубинах обсуждения пришло понимание, что релизу «Вуз.Инструкция 2.0» быть, т.к. во-первых, многие вопросы остались в стороне, во-вторых, нужен классный опрос, результаты которого будут полезны для всех нас и не только. Мы нашли время для того, чтобы написать вторую часть: о курсовиках, армии, первой работе, втором высшем. И снова призываем вас делиться опытом в комментариях — некоторыми историями можно зачитаться!


Конечно, нет :-) Всяких хватает.
Читать дальше →
Всего голосов 38: ↑36 и ↓2+34
Комментарии58

Первокурснику: Вуз.Инструкция 1.0

Время на прочтение15 мин
Количество просмотров71K
Мне всегда казалось, что нет более уязвимого и потерянного в реальности человека, чем первокурсник в первом своём семестре. Точнее, казалось так не всегда, а начиная со своего первого курса. Потом были сессии, аспирантура, работа преподавателем на несчастном первом курсе и мнение только укреплялось. Представьте себе: человека выдернули из школы и поместили в абсолютно другую среду со странными чертами: группа похожа на класс, те же парты и доска, учебники и злой библиотекарь, те же пары, так похожие на уроки. Но, чёрт возьми, что происходит? Я вам расскажу, что.

То же самое, но про инженеров — ниже. 1:1, пацаны
Читать дальше →
Всего голосов 97: ↑83 и ↓14+69
Комментарии305

Epic fail resistance 1 или Лисец подкрался незаметно. Тестирование анонимности и безопасности + VPN для пользователя

Время на прочтение17 мин
Количество просмотров9.6K
Доброго времени прочтения, уважаемые читатели Хабра.

В продолжение темы Big Data resistance 1. Прочитав комментарии к статье от dartraiden и YourChief, задумался на тему, а впрямь ли все хорошо и достаточно ли тестов анонимности и безопасности на 2ip и Whoer или раз все хорошо, значит что-то не заметил. К тому же, ряд проблем находил по интернету или сталкивался с ними сам в момент написания статьи.

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

Так же, в данной статье, предлагаю рассмотреть простую и бесплатную настройку VPN и защищенного DNS на уровне пользователя.
Читать дальше →
Всего голосов 13: ↑12 и ↓1+11
Комментарии10

Хаброквест в честь 20-летия Mail.Ru Group — 20 задачек

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


Всем привет! Возможно, вы помните квесты-головоломки, которые я делал в 2010-м и 2016-м году. Версию 2016 проходят до сих пор, но настала пора обновить задания. Мы учли пожелания с прошлой игры: теперь призов будет больше, а проходить можно будет в спокойном темпе до конца недели. И новую версию выкатываем в честь дня рождения компании — Mail.Ru Group исполнилось 20 лет!

Как всегда, решать квест-головоломку тут: puzzle.mail.ru.
UPD 22.10.2018 Призеры и ответы
Читать дальше →
Всего голосов 41: ↑39 и ↓2+37
Комментарии166

Неисчислимое: в поисках конечного числа

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


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

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

В XX в. стала отчетливо проступать другая проблема. С бесконечностью мы можем разобраться при помощи одного символа (∞), но что делать с числами, которые меньше бесконечности, но при этом невообразимо огромны?

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

Добро пожаловать в кроличью нору без дна.
Читать дальше →
Всего голосов 48: ↑45 и ↓3+42
Комментарии18

Филиппины: как на малых островах живут люди, которым не особо нужны современные технологии

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


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

На Филиппинах живёт 100 миллионов учтённых человек. Естественный прирост населения за прошлый год — плюс 1 779 566. В России живёт 146 миллионов человек, и естественный прирост за прошлый год — минус 168 тысяч человек.

Иллюстрация из диалога с «переговорщицей» племени одного из островов:
— У меня пять братьев и четыре сестры.
— А во сколько вы женитесь?
— В 18 лет примерно.
— А когда рожаете первого ребёнка?
— Около 14.

Итак, давайте пробежимся по маленьким островам — тем самым, где живёт до тысячи человек. Забегая вперёд, живут они очень счастливо, и я им отчасти завидую.
Читать дальше →
Всего голосов 91: ↑89 и ↓2+87
Комментарии141

Информация

В рейтинге
Не участвует
Зарегистрирована
Активность