Насколько медленны iostreams?

Автор: admin от 18-12-2014, 22:10, посмотрело: 220

Потоки ввода-вывода в стандартной библиотеке C++ просты в использовании, типобезопасны, устойчивы к утечке ресурсов, и позволяют простую обработку ошибок. Однако, за ними закрепилась репутация «медленных». Этому есть несколько причин, таких как широкое использование динамической аллокации и виртуальных функций. Вообще, потоки — одна из самых древних частей STL (они начали использоваться примерно в 1988 году), и многие решения в них сейчас воспринимаются как «спорные». Тем не менее, они широко используются, особенно когда надо написать какую-то простую программу, работающую с текстовыми данными.

Вопрос производительности iostreams не праздный. В частности, с проблемой производительности консольного ввода-вывода можно столкнуться в системах спортивного программирования, где даже применив хороший алгоритм, можно не пройти по времени только из-за ввода-вывода. Я также встречался с этой проблемой при обработке научных данных в тестовом формате.

Сегодня в комментариях у посту возникло обсуждение о медленности iostreams. В частности, freopen пишет
Забавно смотреть на ваши оптимизации, расположенные по соседству со считыванием через cin :)

а aesamson даёт такую рекомендацию
Можно заменить на getchar_unlocked() для *nix или getchar() для всех остальных.
getchar_unlocked > getchar > scanf > cin, где ">" означает быстрее.


В этом посте я развею и подтвержу некоторые мифы и дам пару рекомендаций.

Категория: Программирование, iOS

 

Почему и как Яндекс меняет Tolstoy Startup Camp

Автор: admin от 18-12-2014, 20:06, посмотрело: 739

Мы открыли набор в новый Tolstoy Startup Camp. Это мастерская Яндекса, где мы помогаем запускать стартап. Она будет уже четвертой по счёту. Предыдущие три дали много не только его участникам, но и нам — мы поняли, как и что можно изменить в кемпе. В первых трех наборах мы были готовы работать с самыми разными проектами в сфере IT при условии, что нам нравилась идея, мы верили в команду или видели потенциал для развития бизнеса.

Сейчас мы решили, что пригласим в TSC только тех людей, которые уже создавали проекты, дизайн или программы — тех, кто умеет что-то делать руками. Опыт прошлых кемпов нам показал, что главное, чему может научить Яндекс — это делать технологические и околотехнологические продукты для массовой аудитории. Именно в этом мы обладаем большей экспертизой и умениями. Как только мы берёмся за что-то другое, снижается полезность и эффективность не только для нас, но и для стартапов.

Почему и как Яндекс меняет Tolstoy Startup Camp

Особенности Яндекса проявляются во всём: в разработке, в дизайне — где угодно. Чтобы все могли понять, чем ценен наш опыт и пригодится ли он именно вам, мы попросили двух человек из очень разных частей Яндекса рассказать, что, на их взгляд есть уникального в умениях Яндекса и что мы умеем делать лучше всего. Они оба работали с ребятами и читали лекции в предыдущих кемпах.

Один из них — Анатолий anatolix Орлов, который работает в Яндексе уже почти 10 лет. Первые два года в Яндексе он писал Маркет, а потом долго занимался производительностью поиска. Второй — Костя Горский, арт-директор Яндекс.Браузера. Он в Яндексе чуть больше четырех лет. Недавно его команда представила новую концепцию Браузера.
Читайте под катом не только их разные мнения, но и подробности о кемпе.

Категория: Веб-разработка, Яндекс

 

Настройка универсальных пультов

Автор: admin от 18-12-2014, 19:25, посмотрело: 3533

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

Категория: Железо » Старое железо

 

Хабр, знакомься — новый LinguaLeo с персональной системой обучения иностранному языку

Автор: admin от 18-12-2014, 17:34, посмотрело: 245

Хабр, знакомься — новый LinguaLeo с персональной системой обучения иностранному языку

