Pull to refresh
2
0.1
Сергей @Chelyuk

User

Send message

Возможности оптимизации в языках 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.
Читать дальше →

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

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.
Для упрощения понимания мы все ещё пишем без индексного поиска, но это решение в дальнейшем будет использоваться при индексном поиске.
Читать дальше →

Собираем CarPC на Android: недостроенный долгострой

Reading time12 min
Views401K


Моя машина меня устраивает почти всем. Есть практически все, что нужно. В комплектации блютусный телефон, кнопочный климат-контроль, электростеклоподъемники на всех дверях, подогрев сидений, подогрев, регулировка и складывание зеркал, чип-ключ, CD-чейнджер на 6 дисков, но без MP3 и линейного входа. Вот этот прискорбный факт и привел меня к мысли начать собрать свой CarPC на базе андроида. Начал рассматривать варианты и покатился… появилось много идей.
Хочу поделиться с Вами!

Опыт обучения школьников программированию

Reading time13 min
Views146K
Примерно полтора года назад компания, в которой я работал, приняла решение начать образовательный проект: готовить будущих программистов со студенческой и даже школьной скамьи. Решение было вызвано как нехваткой квалифицированных программистов в нашем регионе, так и тем, что приходящих выпускников приходится очень многому доучивать – получаемое в вузе образование не полностью отвечает современным реалиям индустрии разработки ПО. Проект взаимовыгодный как для студентов, которые получают возможность познакомиться с промышленным программированием на практике, так и для компании, которая получит через несколько лет квалифицированных специалистов.

Но еще интереснее оказалась часть проекта, ориентированная на работу со школьниками. Я принимаю непосредственное участие именно в этой части, поэтому хочу рассказать о ней.
Читать дальше

Лето, отпуск, asterisk или сам себе VoIP оператор

Reading time7 min
Views65K
Лето, отпуск, asterisk


Собрался я вместе со своим товарищем в период летнего отпуска поколесить на авто по Европе. А серой осенью есть мысли отправиться поближе к экватору. И вполне резонно встал вопрос связи. Skype, ICQ и прочие сервисы это конечно хорошо, но только не для старшего поколения. Жена и друзья без вопросов, а родители? Супруга сразу же сказала что передастом (человек который передает что-либо) быть не желает. Еще неплохо было бы свой номер рабочим оставить, чтоб у людей не было ощущения, что я канул в небытие. Опять же учитывая непростую роуминговую тарификацию наших операторов сотовой связи, в которой разбираться у меня нет никакого желания, сформировалось представление того, что я хочу получить в итоге.

  1. Звонки из любой точки мира по местным тарифам
  2. Прием звонков на свой личный номер
  3. Голосовые сообщения если я не доступен
  4. Голосовая почта
  5. Прием и передача смс
  6. Безопасность соединения

Читать дальше →

Реализация работы с факсами в asterisk

Reading time5 min
Views47K
Появилась необходимость настроить прием и отправку факсов на asterisk. По техническому заданию прием и отправка факсов должны происходить с участием операторов и возможностью предварительного разговора.
В интернете нашел примеры реализации, но в них как правило:
1) была автоматическая отправка факсов на определенный номер без предварительного разговора с оператором;
2) использовались различные связки iaxmodem либо t38modem + hylafax, в которых на мой взгляд особой надобности в данном случае нет. Asterisk умеет работать с факсами через SpanDSP (должен быть собран с поддержкой SpanDSP).

В итоге все свелось к следующему:
1) любой оператор компании должен иметь функционал для приема и отправки факсов со своего рабочего места, пользуясь ПК и телефоном;
2) для приема факса необходимо перевести вызов на номер 5555. Система должна преобразовать полученный документ из tiff в pdf, выложить в общую папку FAX и продублировать на почтовый ящик секретаря.
3) при отправке факса должна быть возможность отправки любого электронного документа или документа на бумажном носителе (через сканер). Оператор вначале должен иметь возможность сообщить, кому и что за документ передает, потом так же, как и при приеме, перевести на определенный номер, соответствующий данному документу.
Читать дальше →

Быстрое развертывание телефонной сети на Asterisk+Cisco

Reading time20 min
Views46K
Так случилось, что в короткие сроки появилась необходимость перевезти 70 человек с аналоговыми телефонами из одного бизнес центра в другой. Ситуация усугублялась тем, что в новом офисе у владельца не было аналоговых портов в АТС, а АТС в старом принадлежала телефонной компании. Пришлось в короткие сроки внедрять IP телефонию с переносом всех аналоговых городских линий на Asterisk. Поставка оборудования была назначена на день предшествующий дню переезда, что означало — времени на развертывание телефонии будет очень мало.

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

Промышленные сети в контексте четвертой промышленной революции

Reading time7 min
Views33K

