Pull to refresh
2
Karma
0
Rating
Денис Сотников @Ravager

User

Современный C++ нас не спасет

Programming *C++ *Industrial Programming *
Translation

Я часто критикую небезопасные при работе с памятью языки, в основном C и C++, и то, как они провоцируют необычайное количество уязвимостей безопасности. Моё резюме, основанное на изучении доказательств из многочисленных крупных программных проектов на С и С++, заключается в том, что нам необходимо мигрировать нашу индустрию на безопасные для памяти языки по умолчанию (такие как Rust и Swift). Один из ответов, который я часто получаю, заключается в том, что проблема не в самих С и С++, разработчики просто неправильно их готовят. В частности, я часто получаю в защиту C++ ответ типа: "C++ безопасен, если вы не используете унаследованную от C функциональность" [1] или аналогичный, что если вы используете типы и идиомы современного C++, то вы будете застрахованы от уязвимостей типа повреждения памяти, которые терзают другие проекты.

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

Читать далее
Total votes 52: ↑32 and ↓20 +12
Views 20K
Comments 313

Пишем свой язык программирования, часть 1: пишем языковую ВМ

High performance *Open source *Virtualization *Software Brain
Tutorial

Введение


Доброго времени суток всем хабрачитателям!

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

Я буду описывать создание языка, который описал ранее тут.

Он заинтересовал многих и вызвал бурную дискуссию в комментариях. Следовательно — тема интересна многим.

Думаю, что сразу стоит выложить информацию о проекте:

Сайт (будет заполнен документацией чуть позже).
Репозиторий

Чтобы самому потрогать проект и увидеть все в действии, лучше скачать репозиторий и запускать все из папки bin. В релиз я не спешу выкладывать последние версии языка и среды выполнения, т.к. мне порой бывает просто лень это делать.

Кодить я умею на C/C++ и на Object Pascal. Проект я писал на FPC, т.к. на мой взгляд этот язык гораздо проще и лучше подходит для написание подобного. Вторым определяющим фактором стало то, что FPC поддерживает огромное количество целевых платформ и пересобрать проект под нужную платформу можно с минимумом переделок. Если вы по непонятным мне причинам не любите Object Pascal, то не спешите закрывать пост и бежать кидаться камнями в комментарии. Этот язык весьма красив и нагляден, а кода я буду приводить не так уж и много. Только то, что нужно.

Итак, начну пожалуй я своё повествование.
Читать дальше →
Total votes 34: ↑27 and ↓7 +20
Views 28K
Comments 26

Поисковые подсказки изнутри

VK corporate blog High performance *C++ *Algorithms *


Ночная зала. Тысячи таинственных ликов в темноте, подсвеченных голубоватым свечением мониторов. Оглушительный треск миллиона клавиш. Подобные выстрелам автомата удары по клавишам «Enter». Зловещее стрекотание сотен тысяч мышек… Так, наверняка, играло воображение каждого разработчика высоконагруженной системы. И если его вовремя не остановить, то может выйти целый триллер или фильм ужасов. Но в данной статье мы будем гораздо ближе к земле. Мы кратко рассмотрим известные подходы к решению задачи поисковых подсказок, как мы научились делать их полнотекстовыми, а также расскажем о парочке уловок, на которые мы пошли, чтобы придать им скорости, но при этом не научить жадности к ресурсам. В конце статьи вас ждёт бонус — небольшой рабочий пример.
Читать дальше →
Total votes 64: ↑60 and ↓4 +56
Views 25K
Comments 14

1967 года рождения и моложе

Finance in IT
Прочитав этот и этот топики на печальную пенсионную тему я решил поделиться внутренними наработками нашей кадровой службы для наших сотрудников. Дальше много несмешного текста без картинок.
Читать дальше →
Total votes 98: ↑87 and ↓11 +76
Views 219K
Comments 116

Логика мышления. Часть 6. Система проекций