Мы видим в персонализации будущее образования, ведь каждый человек учится в собственном темпе и преследует личную цель. Кто-то предпочитает заниматься по одним материалам, а кто-то — по другим; у кого-то время на обучение есть днем, а у кого-то — вечером. Наша команда почти год ударно трудилась над тем, чтобы учесть все это и предоставить своим пользователям возможность учить английский по персональному плану. Итак, мы рады анонсировать Новый LinguaLeo! Новая версия сервиса каждому пользователю представляет индивидуальный план обучения, который отображается на новом Dashboard, а также интервальную тренировку и UGC перевод.

Проведённые тесты новой системы уже показали эффективность нового формата — выросло вовлечение. Теперь Саша, брат вашего друга и будущий выпускник, будет готовиться к ЕГЭ только по тем материалам, которые будут ему и полезны и интересны. Любитель путешествий Валера, наконец-то, сможет произнести сотруднику аэропорта: «What's the charge for excess baggage?», а ваша любимая подружка, красотка-хирург Тамара из Уфы, поймет, о чем говорят коллеги на международном симпозиуме.

Довольно простая с виду система «под капотом» прячет технологии, которых больше нигде нет, как говорит Артем Логинов, наш VP of Product. Если мы сумели вас заинтриговать — идем под хабракат, там вы узнаете подробности о наших ноу-хау.

Категория: Программирование » Веб-разработка

 

BLE от Nordic Semiconductor. Начало работы со стеком с применением чипа nRF51822

Автор: admin от 18-12-2014, 17:05, посмотрело: 345

BLE от Nordic Semiconductor. Начало работы со стеком с применением чипа nRF51822
Здравствуйте.

Какое-то время я вынашивал идею написать статью о данном стеке, его особенностях и применении с использованием чипа nRF51822. А недавняя публикация "BLE стек от TI" заставила меня сесть и попытаться превратить идею в что-то материальное.

Nordic Semiconductor предоставляет очень интересное, на мой взгляд, решение. С одной стороны мощный чип на ядре ARM Cortex-M0, с другой стороны постоянно развивающееся ПО стека и набора библиотек, входящих в состав SDK.

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

Категория: Программирование

 

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

Автор: admin от 18-12-2014, 16:45, посмотрело: 212

Выкладываем доклад мобильного архитектора ТКС Банка Дмитрий Тарасова «Практический пример переиспользования кода. Как повысить качество и ускорить разработку» с конференции мобильных разработчиков #MBLTDev, которая прошла в конце октября.


Презентация

В разработке может сложиться ситуация, когда у вас есть несколько приложений с общей логикой и поведением интерфейса. Дмитрий Тарасов рассказывает о пути, по которому развивалась разработка мобильного банка и кошелька ТКС для Android. Откровенный рассказ о последствиях нетехнологичных решений в стиле copy-paste общего кода из приложения в приложение. Следующий шаг — общая библиотека. Как ее оформить? В виде jar? Оформив, как ее подтягивать в проекты? Grandle или subtree/submodule? Что делать с неравномерным развитием потребителей библиотеки? Решить этот вопрос выстраиванием правил ветвления? Как это вписать в стандартную связку bug tracker — code review — CI (в случае ТКС Jira + Stash + TeamCity)? Что будет, если к изначальным двум приложениям добавится еще два, причем у последнего будет другой backend? Смотрите видео выступления.

Категория: Веб-разработка, Game Development, Android

 

Достойный встраиваемый цифровой усилитель НЧ своими руками за разумные деньги

Автор: admin от 18-12-2014, 16:39, посмотрело: 1395

Добрый день, Хабр!

Наша прошлая статья о DIY-аудиотехнике вызвала довольно большой резонанс и сегодня мы хотели бы рассказать о другой нашей разработке из области аудио — высококачественном УНЧ. Устройство было создано Олегом Тетушкиным для собственных нужд. Но в результате усилитель прижился в офисе. Собран, разумеется, из того, что плохо лежало было под рукой на складе. В данном случае он собран в самодельном корпусе. Но по сути, его можно встроить куда угодно — хоть в мебель. На что хватит фантазии.

