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

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

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

Самая опасная функция в мире С/С++

Время на прочтение7 мин
Количество просмотров61K
memset()
Проверяя много лет различные C/C++ проекты, я заявляю: самая неудачная и опасная функция — memset(). При использовании функции memset() допускают наибольшее количество ошибок, в сравнении с использованием других функций. Я понимаю, что мой вывод вряд ли потрясёт основы мироздания или невероятно ценен. Однако я думаю, читателям будет интересно узнать, почему я пришел к такому заключению.

Здравствуйте


Меня зовут Андрей Карпов. Я совмещаю много должностей и занятий. Но основное, что я делаю, это рассказываю программистам о пользе, которую может приносить статический анализ кода. Естественно я делаю это с корыстной целью, пытаясь заинтересовать читателей анализатором PVS-Studio. Впрочем, это не уменьшает интересность и полезность моих статей.

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

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

Например, одним из интересных наблюдений было, что программисты допускают ошибки при Copy-Paste чаще всего в самом конце. На эту тему предлагаю вниманию статью "Эффект последней строки".
Новое наблюдение
Всего голосов 60: ↑52 и ↓8+44
Комментарии86

memset — сторона тьмы

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


После прочтения статьи Самая опасная функция в мире С/С++ я счёл полезным углубиться во зло, таящееся в тёмном погребе memset, и написать дополнение, чтобы шире раскрыть суть проблемы.
Переходим на сторону тьмы
Всего голосов 40: ↑36 и ↓4+32
Комментарии23

Состоялась первая передача информации с помощью телепортации

Уровень сложностиСложный
Время на прочтение6 мин
Количество просмотров141K

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

Читать далее
Всего голосов 62: ↑45 и ↓17+42
Комментарии95

Telegram показывает удаленные сообщения

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

Несколько дней назад я обнаружил, что Telegram приложение на Windows показывает давно удаленные чаты. При том, что их не было видно ни на телефоне, ни в Linux клиенте. Я поделился этим с друзьями, которые увидели то же самое.

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

Я начал исследовать «удаленные чаты» по API, и заметил, что у всех них проставлен флаг «deactivated», и присутствует параметр migrated_to. Документация Telegram API прямо говорит, что эти чаты повысили уровень. Кроме того, история переписки обычно обрывалась добавлением участников или инициализацией видеоконференции.

Читать далее
Всего голосов 73: ↑71 и ↓2+81
Комментарии111

Система распознавания COVID-19 по голосовым признакам

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


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

Традиционные методы диагностики Covid-19, такие как ПЦР-тесты и анализы на антитела, обеспечивают точные результаты, но они требуют времени, ресурсов и инфраструктуры. Голосовая система распознавания, с другой стороны, основывается на анализе изменений в голосе и речи, которые могут быть связаны с присутствием вируса.

Учась в Университете ИТМО, в рамках проекта я создал систему распознавания COVID-19, которая анализирует способности голосовых биометрических признаков в выявлении заболевания. В статье разберу подробнее, какие методы я использовал и, как это вообще работает.
Читать дальше →
Всего голосов 9: ↑7 и ↓2+5
Комментарии10

Как работает ChatGPT: объясняем на простом русском эволюцию языковых моделей с T9 до чуда

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

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

Погнали →
Всего голосов 299: ↑292 и ↓7+343
Комментарии283

Разбираем шаблоны проектирования

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

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

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

Представленный в статье материал предполагает знакомство читателя с основами объектно-ориентированного программирования.

Читать далее
Всего голосов 13: ↑8 и ↓5+4
Комментарии9

Многофункциональное суперприложение как первый кирпичик нового техноуклада

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

Ранее на Хабре была опубликована статья про следующий технологический уклад, ключевыми элементами которого, согласно предлагаемой общей концепции, являются роботизированный рой и интеллектуальное облако. Это грандиозный проект, реализовать который по силам, наверное, только более или менее мощному, независимому государству. Но с чего можно начать? Что станет первым кирпичиком такой сложной программно-аппаратной системы? Представляется, что в качестве первого шага можно разработать универсальное многофункциональное приложение.. можно даже сказать, суперприложение, которое условно назову словом "Кольцо" (далее по тексту — СК). Именно вокруг СК можно будет постепенно выстраивать всю необходимую экосистему.