Robotics Biotechnologies Artificial Intelligence Brain


Для тех, кто только присоединился, я советую начать с первой части или хотя бы с описания используемой нами волновой модели коры. Суть волновой модели в том, что информация кодируется одновременно двумя способами. Первый способ – это паттерны вызванной активности, соответствующие обнаруженным нейронами-детекторами явлениям. Второй – волны идентификаторы, распространяющиеся от паттернов вызванной активности и несущие уникальные узоры. Уникальность узора каждой из волн позволяет на удалении от источника сигнала узнать о его активности. При таком подходе хорошо объясняется сформулированное Мак-Каллоком и Питсом несоответствие между объемом зон коры и количеством волокон в пучках, проецирующих информацию от них на другие зоны.
Читать дальше →
Total votes 53: ↑45 and ↓8 +37
Views 61K
Comments 21

Логика мышления. Часть 12. Следы памяти

Robotics Biotechnologies Artificial Intelligence


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

Энграммой называют те изменения, что происходят с мозгом в момент запоминания. Другими словами, энграмма – это след памяти. Вполне естественно, что понимание природы энграмм воспринимается всеми исследователями как ключевая задача в изучении природы мышления.

В чем сложность этой задачи? Если взять обычную книгу или внешний компьютерный накопитель, то и то и другое можно назвать памятью. И то и другое хранит информацию. Но мало хранить. Чтобы информация стала полезной, надо уметь ее считывать и знать, как ей оперировать. И тут оказывается, что сама форма хранения информации тесно связана с принципами ее обработки. Одно во многом определяет другое.
Читать дальше →
Total votes 49: ↑42 and ↓7 +35
Views 46K
Comments 26

Структура белка: введение для айтишников

Biotechnologies
Sandbox
Приятно видеть, что хабравчане регулярно интересуется другими предметными областями – например, биологией (более конкретно – структурой и функцией биологических макромолекул). Однако некоторые посты (например, этот), вызывают у специалиста просто физическую боль из-за обилия совершенно диких фактологических ошибок. В этом посте мне хочется рассказать о структуре и функции белка. О том, что мы знаем и о том, чего не знаем, а так же об имеющихся в этой области вычислительных задачах, требующих решения и интересных IT-специалистам. Постараюсь рассказывать сжато и тезисно, чтобы информации было больше, а воды – меньше. Всех, интересующихся структурой белков, прошу под кат, там очень много букв.
Читать дальше →
Total votes 146: ↑145 and ↓1 +144
Views 152K
Comments 72

Разработчики компании Festo создали робота-стрекозу (видео)

Robotics


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

Читать дальше →
Total votes 55: ↑50 and ↓5 +45
Views 83K
Comments 80

Красивая консоль для работы с git под Windows

Lumber room
Tutorial
Sandbox
Возможно кого-то, также как и меня, некоторые обстоятельства принуждают использовать Windows. И, возможно, также хочется несмотря на это видеть красивую, изящную консоль, например как в Ubuntu. Правда, на скорости работы, к сожалению, это не отобразится.

В итоге терминал для git у нас будет выглядеть примерно вот так:


Читать дальше →
Total votes 58: ↑51 and ↓7 +44
Views 11K
Comments 36

Термоядерная энергетика: надежда человечества?

Energy and batteries
В детстве я любил читать журнал «Наука и Жизнь», в деревне лежала подшивка начиная с 60-х годов. Там часто рассказывали про термоядерный синтез в радостном ключе — вот уже почти, и оно будет! Многие страны, чтобы успеть на раздачу бесплатной энергии строили у себя Токамаки (и настроили их суммарно 300 штук по всему миру).

Годы шли… Сейчас 2013-й год, а человечество до сих пор получает бОльшую часть энергии от сжигания угля, как в 19-м веке. Почему так получилось, что мешает создать термоядерный реактор, и чего нам ждать в будущем — под катом.
Читать дальше →
Total votes 277: ↑273 and ↓4 +269
Views 324K
Comments 317

