Pull to refresh
29
0
Send message

Потоки, блокировки и условные переменные в C++11 [Часть 1]

Reading time8 min
Views443K
В первой части этой статьи основное внимание будет уделено потокам и блокировкам в С++11, условные переменные во всей своей красе будут подробно рассмотрены во второй части
Читать дальше →
Total votes 67: ↑67 and ↓0+67
Comments14

Потоки, блокировки и условные переменные в C++11 [Часть 2]

Reading time7 min
Views165K
Для более полного понимания этой статьи, рекомендуется прочитать ее первую часть, где основное внимание было уделено потокам и блокировкам, в ней объяснено много моментов (терминов, функций и т.д.), которые без пояснения будут использованы здесь.
В данной статье будут рассмотрены условные переменные…
Читать дальше →
Total votes 54: ↑54 and ↓0+54
Comments8

Возможности оптимизации в языках C и C++

Reading time12 min
Views61K
Существует мнение, что C++ имеет заметные накладные расходы по сравнению с C и поэтому он медленнее. Помимо этого, даже, существуют статьи показывающие преимущества в скорости языков с компиляцией налету (JIT — Just-in-time compilation), таких как Java и C#. Сравнить последние мы оставим тем, кто считает их быстрыми, но мы объясним почему это не так. А C и C++ мы сравним на примере задачи поиска данных.
Задача поиска данных часто встречается в: веб-сервисах, системах управления баз данных (СУБД), гео-поиске и аналитике.
Сначала для простоты объяснения поставим задачу поиска элементов полным проходом по массиву из 10 000 000 элементов (структур), содержащих 5 полей с диапазонами значений: amount_of_money(0-1000000), gender(0-1), age(0-100), code(0-1000000), height(0-300). А в следующих статьях добавим в решение индексный поиск.
Мы будем писать кроссплатформенно под MSVC11(MSVS2012) и GCC 4.7.2, и использовать в них частично реализованный стандарт C++11.
Читать дальше →
Total votes 102: ↑89 and ↓13+76
Comments93

Скорости разработки и исполнения, не достижимые на С

Reading time20 min
Views59K
В продолжении статьи о кроссплатформенной и кросс-аппаратной оптимизации, на примере задачи поиска полным проходом по таблице из 5 полей и 10 000 000 строк, и неизбежности этой задачи даже при индексном поиске, я покажу как ускорить такой поиск в 3.5-5.3 раза с использованием C++ независимо от аппаратной платформы.
В предыдущей статье нам удалось ускорить поиск в 1.3 раза: GitHub.com
Мы не будем банально описывать конструкции языка, а покажем преимущества C++ при решении одного из этапов реальной задачи.
Мы по-прежнему пишем кроссплатформенно под MSVC11(MSVS2012) и GCC 4.7.2, и используем в них C и частично реализованный стандарт C++11.
Для упрощения понимания мы все ещё пишем без индексного поиска, но это решение в дальнейшем будет использоваться при индексном поиске.
Читать дальше →
Total votes 165: ↑150 and ↓15+135
Comments41

Общественный совет при ФСБ предлагает запретить Tor и сайты-анонимизаторы, привлечь к ответственности их создателей

Reading time5 min
Views144K
Сегодня я прочёл на русском националистическом сайте «Спутник и Погром» новость «ФСБ хочет запретить защиту от электронной слежки», основанную на опубликованной сегодня же «Известиями» новости «Силовики предлагают запретить ПО, скрывающее пользователя в Сети». И новость эта такова, что от неё волосы должны дыбом стать на голове!

Общественный совет при ФСБ России (его логотип я привожу справа) счёл нужным (вероятно, на заседании 29 мая) предложить Госдуме внесение таких поправок в закон «Об информации, информационных технологиях и о защите информации», которые сделают противозаконными все программы, маскирующие информационные данные и IP-адреса пользователей. Это касается и браузера Tor, и анонимизирующих сайтов, позволяющих при помощи обычного браузера переходить с изменённым IP-адресом на некоторый другой сайт (заблокированный за «экстремизм», за «пропаганду суицида», за «пропаганду наркотиков», за «педофилию») и читать этот сайт невозбранно (быть может, втайне язвительно посмеиваясь над Роскомнадзором — кто знает?…). Теперь будет не до смеха.

Интересны приведённые «Известиями» реплики отдельных лиц в связи с этой инициативою.