В комментах к вышеупомянутой статье разгорелся спор о том, что можно и что нельзя называть HiFi или даже просто качественным. Поэтому хочется пояснить — определение «качественный» основывается исключительно на нашем чувстве прекрасного. Мы считаем, что звук данного усилителя вполне достойный и удовлетворит любого среднего человека. Хотя у аудиофилов может быть другое мнение по этому поводу.

Достойный встраиваемый цифровой усилитель НЧ своими руками за разумные деньги
Вот такой красавец должен получиться в результате

Категория: Железо » Сделай Сам

 

Установка и настройка VPS с CentOS 6.x парой команд с VestaCP

Автор: admin от 18-12-2014, 15:57, посмотрело: 506

Приветствую, Хабр!

Для своего продукта я сделал инсталлятор на чистый VPS с CentOS 6.x и оперативной памятью 512MB+. Это такой VPS, который можно приобрести у DigitalOcean.com за $5 в месяц. Но инсталлятор получился довольно универсальный, и его можно форкнуть с гитхаба, чтобы исключить ненужные вам компоненты.

В качестве панели управления была выбрана VestaCP, о которой я раньше и не слышал, так как несколько лет слепо пользуюсь cPanel/WHM, в последнее время вместе с CloudLinux. Но это платная панель, и CloudLinux тоже платный, и последнее дело просить у пользователей еще за что-то платить, кроме как за продукт.

Категория: Системное администрирование, Linux

 

День рождения Perl и лучшие решения Golf от Moscow.pm

Автор: admin от 18-12-2014, 15:52, посмотрело: 254

День рождения Perl и лучшие решения Golf от Moscow.pmСегодня исполняется 27 лет со «дня рождения» одного из самых популярных на сегодня языков программирования — Perl. На нём создано несметное множество приложений и интернет-ресурсов, в том числе и имеющие многомиллионные аудитории, и соответствующие финансовые обороты. За примерами далеко ходить не придётся: Amazon, Yahoo!, Slashdot. Последние 20 лет он входит в десятку наиболее используемых языков, несмотря на слухи о своей кончине. Однако многомиллионная армия Perl-программистов, ежегодно выдающая на-гора множество продуктов, убедительно опровергает инсинуации верблюдоненавистников. Как говорится, собака лает — караван идёт. С момента своего появления в 1987 году, Perl взрастил уже два поколения программистов, и нет никаких причин отказываться от Жемчужного Корабля Пустыни ещё лет 30 как минимум. Так что мы с удовольствием поздравляем всех Perl-программистов с днём рождения их «родного» языка, Ларри Уоллу желаем долголетия календарного и творческого, чтобы ему хватило задора на создание ещё пары версий Perl.

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

Категория: Программирование

 

Сканеры безопасности: автоматическая валидация уязвимостей с помощью нечетких множеств и нейронных сетей

Автор: admin от 18-12-2014, 15:35, посмотрело: 1352

Сканеры безопасности: автоматическая валидация уязвимостей с помощью нечетких множеств и нейронных сетей


Сейчас в мире существует большое количество сканеров информационной безопасности разных компаний (в том числе — MaxPatrol, XSpider и анализатор кода Application Inspector производства Positive Technologies). Подобные инструменты различаются ценой, качеством сканирования, типами определяемых уязвимостей, методами их поиска и еще десятками параметров.

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

Как правило, результатом работы любого сканера безопасности является список обнаруженных уязвимостей, полученный в процессе анализа веб-приложения. Тот факт, что в сканерах используются эвристические алгоритмы, приводит к проблеме наличия ложных срабатываний и заполнению списка несуществующими в реальности уязвимостями (false positives). А это, в свою очередь, приводит к необходимости выделить ИБ-эксперта для проверки работы сканера.

Для подтверждения наличия уязвимости предлагается использоваться «эталонные» списки уязвимостей, содержащихся в похожих веб-приложениях. Аналитик может использовать такие списки для выявления наиболее вероятных уязвимостей тестируемого продукта и отсеивать очевидные false positives.

Категория: Информационная безопасность

 
Назад Вперед