Доставка из США за 5-10 дней по цене USPS

E-commerce management *
До наступления 2013 года оставалось 30 дней, когда я решил подарить жене ipad mini. Официальный store.apple.com не справлялся со спросом на mini, о чем красноречиво свидетельствовала надпись est shipping in 2 weeks.

Отказываться от mini в качестве подарка не было никакого желания, поэтому был штурмом взят ebay, цены на котором заметно подросли, и 16gb+cellurar модель ушла за $500.

До наступления 2013 года оставалось 15 дней, у меня был выигранный лот и туманная перспектива получить его в Спб до 31 числа…
И я ее получил, за 10 дней, тариф за отправку составил $48.5.
Читать дальше...
Total votes 150: ↑138 and ↓12 +126
Views 161K
Comments 160

Алгоритм генерации QR-кода

Programming *Algorithms *
Tutorial
Sandbox


QR код — это монохромная картинка, на которой некоторые устройства (например смартфон со специальным приложением) распознают текст. Этим текстом может быть не только простая фраза, но и, хоть это и не входит в официальную спецификацию, ссылка, номер телефона или визитная карточка. Такие коды чаще всего используют, чтобы закодировать ссылку и распечатать её на плакате или визитке.

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

За основу этой статьи взят цикл статей «QR Code Demystified» Джейсона Брауна (Jason Brown). В этих статьях опущено много нюансов, что вызвало у меня некоторые проблемы. Все эти нюансы учтены и упомянуты здесь.

Читать дальше →
Total votes 106: ↑99 and ↓7 +92
Views 147K
Comments 22

Работа для программиста в США: 5 простых шагов

IT career
image Статья про то, что делать тем, кто хочет переехать работать в США. Я предполагаю инженерные позиции, на которые проще всего получить визы, но, возможно, статья окажется полезна и другим специалистам.

Мой опыт несколько отличается от нижеописанного (я попала на работу в США после стажировки). Но за 4 года в США пообщалась с людьми, которые попали сюда разными путями и набрала кое-какой опыт. Так что если бы я очень хотела найти работу в США сегодня, то я бы действовала примерно так, как описано ниже.

Заранее извиняюсь, если мой тон кому-то покажется наставническим — я не имею амбиций учить других жизни, просто иногда у меня получается такой стиль.
Читать дальше →
Total votes 166: ↑152 and ↓14 +138
Views 287K
Comments 138

Жизнь разработчика (в картинках)

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

Когда я показываю босу, что окончательно пофиксил баг



Когда проджект-менеджер входит в офис



Читать дальше →
Total votes 884: ↑700 and ↓184 +516
Views 63K
Comments 132

C# .NET: Пять маленьких чудес, которые сделают ваш код лучше. Часть 1

.NET *
Sandbox
Здравствуй, Хабрасообщество. Хотелось бы представить на суд твой свои переводы серии статей Джеймса Майкла Харе (James Michael Hare) «Маленькие чудеса C#». Итак, первая часть перед вами!
Эти маленькие советы и рекомендации сделают ваш код более кратким, производительным и обслуживаемым. Наверное, многие из вас знают обо всех или некоторых из них, но игнорируют их, либо просто не знают.
Подробности
Total votes 87: ↑59 and ↓28 +31
Views 22K
Comments 35

Интересующимся мозгом/ИИ: ссылки на почитать

Artificial Intelligence Brain
Расчищая Авгиевы конюшни на своем компе, взялся за структурирование накопившихся линков. Подумал, может и другим будет интересно то, что когда-то мне показалось достойным. Опять же, будет к чему отсылать с вопросом есть чо? «что почитать?»

Этот набор (порядка 400 ссылок) ни в коей мере не претендует на полноту или объективность. Наоборот, приглашаются все желающие дополнить и исправить (например раздел «Онлайн Курсы» подозрительно пуст). Если будет интерес, буду апдейтить этот пост новыми линками + апдейты отдельными постами оформлять.