Анатолий Григорьевич Кучерена (член Общественного совета при ФСБ, на выборах 2012 года ставший доверенным лицом Путина) заявил непосредственно «Известиям», что они готовят рекомендации депутатам о необходимости введения ответственности за создание программного обеспечения, позволяющего посещать запрещённые сайты. «Принять чёткий закон, в котором будут прописаны санкции, способные удержать программистов от желания создавать вредоносные программные продукты», — обозначил Кучерена намерения борцов с сетевою анонимностью.

Мнение Леонида Леонидовича Левина (первого заместителя комитета Госдумы по информационной политике) сводится к тому, что анонимайзеры используют люди, которые намереваются совершить какие-то незаконные действия, или те, кому есть что скрывать.

Сайт «Спутник и Погром» прибавляет, что после Tor и анонимизаторов неизбежно начнётся борьба против VPN — и это мнение я полагаю вполне справедливым, даже с прибавкою: не только VPN, но и SSH, а за ними и HTTPS, вероятно, и SSL в целом.

Читать дальше →
Total votes 249: ↑212 and ↓37+175
Comments833

Силовики предлагают запретить ПО, скрывающее пользователя в Сети

Reading time1 min
Views92K
«Дело в том, что, если по решению суда будет заблокирован доступ интернет-пользователей к определенному сайту, последние при помощи анонимайзеров смогут посещать страницы заблокированного сайта. Например, при помощи данных программ пользователи в Китае и Белоруссии весьма благополучно заходят на те сайты, к которым местные власти блокируют доступ.

Инициатива силовиков подразумевает запрет программного обеспечения или браузеров со встроенным анонимайзером (таких как браузер Tor). Кроме этого, к маскирующим инструментам относятся веб-серверы — автономные сайты, при помощи которых пользователи могут без установления специальных программ переходить с измененным IP-адресом на блокируемый сайт.

Подобные поправки будут внесены в федеральный закон «Об информации, информационных технологиях и о защите информации».
Читать дальше →
Total votes 201: ↑187 and ↓14+173
Comments417

Бортовые информационные системы летательных аппаратов

Reading time4 min
Views42K
На своей основной работе занимаюсь разработкой бортовых информационных систем для летательных аппаратов. Тема очень интересная, но слишком обширная для одного топика. Так что я начну с самых основ и первую свою статью на хабре посвящу общему описанию бортовой аппаратуры воздушного транспорта.


Читать дальше →
Total votes 61: ↑54 and ↓7+47
Comments33

Конкурс Intel Perceptual Computing Challenge. Мотивационный пост

Reading time4 min
Views10K

В феврале мы объявляли о начале первого этапа конкурса приложений, основанных на Intel Perceptual SDK с призовым фондом в $1000000 (один миллион долларов). Этот этап уже закончился, более того – начался новый, в котором, как и было обещано, суммы денежных призов значительно увеличены. Об правилах второго тура на Хабре уже писали, мы же хотим еще раз о нем напомнить и пригласить всех в нем участвовать. Под катом – много видео с приложениями-победителями первого тура, много круглых сумм, которые получат победители второго, ответы на вопросы, а также эксклюзив — интервью с призером конкурса из России.
Читать дальше →
Total votes 27: ↑23 and ↓4+19
Comments52

Оптимизация времени выполнения программы на С++ (убираем условные переходы)

Reading time5 min
Views32K
При оптимизации времени выполнения алгоритма, использующего LDPC декодер, профайлер привел к функции, вычисляющей следующее значение:
image
где a и b — целые числа. Количество вызовов шло на миллионы, а реализация ее была достаточно
проста и бесхитростна...
Total votes 65: ↑59 and ↓6+53
Comments60

Clipping magic: онлайн-инструмент для вырезания картинки из фона на базе технологий искусственного интеллекта

Reading time2 min
Views535K
Открывшийся недавно в режиме публичной альфы сайт Clippingmagic.com предназначен для решения всего одной задачи — удаления фона изображения, но зато делает он это весьма неплохо. В отличие от большинства подобных инструментов, он имеет удобный и простой интерфейс и при этом результат получается очень приличным. Пожалуй, лучше и аккуратнее можно сделать только в настоящем большом редакторе вроде Photoshop или Gimp, потратив при этом гораздо больше времени.



Алгоритм работы очень прост: загружаем картинку, выделяем зелёным объект, а красным — фон, затем несколькими штрихами исправляем оставшиеся огрехи. Весь процесс занимает буквально минуту-другую и не требует особой твёрдости руки. Изображение можно масштабировать, при этом размер кисти не меняется, позволяя обработать мелкие детали. Результат можно сохранить в формате PNG.
Читать дальше →
Total votes 68: ↑56 and ↓12+44
Comments55

Путешествия во времени и программирование 2: парадоксы