Подробнее...
Всего голосов 12: ↑7 и ↓5+5
Комментарии7

Буферы, потоки и двоичные данные в Node.js

Время на прочтение8 мин
Количество просмотров28K
Автор статьи о буферах, потоках и двоичных данных в Node.js, перевод которой мы публикуем, говорит, что он понимает ощущения тех начинающих разработчиков, не имеющих специального образования, которым все эти сущности кажутся таинственными и непонятными. По его словам, это может заставить начинающих отложить в долгий ящик попытки разобраться со внутренними механизмами Node, сославшись на то, что всё это предназначено не для них, а лишь для профессионалов высшего класса, да для разработчиков пакетов. Сегодня он собирается исправить ситуацию и помочь всем желающим вникнуть в суть буферов, потоков и двоичных данных в Node.js и научиться со всем этим работать.

image
Читать дальше →
Всего голосов 28: ↑22 и ↓6+16
Комментарии2

Полное практическое руководство по Docker: с нуля до кластера на AWS

Время на прочтение39 мин
Количество просмотров1.7M



Содержание



Вопросы и ответы


Что такое Докер?


Определение Докера в Википедии звучит так:


программное обеспечение для автоматизации развёртывания и управления приложениями в среде виртуализации на уровне операционной системы; позволяет «упаковать» приложение со всем его окружением и зависимостями в контейнер, а также предоставляет среду по управлению контейнерами.



Ого! Как много информации.

Читать дальше →
Всего голосов 125: ↑124 и ↓1+123
Комментарии44

Изучаем Docker, часть 1: основы

Время на прочтение6 мин
Количество просмотров592K
Технологии контейнеризации приложений нашли широкое применение в сферах разработки ПО и анализа данных. Эти технологии помогают сделать приложения более безопасными, облегчают их развёртывание и улучшают возможности по их масштабированию. Рост и развитие технологий контейнеризации можно считать одним из важнейших трендов современности.

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

Часть 1: основы
Часть 2: термины и концепции
Часть 3: файлы Dockerfile
Часть 4: уменьшение размеров образов и ускорение их сборки
Часть 5: команды
Часть 6: работа с данными

image

Если вы пока не знаете о том, что такое Docker, сейчас у вас есть шанс сделать первый шаг к пониманию этой платформы. А именно, освоив этот материал, вы разберётесь с основами Docker и попутно приготовите пиццу.
Читать дальше →
Всего голосов 62: ↑52 и ↓10+42
Комментарии26

Запускаем PostgreSQL в Docker: от простого к сложному

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

О простых и продвинутых способах запуска PostgreSQL в Docker: добавляем healthcheck, ставим на мониторинг, настраиваем параметры.

Читать далее
Всего голосов 34: ↑32 и ↓2+35
Комментарии39

30 сентября: Let's Encrypt и конец срока действия IdenTrust DST Root CA X3

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

30 сентября 2021 14:01:15 GMT оканчивается срок действия корневого сертификата IdenTrust DST Root CA X3.

Это событие достойно вашего внимания по той причине, что после наступления этого момента ряд устаревших систем перестанут доверять сертификатам, выпущенным центром сертификации Let’s Encrypt. С учётом того, что на текущий момент Let's Encrypt предоставляет бесплатные криптографические сертификаты примерно для 250 миллионов доменных имен, а "устаревшие системы" - это порой системы возрастом всего 5-6 лет, вряд ли окончание срока действия сертификата DST Root CA X3 пройдёт для всех гладко и незаметно. В чём причина, кого конкретно это затронет, и что можно сделать?

Читать далее
Всего голосов 82: ↑81 и ↓1+101
Комментарии245

Почему экология не может быть плохой?

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

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

Читать далее
Всего голосов 30: ↑19 и ↓11+18
Комментарии58

Чего мы больше получаем от компьютерных игр: вреда или пользы?

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