Не стал я сюда давать ссылки на книги по нейробиологии и совсем заумные статьи (хотя много ссылок на оригиналы статей) — это тема для отдельного поста, наверное, с хорошим обзором. Если кому-то захочется почитать статью, к которой доступ закрыт — пишите, вышлю.

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

PS: я оставил ссылки как есть, чтобы было видно куда ведет. Если кого напрягает — пишите, апдейтом спрячу.

Знание - сила!
Total votes 86: ↑79 and ↓7 +72
Views 81K
Comments 11

Звезда Смерти не нужна когда есть Curiosity

Robotics
На сайте Белого дома США несколько месяцев назад открыт сервис подачи петиций. За каждую петицию открыто голосование и если оно наберет более 25 тыс. голосов, то на него должен последовать официальный ответ Администрации президента. 14 ноября 2012 года там была опубликована петиция за начало финансирования и строительства «Звезды Смерти».
Сегодня петиция получила достойный официальный ответ.
image
Читать дальше →
Total votes 305: ↑290 and ↓15 +275
Views 241K
Comments 118

А вы хотите программировать вверх тормашками?

Lifehacks for geeks IT-companies
Sandbox


Всем добрый вечер/день/утро, кому, что ближе в данный момент. Давненько читаю данный ресурс и всегда с особенной любовью относился к статьям, которые так или иначе мотивировали меня, заставляли задуматься и подталкивали что-нибудь изменить в моей жизни. Поэтому, решил попробовать вдохновить или так сказать, морально помочь тем, кто чего-то хочет, но, как и все нормальные люди сомневается. А конкретно рассказать о моей иммиграции в страну Оззи. Сразу оговорюсь, тем кто любит писать что-то вроде: «многобукв»,«неосилил»… заранее приношу извинения, потому как сам «многобукв» люблю, а когда не люблю иду в твиттер, чего и Вам советую.
Читать дальше →
Total votes 142: ↑124 and ↓18 +106
Views 34K
Comments 156

Неочевидный способ борьбы с прокрастинацией

Lifehacks for geeks Brain
Sandbox
Наверняка, многие слышали о таком понятии, как “состояние потока”. Сейчас выходит много умных книжек и статей на эту тему. Но если не вдаваться в подробности и говорить простыми словами, то это такое состояние, в котором лучше всего работать. Концентрация и вовлеченность в таком состоянии максимальны, правильные решения приходят в голову быстро и естественно, ничто окружающее не отвлекает: ни захламленный рабочий стол, ни неудобное кресло, ни поздний час или голодный желудок.

Все это здорово, и каждый из нас, скорее всего, вспомнит что-то из своего опыта. Но проблема в том, что “перестроить” себя в такое состояние не просто, а вот “вывалиться” из него очень легко. Особенно, если речь идет о скучной или непонятной работе, в этом случае «инерция для входа” особенно высока. Размышляя недавно обо всем этом, я понял, что периодически неосознанно использовал один прием, которым и хочу поделиться.



Читать дальше →
Total votes 164: ↑156 and ↓8 +148
Views 31K
Comments 104

Нейронные сети с рефлексией

Artificial Intelligence
Недавно меня пригласили выступить на TEDx, я постарался популярно рассказать о современном положении дел в ИИ, и помимо этого изложил суть тех нейронных сетей, над которыми мы сейчас работаем (см. видео).



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

Структура сети

За основу была взята широкоизвестная сеть Хопфилда, но в нее помимо основных связей от каждого нейрона к каждому (которые технически можно считать связями с задержкой в один такт), были добавлены дополнительные связи с задержками более 1го такта (практически исследовались задержки на 2-8 тактов).
Читать дальше →
Total votes 58: ↑55 and ↓3 +52
Views 31K
Comments 167

Information

Rating
Does not participate
Location
Москва, Москва и Московская обл., Россия
Date of birth
Registered
Activity