Сначала небольшое историческое отступление о том, что такое четвертая промышленная революция, анонсированная в прошлом году.
  • Появление промышленности. Первая промышленная революция произошла в начале XIX века и была связана с массовым переходом от использования мускульной силы к энергии парового двигателя. Ключевые технологии — паровой двигатель, фабрика. Появилась возможность массового производства, но его продукты стоили дорого.
  • Массовое производство. Вторая революция случилась в начале 20 века, и ознаменовала начало дешевого массового производства. Ключевые технологии — конвейер и Тейлоризм. Продукты массового производства подешевели на порядок.
  • Автоматизация. Третий переворот в промышленности произошел в 80-е годы. Станки с ЧПУ и роботы сделали современные фабрики практически безлюдными. (Аутсорсинг ручного труда в развивающиеся страны сгладил эту тенденцию.) Продукты массового производства подешевели еще на порядок (стало дешевле выкинуть, чем чинить).
  • Децентрализация. Революция четыре точка ноль происходит сейчас. Ключевая технология — конвергенция промышленности и IT, 3д принтеры. Появляется возможность производства мелкой серии или уникального продукта по цене, приближающейся к стоимости того же самого в крупной серии.
Это немецкий взгляд на 4 четыре фазы развития промышленности. Существует еще и американский, который не разделяет третью и четвертую фазы.

Мне кажется, во вступлении я написал слишком много общих фраз и слишком мало технического хардкора. Исправлю это под катом, описав некоторые технические детали о промышленных сетях и продуктах Intel, связанных с ними (+ еще одна картинка с роботом).
Читать дальше →

Коаны Vim

Reading time5 min
Views28K
Читать дальше →

Продолжение видео лекций курса «Операционные системы» с Алексеем Брагиным в МГТУ им. Баумана

Reading time1 min
Views23K
Мы продолжаем выкладывать в общий доступ лекции imageАлексея Брагина, который теперь читает авторский курс лекций об операционных системах в МГТУ им. Баумана.

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


Читать дальше →

Основы безопасности операционной системы Android. Уровень ядра

Reading time6 min
Views101K

Вступление


Самой распространенной операционной системой для смартфонов на сегодняшний день является Android. Но не только этот факт подогревает интерес к ней. Открытость, возможность что-то настроить, подкрутить, и, естественно, сломать тоже в немалой степени способствуют увеличению популярности этой платформы. Я попробую поделиться опытом, как устроена эта операционная система, а так же рассмотреть систему безопасности. Всем, кому интересно, добро пожаловать! В этой статье я рассмотрю безопасность на уровне ядра.
Читать дальше →

Умный дом: защита от протечек воды, система Аквасторож

Reading time7 min
Views226K
Я уже писал про составные части умного дома — систему управления освещением. Умный дом, как и любой робот должен подчиняться трем законам робототехники, третий из которых гласит: робот должен заботиться о своей безопасности в той мере, в которой это не противоречит Первому и Второму Законам. Т.е. одной из задач умного дома — заботиться о своей сохранности, не допускать взломов, пожаров, затоплений, и прочих повреждений. Вот о защите от протечек и затопления мы сегодня и поговорим.
image
Аквасторож — это система которая автоматически перекрывает воду при обнаружении затопления. Прорвало трубу — вода хлещет на пол, попадает на сенсор, и сервопривод перекрывает краны на стояках. Конечно, от мокрых полов это вас не спасет — часть воды все равно окажется на полу, но ремонт обезопасит, а заодно и оградит от компенсации после затопления соседям ниже. Посмотрим, разберем систему Аквасторож на части и узнаем, так ли она хороша?
Читать дальше →

GamePlay 3D Framework — лёгкий старт в кроссплатформенную разработку 3D игр

Reading time13 min
Views32K
Доброе время суток, уважаемые хабражители!

Прослушав курс по компьютерной графике в университете и вдоволь наигравшись с OpenGL, я решил, что пора бы уже двинуться дальше и попробовать себя в разработке игр. Писать с нуля свой движок, прямо скажем, не очень-то хотелось. Главной целью было скорее посмотреть как это делается, вынести уроки и может быть создать что-то на базе выбранного движка. Беглый поиск показал, что с открытыми кроссплатформенными движками немного туго. У одного проблемы с Linux, Windows или Mac OS, у другого со свежими версиями мобильных ОС, третий почти заброшен… Но я-таки наткнулся на один очень привлекательный экземпляр, о котором и хочу поведать в этой статье.

gameplay

Имя этому фреймворку — GamePlay 3D. Информации о нём на просторах интернета не очень много, чего уж говорить про рунет. Это open source фреймворк написанный на C++ для программирования игр на C++ со всеми вытекающими из этого достоинствами и недостатками. Авторы проекта позиционируют его как универсальный инструмент, эдакий аналог cocos2d для 3D игр. Чтобы начать писать на GamePlay 3D не нужно обладать глубокими знаниями OpenGL, GLSL или математики 3D графики, однако все мы понимаем, что для достижения хорошего результата от этого никуда не деться. Подробности и небольшой пример для старта под катом.

Читать дальше →

Видео лекций курса «Операционные системы» с Алексеем Брагиным в МГТУ им. Баумана

Reading time1 min
Views82K
Месяц назад здесь было объявлено, что image Алексей Брагин теперь читает авторский курс лекций об операционных системах. С тех пор Алексей успел провести уже несколько занятий, которые были записаны на видео. Думаю, вполне логичным шагом будет поделиться этими записями с сообществом. Что нам стоит поступить так же как, к примеру, сделал MIT?