Reading time26 min
Views216K


Эпоха путешествий во времени еще не наступила, а человечество уже давно пытается разрешить сопутствующие им парадоксы. Мы поговорим о самом очевидном из них: что же все-таки произойдет при вмешательстве в ход истории? Существует несколько вариантов того, как поток времени реагирует на действия путешественника из будущего. Эти модели можно увидеть в фантастических фильмах, о них все больше начинают говорить ученые, но какая модель ближе к истине — единого мнения пока нет. Мы только начинаем проникать в тайны времени, и еще не обладаем возможностью экспериментировать с перемещениями в прошлое. Что же можно прояснить в данном вопросе уже сейчас? Под катом нас ждет экскурсия по основам механики времени, мы порассуждаем о парадоксах, и проведем небольшой эксперимент. Да, это будет испытание виртуальной машины времени, построенной на основе алгоритма «Жизнь»!
Читать дальше →
Total votes 371: ↑351 and ↓20+331
Comments440

Дилемма заключенных: you are (not) alone

Reading time3 min
Views35K

Недавно прочитал пост о диллемме заключенных, который заинтересовал сообщество.
В данном посте хочу показать взгляд на эту проблему со стороны теории игр, на основе опыта полученного после обучения на онлайн курсах ИИ университета в Беркли. После применения данного аппарата проблема становится понятной и разрешимой.
Читать дальше →
Total votes 65: ↑44 and ↓21+23
Comments18

Разрезание на две равные части, часть первая

Reading time4 min
Views55K
Задачи на разрезание — это та область математики, где, как говорится, мамонт не валялся. Множество отдельных проблем, но по сути нет общей теории. Помимо всем известной теоремы Бойяи-Гервина, других фундаментальных результатов в этой области практически нет. Неопределённость — вечный спутник задач на разрезание. Мы можем, например, разрезать правильный пятиугольник на шесть частей, из которых можно сложить квадрат; однако мы не можем доказать, что пяти частей для этого было бы недостаточно.

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



Скандалы, интриги, расследования
Total votes 61: ↑53 and ↓8+45
Comments11

Приход Фидонета на Android

Reading time2 min
Views33K
Сеть Фидонет на двадцать третьем году своего существования в России приходит на операционную систему Android. Для примера обратите, пожалуйста, внимание вот на этот скриншот, который любезно предоставил Слава Петров (2:5053/54.17):

[скриншот HotdogEd]

Перед вами — вид редактора почты HotdogEd на горизонтально расположенном экране мобильника (или планшета) размером 800×480 пикселов. Как нетрудно видеть, автору HotdogEd (Сергею Позитурину, 2:5020/2140) удалось разместить на экране и список сообщений (в форме деревьев ответов) из некоторой эхоконференции (в данном примере — из локалки Pushkin.Local), и текст одного из сообщений.

Читать дальше →
Total votes 80: ↑56 and ↓24+32
Comments94

Verlet.js — физический движок на основе метода Верле

Reading time1 min
Views39K
Метод численного интегрирования Верле издавна использовался для вычисления траекторий частиц. Сам метод был впервые использован ещё в 1791 году французским астрономом Жаном-Батистом-Жозефом Деламбром. В 1907 норвежский математик и физик Карл Штёрмер использовал его для моделирования движения частиц в магнитном поле, поэтому иногда этот метод называют методом Штёрмера. Современное название этот алгоритм получил от имени французского физика Лу Верле, который в 1967 году использовал его в моделировании молекулярной динамики. В последнее время метод Верле применяется и в разработке компьютерных игр.
Читать дальше →
Total votes 79: ↑79 and ↓0+79
Comments43

HackDay #25 в Нижнем Новгороде – теперь с конкурсом Intel

Reading time3 min
Views3.4K

С 12 по 14 апреля в Нижнем Новгороде прошел очередной, 25-ый, конкурс разработчиков HackDay. За два рабочих дня, которые для всех остальных людей являются выходными, участникам предстояло воплотить заранее придуманную или тут же пришедшую в голову идею в более или менее работоспособный проект. Отличие этой итерации HackDay от предыдущих состояло в том, что компания Intel устроила тут нечто вроде «конкурса в конкурсе» и предложила программистам попробовать свои силы в создании приложений на Perceptual SDK. Победителя конкурса ждал хороший приз – ультрабук. Ну а теперь небольшой отчет о том, как все было.
Читать дальше →
Total votes 9: ↑9 and ↓0+9
Comments7
12 ...
10

Information

Rating
Does not participate
Location
Нижний Новгород, Нижегородская обл., Россия
Date of birth
Registered
Activity