Большинство людей, сталкивавшихся с компьютерными играми, имеют об этом времяпрепровождение либо отрицательно, либо положительное мнение. Равнодушных, в общем-то, немного. И вот уже много лет не утихают споры между противниками и сторонниками компьютерных игр, причём аргументы приводятся самые разнообразные. Порой диву даёшься, какие логические цепочки выстраивают. И в основном обе стороны упирают на моменты, связанные с психикой, социумом, личностным развитием. Давайте попробуем разобраться, что думают о видеоиграх психологи.
Читать дальше →
Всего голосов 24: ↑18 и ↓6+12
Комментарии207

Изучаем С используя GDB

Время на прочтение6 мин
Количество просмотров107K
Перевод статьи Аллана О’Доннелла Learning C with GDB.

Исходя из особенностей таких высокоуровневых языков, как Ruby, Scheme или Haskell, изучение C может быть сложной задачей. В придачу к преодолению таких низкоуровневых особенностей C, как ручное управление памятью и указатели, вы еще должны обходиться без REPL. Как только Вы привыкнете к исследовательскому программированию в REPL, иметь дело с циклом написал-скомпилировал-запустил будет для Вас небольшим разочарованием.

Недавно мне пришло в голову, что я мог бы использовать GDB как псевдо-REPL для C. Я поэкспериментировал, используя GDB как инструмент для изучения языка, а не просто для отладки, и оказалось, что это очень весело.
Читать дальше →
Всего голосов 70: ↑66 и ↓4+62
Комментарии30

Разбираемся в С, изучая ассемблер

Время на прочтение11 мин
Количество просмотров91K
Перевод статьи Дэвида Альберта — Understanding C by learning assembly.

В прошлый раз Аллан О’Доннелл рассказывал о том, как изучать С используя GDB. Сегодня же я хочу показать, как использование GDB может помочь в понимании ассемблера.

Уровни абстракции — отличные инструменты для создания вещей, но иногда они могут стать преградой на пути обучения. Цель этого поста — убедить вас, что для твердого понимания C нужно также хорошо понимать ассемблерный код, который генерирует компилятор. Я сделаю это на примере дизассемблирования и разбора простой программы на С с помощью GDB, а затем мы используем GDB и приобретенные знания ассемблера для изучения того, как устроены статические локальные переменные в С.
Читать дальше →
Всего голосов 76: ↑70 и ↓6+64
Комментарии31

Осваиваем новую базу кода: анализируем программу nginx

Время на прочтение10 мин
Количество просмотров11K
В разработке nginxучастия я никогда не принимал, так как мой навык работы в Си находится где-то на уровне 1/10. Однако меня не страшит идея скачать исходный код, разобрать его, скомпилировать и запустить. Цель этой статьи помочь и вам преодолеть собственный страх проделать то же самое.
Читать дальше →
Всего голосов 43: ↑27 и ↓16+28
Комментарии11

Крупные IT-корпорации замораживают некоторые ИИ-проекты по этическим соображениям

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

Уровень развития искусственного интеллекта сейчас достиг таких высот, что руководителям IT-корпораций иногда приходится жать на «красную кнопку». То есть, останавливать реализацию некоторых проектов с применением искусственного интеллекта, чаще всего — по этическим соображениям.

И речь здесь вовсе не о проблемах, красочно показанных Джеймсом Кэмероном в «Терминаторе». Искусственный интеллект неспособен угрожать человечеству хотя бы потому, что это слабая форма ИИ, а не полноценный разум. Все немного проще — мы говорим о синтезе голосов, максимально приближенных к оригиналу, алгоритмам отбора людей, которым стоит (или нет) предоставить кредит и т.п.
Читать дальше →
Всего голосов 8: ↑6 и ↓2+9
Комментарии83

Первый Компьютерный ЕГЭ 2021

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

Всем привет! В этом году я закончил 11 класс и сдавал первый Компьютерный ЕГЭ. Знаю, что довольно поздно пишу статью об этом, но все равно хотелось бы высказать пару мыслей об экзамене и о своем опыте. Хочу рассказать о самом ЕГЭ по информатике, его изменениях, подготовке и о некоторых мелочах.

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

Информация

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