В первой части этой статьи основное внимание будет уделено потокам и блокировкам в С++11, условные переменные во всей своей красе будут подробно рассмотрены во второй части…
User
Потоки, блокировки и условные переменные в C++11 [Часть 2]
7 min
165KTutorial
Для более полного понимания этой статьи, рекомендуется прочитать ее первую часть, где основное внимание было уделено потокам и блокировкам, в ней объяснено много моментов (терминов, функций и т.д.), которые без пояснения будут использованы здесь.
В данной статье будут рассмотрены условные переменные…
В данной статье будут рассмотрены условные переменные…
+54
Возможности оптимизации в языках C и C++
12 min
61KСуществует мнение, что 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.
Задача поиска данных часто встречается в: веб-сервисах, системах управления баз данных (СУБД), гео-поиске и аналитике.
Сначала для простоты объяснения поставим задачу поиска элементов полным проходом по массиву из 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.
+76
Скорости разработки и исполнения, не достижимые на С
20 min
59KВ продолжении статьи о кроссплатформенной и кросс-аппаратной оптимизации, на примере задачи поиска полным проходом по таблице из 5 полей и 10 000 000 строк, и неизбежности этой задачи даже при индексном поиске, я покажу как ускорить такой поиск в 3.5-5.3 раза с использованием C++ независимо от аппаратной платформы.
В предыдущей статье нам удалось ускорить поиск в 1.3 раза: GitHub.com
Мы не будем банально описывать конструкции языка, а покажем преимущества C++ при решении одного из этапов реальной задачи.
Мы по-прежнему пишем кроссплатформенно под MSVC11(MSVS2012) и GCC 4.7.2, и используем в них C и частично реализованный стандарт C++11.
Для упрощения понимания мы все ещё пишем без индексного поиска, но это решение в дальнейшем будет использоваться при индексном поиске.
В предыдущей статье нам удалось ускорить поиск в 1.3 раза: GitHub.com
Мы не будем банально описывать конструкции языка, а покажем преимущества C++ при решении одного из этапов реальной задачи.
Мы по-прежнему пишем кроссплатформенно под MSVC11(MSVS2012) и GCC 4.7.2, и используем в них C и частично реализованный стандарт C++11.
Для упрощения понимания мы все ещё пишем без индексного поиска, но это решение в дальнейшем будет использоваться при индексном поиске.
+135
Общественный совет при ФСБ предлагает запретить Tor и сайты-анонимизаторы, привлечь к ответственности их создателей
5 min
144KСегодня я прочёл на русском националистическом сайте «Спутник и Погром» новость «ФСБ хочет запретить защиту от электронной слежки», основанную на опубликованной сегодня же «Известиями» новости «Силовики предлагают запретить ПО, скрывающее пользователя в Сети». И новость эта такова, что от неё волосы должны дыбом стать на голове!
Общественный совет при ФСБ России (его логотип я привожу справа) счёл нужным (вероятно, на заседании 29 мая) предложить Госдуме внесение таких поправок в закон «Об информации, информационных технологиях и о защите информации», которые сделают противозаконными все программы, маскирующие информационные данные и IP-адреса пользователей. Это касается и браузера Tor, и анонимизирующих сайтов, позволяющих при помощи обычного браузера переходить с изменённым IP-адресом на некоторый другой сайт (заблокированный за «экстремизм», за «пропаганду суицида», за «пропаганду наркотиков», за «педофилию») и читать этот сайт невозбранно (быть может, втайне язвительно посмеиваясь над Роскомнадзором — кто знает?…). Теперь будет не до смеха.
Интересны приведённые «Известиями» реплики отдельных лиц в связи с этой инициативою.
Анатолий Григорьевич Кучерена (член Общественного совета при ФСБ, на выборах 2012 года ставший доверенным лицом Путина) заявил непосредственно «Известиям», что они готовят рекомендации депутатам о необходимости введения ответственности за создание программного обеспечения, позволяющего посещать запрещённые сайты. «Принять чёткий закон, в котором будут прописаны санкции, способные удержать программистов от желания создавать вредоносные программныепродукты», — обозначил Кучерена намерения борцов с сетевою анонимностью.
Мнение Леонида Леонидовича Левина (первого заместителя комитета Госдумы по информационной политике) сводится к тому, что анонимайзеры используют люди, которые намереваются совершитькакие-то незаконные действия, или те, кому есть что скрывать.
Сайт «Спутник и Погром» прибавляет, что после Tor и анонимизаторов неизбежно начнётся борьба против VPN — и это мнение я полагаю вполне справедливым, даже с прибавкою: не только VPN, но и SSH, а за ними и HTTPS, вероятно, и SSL в целом.
![](https://habrastorage.org/storage2/fbf/bed/6c0/fbfbed6c02f086e58890cffa5b9c3c13.png)
Интересны приведённые «Известиями» реплики отдельных лиц в связи с этой инициативою.
Анатолий Григорьевич Кучерена (член Общественного совета при ФСБ, на выборах 2012 года ставший доверенным лицом Путина) заявил непосредственно «Известиям», что они готовят рекомендации депутатам о необходимости введения ответственности за создание программного обеспечения, позволяющего посещать запрещённые сайты. «Принять чёткий закон, в котором будут прописаны санкции, способные удержать программистов от желания создавать вредоносные программные
Мнение Леонида Леонидовича Левина (первого заместителя комитета Госдумы по информационной политике) сводится к тому, что анонимайзеры используют люди, которые намереваются совершить
Сайт «Спутник и Погром» прибавляет, что после Tor и анонимизаторов неизбежно начнётся борьба против VPN — и это мнение я полагаю вполне справедливым, даже с прибавкою: не только VPN, но и SSH, а за ними и HTTPS, вероятно, и SSL в целом.
+175
Силовики предлагают запретить ПО, скрывающее пользователя в Сети
1 min
92K«Дело в том, что, если по решению суда будет заблокирован доступ интернет-пользователей к определенному сайту, последние при помощи анонимайзеров смогут посещать страницы заблокированного сайта. Например, при помощи данных программ пользователи в Китае и Белоруссии весьма благополучно заходят на те сайты, к которым местные власти блокируют доступ.
Инициатива силовиков подразумевает запрет программного обеспечения или браузеров со встроенным анонимайзером (таких как браузер Tor). Кроме этого, к маскирующим инструментам относятся веб-серверы — автономные сайты, при помощи которых пользователи могут без установления специальных программ переходить с измененным IP-адресом на блокируемый сайт.
Подобные поправки будут внесены в федеральный закон «Об информации, информационных технологиях и о защите информации».
Инициатива силовиков подразумевает запрет программного обеспечения или браузеров со встроенным анонимайзером (таких как браузер Tor). Кроме этого, к маскирующим инструментам относятся веб-серверы — автономные сайты, при помощи которых пользователи могут без установления специальных программ переходить с измененным IP-адресом на блокируемый сайт.
Подобные поправки будут внесены в федеральный закон «Об информации, информационных технологиях и о защите информации».
+173
Бортовые информационные системы летательных аппаратов
4 min
42KTutorial
На своей основной работе занимаюсь разработкой бортовых информационных систем для летательных аппаратов. Тема очень интересная, но слишком обширная для одного топика. Так что я начну с самых основ и первую свою статью на хабре посвящу общему описанию бортовой аппаратуры воздушного транспорта.
![](https://habrastorage.org/storage2/ce7/5ac/05e/ce75ac05ebabc650843b139b8511279b.jpg)
![](https://habrastorage.org/storage2/ce7/5ac/05e/ce75ac05ebabc650843b139b8511279b.jpg)
+47
Конкурс Intel Perceptual Computing Challenge. Мотивационный пост
4 min
10K![](https://habrastorage.org/storage2/e3f/66d/a17/e3f66da1796be150da78ef506103657b.jpg)
В феврале мы объявляли о начале первого этапа конкурса приложений, основанных на Intel Perceptual SDK с призовым фондом в $1000000 (один миллион долларов). Этот этап уже закончился, более того – начался новый, в котором, как и было обещано, суммы денежных призов значительно увеличены. Об правилах второго тура на Хабре уже писали, мы же хотим еще раз о нем напомнить и пригласить всех в нем участвовать. Под катом – много видео с приложениями-победителями первого тура, много круглых сумм, которые получат победители второго, ответы на вопросы, а также эксклюзив — интервью с призером конкурса из России.
+19
Оптимизация времени выполнения программы на С++ (убираем условные переходы)
5 min
32KПри оптимизации времени выполнения алгоритма, использующего LDPC декодер, профайлер привел к функции, вычисляющей следующее значение:
![image](https://habrastorage.org/getpro/habr/post_images/724/c58/fa2/724c58fa2d83f712369ef9aacc7b5cc4.png)
где a и b — целые числа. Количество вызовов шло на миллионы, а реализация ее была достаточно
![image](https://habrastorage.org/getpro/habr/post_images/724/c58/fa2/724c58fa2d83f712369ef9aacc7b5cc4.png)
где a и b — целые числа. Количество вызовов шло на миллионы, а реализация ее была достаточно
+53
Clipping magic: онлайн-инструмент для вырезания картинки из фона на базе технологий искусственного интеллекта
2 min
535KОткрывшийся недавно в режиме публичной альфы сайт Clippingmagic.com предназначен для решения всего одной задачи — удаления фона изображения, но зато делает он это весьма неплохо. В отличие от большинства подобных инструментов, он имеет удобный и простой интерфейс и при этом результат получается очень приличным. Пожалуй, лучше и аккуратнее можно сделать только в настоящем большом редакторе вроде Photoshop или Gimp, потратив при этом гораздо больше времени.
![](https://habrastorage.org/storage2/bd9/b35/d12/bd9b35d12e01f1f475f8dbe4e52cd254.png)
Алгоритм работы очень прост: загружаем картинку, выделяем зелёным объект, а красным — фон, затем несколькими штрихами исправляем оставшиеся огрехи. Весь процесс занимает буквально минуту-другую и не требует особой твёрдости руки. Изображение можно масштабировать, при этом размер кисти не меняется, позволяя обработать мелкие детали. Результат можно сохранить в формате PNG.
![](https://habrastorage.org/storage2/bd9/b35/d12/bd9b35d12e01f1f475f8dbe4e52cd254.png)
Алгоритм работы очень прост: загружаем картинку, выделяем зелёным объект, а красным — фон, затем несколькими штрихами исправляем оставшиеся огрехи. Весь процесс занимает буквально минуту-другую и не требует особой твёрдости руки. Изображение можно масштабировать, при этом размер кисти не меняется, позволяя обработать мелкие детали. Результат можно сохранить в формате PNG.
+44
Путешествия во времени и программирование 2: парадоксы
26 min
216K![](https://habrastorage.org/storage2/597/d37/2fc/597d372fc5037671e88e83f1069fa029.jpg)
Эпоха путешествий во времени еще не наступила, а человечество уже давно пытается разрешить сопутствующие им парадоксы. Мы поговорим о самом очевидном из них: что же все-таки произойдет при вмешательстве в ход истории? Существует несколько вариантов того, как поток времени реагирует на действия путешественника из будущего. Эти модели можно увидеть в фантастических фильмах, о них все больше начинают говорить ученые, но какая модель ближе к истине — единого мнения пока нет. Мы только начинаем проникать в тайны времени, и еще не обладаем возможностью экспериментировать с перемещениями в прошлое. Что же можно прояснить в данном вопросе уже сейчас? Под катом нас ждет экскурсия по основам механики времени, мы порассуждаем о парадоксах, и проведем небольшой эксперимент. Да, это будет испытание виртуальной машины времени, построенной на основе алгоритма «Жизнь»!
+331
Дилемма заключенных: you are (not) alone
3 min
35K![](https://habrastorage.org/storage2/8e6/bff/d6c/8e6bffd6c32ef73cb7ab46d0268ec692.png)
Недавно прочитал пост о диллемме заключенных, который заинтересовал сообщество.
В данном посте хочу показать взгляд на эту проблему со стороны теории игр, на основе опыта полученного после обучения на онлайн курсах ИИ университета в Беркли. После применения данного аппарата проблема становится понятной и разрешимой.
+23
Разрезание на две равные части, часть первая
4 min
55KЗадачи на разрезание — это та область математики, где, как говорится, мамонт не валялся. Множество отдельных проблем, но по сути нет общей теории. Помимо всем известной теоремы Бойяи-Гервина, других фундаментальных результатов в этой области практически нет. Неопределённость — вечный спутник задач на разрезание. Мы можем, например, разрезать правильный пятиугольник на шесть частей, из которых можно сложить квадрат; однако мы не можем доказать, что пяти частей для этого было бы недостаточно.
С помощью хитрой эвристики, воображения и поллитры нам порой удаётся найти конкретное решение, но, как правило, мы не обладаем подходящим инструментарием, чтобы доказать минимальность этого решения или же его несуществование (последнее, разумеется, относится к случаю, когда мы решение не нашли). Это печально и несправедливо. И как-то раз я взял чистую тетрадку и решил восстановить справедливость в масштабах одной конкретной задачи: разрезания плоской фигуры на две равных (конгруэнтных) части. В рамках этого цикла статей (их, кстати, будет три) мы с вами, камрады, рассмотрим вот этот забавный многоугольник, изображённый ниже, и попытаемся беспристрастно разобраться, можно ли разрезать его на две равных фигуры, или же таки нет.
![](https://habrastorage.org/getpro/habr/post_images/3e6/aa8/388/3e6aa8388bd369f97bda26e3b01dbfda.png)
С помощью хитрой эвристики, воображения и поллитры нам порой удаётся найти конкретное решение, но, как правило, мы не обладаем подходящим инструментарием, чтобы доказать минимальность этого решения или же его несуществование (последнее, разумеется, относится к случаю, когда мы решение не нашли). Это печально и несправедливо. И как-то раз я взял чистую тетрадку и решил восстановить справедливость в масштабах одной конкретной задачи: разрезания плоской фигуры на две равных (конгруэнтных) части. В рамках этого цикла статей (их, кстати, будет три) мы с вами, камрады, рассмотрим вот этот забавный многоугольник, изображённый ниже, и попытаемся беспристрастно разобраться, можно ли разрезать его на две равных фигуры, или же таки нет.
![](https://habrastorage.org/getpro/habr/post_images/3e6/aa8/388/3e6aa8388bd369f97bda26e3b01dbfda.png)
+45
Приход Фидонета на Android
2 min
33KСеть Фидонет на двадцать третьем году своего существования в России приходит на операционную систему Android. Для примера обратите, пожалуйста, внимание вот на этот скриншот, который любезно предоставил Слава Петров (2:5053/54.17):
![[скриншот HotdogEd]](https://habrastorage.org/storage2/6f6/a64/b87/6f6a64b87c907e407cc3e9c02979ba41.png)
Перед вами — вид редактора почты HotdogEd на горизонтально расположенном экране мобильника (или планшета) размером 800×480 пикселов. Как нетрудно видеть, автору HotdogEd (Сергею Позитурину,2:5020/2140) удалось разместить на экране и список сообщений (в форме деревьев ответов) из некоторой эхоконференции (в данном примере — из локалки Pushkin.Local), и текст одного из сообщений.
![[скриншот HotdogEd]](https://habrastorage.org/storage2/6f6/a64/b87/6f6a64b87c907e407cc3e9c02979ba41.png)
Перед вами — вид редактора почты HotdogEd на горизонтально расположенном экране мобильника (или планшета) размером 800×480 пикселов. Как нетрудно видеть, автору HotdogEd (Сергею Позитурину,
+32
Verlet.js — физический движок на основе метода Верле
1 min
39K![](https://habrastorage.org/storage2/0ff/a63/927/0ffa6392794a28a44283f77ef2554361.png)
+79
HackDay #25 в Нижнем Новгороде – теперь с конкурсом Intel
3 min
3.4K![](https://habrastorage.org/storage2/12f/e07/08e/12fe0708e17e850c0b04404844272264.jpg)
С 12 по 14 апреля в Нижнем Новгороде прошел очередной, 25-ый, конкурс разработчиков HackDay. За два рабочих дня, которые для всех остальных людей являются выходными, участникам предстояло воплотить заранее придуманную или тут же пришедшую в голову идею в более или менее работоспособный проект. Отличие этой итерации HackDay от предыдущих состояло в том, что компания Intel устроила тут нечто вроде «конкурса в конкурсе» и предложила программистам попробовать свои силы в создании приложений на Perceptual SDK. Победителя конкурса ждал хороший приз – ультрабук. Ну а теперь небольшой отчет о том, как все было.
+9
Information
- Rating
- Does not participate
- Location
- Нижний Новгород, Нижегородская обл., Россия
- Date of birth
- Registered
- Activity