Прошу принять во внимание, что это пилотный проект. А так конструктивная критика приветствуется, пожелания принимаются.
Приносим извинения за качество звука, смотреть лучше в HD и погромче.

Читать дальше →

10 девайсов, которые вы можете проапгрейдить, немного поковырявшись с электроникой

Reading time4 min
Views180K

Правило №1 в DIY: никогда не довольствуйтесь тем, что вам дано. Вы можете проапгрейдить или улучшить все что угодно обладая скромными познаниями и приложив немного усилий, особенно если вы немного знакомы с электроникой. Под катом 10 домашних предметов, которые вы можете круто прокачать, используя капельку припоя и ряд DIY ноу-хау.
Читать дальше →

Программисты старой школы: преклоняться или бояться?

Reading time8 min
Views51K
Это перевод поста, опубликованного в англоязычном блоге «Лаборатории Касперского».
Он не столько о вирусах, сколько о демосцене и лучших произведениях в этом жанре искусства.

Недавно Евгений Касперский опубликовал в своем блоге запись «Призраки вирус-оперы, или Ситхи Ассемблера», посвященную сверхкомпактным и мощным вредоносным приложениям, обнаруженным недавно, но написанным в стиле 15-летней давности. Мой возраст позволяет помнить этих парней и их блестящую работу – речь ведь не обязательно о создателях вирусов, они были лишь частью программистского сообщества, специализировавшегося на «ручном» написании кода и программировании на ассемблере. Это похоже на Джедаев и Ситхов из мира «Звездных войн» – существ, чье оружие, лазерные мечи, было крайне специфическим и, несмотря на это, воспринималось всеми остальными героями как одно из самых мощных (кроме шуток, спросите Йоду). Увы, похоже, людей, которые помнят этих мастеров-программистов, осталось трое (я, Касперский и Билл Гейтс). А если серьезно – в сегодняшнем мире, где драйвер мышки занимает 50 мегабайт, довольно трудно вообразить, на что способен хакер старой школы при совсем небольшом количестве выделенных ресурсов. Поэтому я решил показать, о чем говорит Евгений, на несколько ином примере – а вы уж решайте, насколько плохи новости об «олдскульных» авторах заразы.
Читать дальше →

Беспроводные коммуникации «умного дома»

Reading time13 min
Views150K
Когда начинающие (или продолжающие) «радиолюбители» наигрались со светодиодами и устали поворачивать сервы в различные положения, некоторые из них начинают прикладывать полученные знания к обычной бытовой сфере.
Как правило, это применение находится в двух областях — автомобиль или дом.
«Тюнить» авто лично мне как-то не интересно, а вот сделать собственное жилье чуточку «умнее» и комфортнее — достойный выбор.

Как же до такого дойти...

Дискретная математика для первокурсников: опыт преподавателя

Reading time12 min
Views124K
Сегодня у меня необычный текст, совершенно не связанный с машинным обучением (для новых читателей: этот текст – часть блога компании Surfingbird, в котором я в течение последнего года рассказывал о разных аппаратах машинного обучения в приложении к рекомендательным системам). В этом посте математической части практически не будет, а будет описание очень простой программки, которую я написал для своих студентов. Вряд ли кто-то узнает для себя из этого поста много содержательно нового, но мне кажется, что некоторую ценность представляет сама идея – многие люди просто не задумываются о том, что «и так можно». Итак…

Читать дальше →

Включение Samba-сервера на базе Ubuntu в домен AD

Reading time9 min
Views97K
В нашей предыдущей работе было рассмотрено, что такое Active Directory и Samba и в чем состоят преимущества их совместной работы. Также был рассмотрен процесс сборки Samba из исходников и включение ее в домен, и все это — из командной строки. Следует признать, что сборка чего-либо из исходников не является распространенной практикой в современных дистрибутивах Линукс. Гораздо чаще для установки программного обеспечения используются репозитории. Это позволяет сделать процесс установки более дружелюбным и простым для пользователя. Также могут автоматически вовлекаться дополнительные пакеты, необходимые для работы устанавливаемого ПО, что опять же серьезно облегчает жизнь и избавляет от необходимости изучать списки необходимых предустановленных пакетов.
Читать дальше →

Интернет-телевизор − самый недооцененный сегмент разработки

Reading time20 min
Views104K
Disclamer

image
Всем привет! В компании JetStyle существует отдел занимающийся разработкой для Smart TV. Мы хотим рассказать про технологию Smart TV, которая, как нам кажется, является весьма недооцененной в сфере разработки.

Мы уже несколько лет плотно занимаемся этой темой — накопилось много всего, хочется поделиться и, возможно, облегчить жизнь другим разработчикам.
Для удобства мы разделили рассказ на 2 блока. В первом поговорим о том, что это вообще такое, а во втором расскажем об особенностях дизайна и разработки под Smart TV и, конечно же, о куче проблем, с которыми мы сами столкнулись в процессе.
Окунуться в неизведанное

Information

Rating
3,830-th
Location
Киев, Киевская обл., Украина
Date of birth
Registered
Activity