Как стать автором
Обновить
21
Пётр @Radagastread⁠-⁠only

Пользователь

Отправить сообщение

Эксперимент: 10 вещей, которые я узнал, употребляя только воду в течение месяца

Время на прочтение10 мин
Количество просмотров250K
image

Мы продолжаем знакомить вас с переводами статей Chris Bailey, где он делится советами, которые извлек во время проекта «a Year of Productivity». Ранее мы публиковали статьи этого автора, они доступны в нашем блоге в разделе «личная продуктивность». Хотим напомнить, что общая цель всех статей, поделиться опытом автора как стать более успешным и эффективным везде: в личной жизни, отношениях с друзьями, самим собой и конечно же на работе (чем бы вы не занимались)!

Итак, даем слово Крису!
Читать дальше →
Всего голосов 114: ↑63 и ↓51+12
Комментарии133

Визуальный XML редактор Syntext Serna

Время на прочтение11 мин
Количество просмотров36K

Введение

С тех далеких времен как был изобретен язык разметки XML, он успел проникнуть во все сферы нашей повседневной компьютерной жизни. Мы его уже практически не замечаем; или по крайней мере старательно делаем вид. Вот тут он используется для хранения конфигурационных данных, а здесь он используется для удаленного вызова процедур (XML RPC). А вот тут он уже во всю стал основой для XHTML.

Эти три буквы, изменившие мир, можно любить или ненавидеть. Но есть, как минимум, одна область IT, в которой XML произвел не только переворот сравнимый по масштабности с революцией, но и стал его непоколебимым фундаментом. Я говорю о создании и поддержке документации.

Вы же ведь слышали о DocBook или fb2, не так ли?

Внимание: в статье присутствует графический материал.

Читать дальше
Всего голосов 9: ↑7 и ↓2+5
Комментарии7

TeamCity 9.0: импорт проектов, настройки в VCS, фоновая очистка и панды

Время на прочтение3 мин
Количество просмотров16K
На прошлой неделе вышла новая версия нашего CI сервера: TeamCity 9.0. Вышла она под лозунгом: “Ваш бессменный билд-инженер”, и это неспроста. Новая функциональность направлена во многом на облегчение работы билд-инженеров, а также позволяет билд-серверу работать 24/7, без перерывов на обед maintenance.

Конечно, список всех улучшений, как всегда, весьма внушительный, и с ним можно ознакомиться при желании. Однако здесь мы остановимся на ключевых фичах последнего релиза.



При чем тут панды?
Всего голосов 30: ↑26 и ↓4+22
Комментарии29

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

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

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

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

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


В этом посте я развею и подтвержу некоторые мифы и дам пару рекомендаций.
Читать дальше →
Всего голосов 90: ↑88 и ↓2+86
Комментарии80

Настройка TeamCity для новичков

Время на прочтение9 мин
Количество просмотров161K
Эта статья в первую очередь пригодится тем, кто использует тот же стек технологий, что и наша команда, а именно: ASP.NET, C#, NUnit, Selenium 2, git, MSBuild. Будут рассмотрены такие задачи, как интеграция с git, сборка C#-проектов, NUnit-тесты (как модульные, так и тесты UI), а также деплой на сервер. Впрочем, наверняка найдётся интересное и для других пользователей, кроме разве что съевших на этом вопросе собаку. Но они опять же смогут обратить внимание на ошибки в статье или что-то посоветовать: например, как оптимизировать фазу деплоя.
Читать дальше →
Всего голосов 39: ↑35 и ↓4+31
Комментарии12

Идеальный программист

Время на прочтение2 мин
Количество просмотров41K
Доброго времени. В конце октября был хороший пост «Умей говорить «нет» и умей говорить «да»».
Мы оперативно запросили электронные права на книгу, из которой автор поста брал идеи.

image

Идеальный программист. Как стать профессионалом разработки ПО
Автор: Р. Мартин
Прототип: The Clean Coder: A Code of Conduct for Professional Programmers
Читать дальше →
Всего голосов 33: ↑24 и ↓9+15
Комментарии64

Сводная таблица по поддержке C++ 11/14/17

Время на прочтение5 мин
Количество просмотров65K
Как любому C++ разработчику, следящему за новинками в отрасли и стандартами в частности, мне стало интересно, насколько полно вообще поддерживается стандарт C++ 11 (а также 1y и 1z) разными компиляторами? Да, существуют разные сводные таблицы, но чаще всего это сравнение двух компиляторов или двух версий одного компилятора, либо сводная таблица, но уже устаревшая, либо вообще неполный список. В общем, сел я да и сделал полную таблицу (на основе списка Clang-a и GCC) по четырем компиляторам: Clang, GNU C++, MSVC и Intel C++.
Таблица под катом
Всего голосов 73: ↑71 и ↓2+69
Комментарии46

Креативное программирование: openFrameworks — установка и пример визуализации музыки

Время на прочтение12 мин
Количество просмотров28K


Когда вы последний раз программировали на C++?

Может быть это ваша каждодневная работа, а мой последний (до вчерашнего дня) проект на С++ был в далеком 2000 году — дипломный проект на базе Visual Studio 4.2 (хорошая, кстати, система была), и с тех пор перешёл в веб-разработку — скриптовые языки.

То есть сейчас я — начинающий на C++, но это не помешало мне за пару часов развернуть инфраструктуру, сделать и собрать мультимедийное приложение на C++, которое визуализирует музыку с разными эффектами. И в этом мне помогли:
  • открытый фреймворк для создания интерактивных приложений — openFrameworks
  • бесплатное IDE Code::Blocks

Посмотреть, что же у меня получилось

А начиналось всё так — после очередного прослушивания музыки от одного композитора из Самары, я подумал — было бы интересно попробовать сделать визуализацию музыки, и обратился к Денису Перевалову (кто не первый год занимается созданием разнообразных интерактивных арт/перформанс систем) — он мне ответил, что это делается без проблем на базе openFrameworks и что в примерах к его книге (а он автор книги по openFrameworks), есть реализация такой задачи.

То есть мне нужно было всего лишь — установить фреймворк, доработать и собрать пример на С++… Об этом процессе — установке, настройки, и кратком описании openFrameworks и будет эта статья.

openFrameworks — это система с помощью которой можно запрограммировать интерактивное мультимедийное приложение, то есть арт, перформансы и т.п., она бесплатная, открытая и кроссплатформенная система (linux, mac, win), и так же есть версии для ARM (к примеру для RPi), и сборки для iPhone и Android.

Кстати на КДПВ — одна из инсталляций на базе openFrameworks (Семь Видеогидов. выставлено на ВДНХ в экспозиции Политехнического музея. Москва, 2014).
Читать дальше →
Всего голосов 29: ↑24 и ↓5+19
Комментарии6

C++14 для Qt программистов

Время на прочтение5 мин
Количество просмотров49K
В этой статье описывается каким образом изменения, принесенные стандартом С++14, отразились или могут отразиться на разработке Qt приложений. Данная статья ориентирована не только на Qt программистов, но также на всех тех, кому интересно развитие С++. Автор оригинала — Olivier Goffart, являющийся одним из разработчиков Qt moc (meta-object compiler).
Читать далее
Всего голосов 43: ↑43 и ↓0+43
Комментарии20

Краткий конспект по языку JavaScript

Время на прочтение15 мин
Количество просмотров114K
Я —.NET разработчик. Но в последнее время всё чаще сталкиваюсь с JavaScript. Причём, процентах в 50 случаев я что-то на нём пишу, в остальных 50 — разбираюсь с чужим кодом, да ещё и прошедшим через минификацию, а иногда и обфускацию. В этой статье захотелось поделиться теми моментами, которые мне показались важными для понимания языка и эффективной работы с ним. Тут не будет ничего нового или неизвестного для людей, уже имевших дело с языком, и не будет чего-то такого, чего нельзя найти в других источниках. Для меня статья будет полезна как способ лучше разобраться в предмете, для читателей, я надеюсь, — как повод освежить знания.

Брендан Айк упоминал, что JavaScript был создан за 10 дней. Думаю, идея вынашивалась дольше. Как бы то ни было, язык получился и с тех пор только набирает популярность. Особенно после появления AJAX.

JavaScript — язык со слабой динамической неявной типизацией, автоматическим управлением памятью и прототипным наследованием.

JavaScript состоит из трёх обособленных частей:

  • ядро (ECMAScript),
  • объектная модель браузера (Browser Object Model или BOM),
  • объектная модель документа (Document Object Model или DOM).


В статье, в основном, пойдёт речь о ядре. Конечно, в примерах кода будут использоваться элементы DOM и BOM, но заострять на них внимание не буду.
Читать дальше →
Всего голосов 75: ↑65 и ↓10+55
Комментарии20

QML: анимированная иконка-«бутерброд» в стиле Material Design за 20 минут

Время на прочтение6 мин
Количество просмотров38K
Привет, Хабр.

Многие разработчики, интересующиеся разработкой пользовательских интерфейсов (да и просто пользователи Android) уже успели ознакомиться с новой концепцией интерфейса Material Design, активно продвигаемой Google в рамках выпуска Android 5.0. Знакомясь с руководством по оформлению приложений и внимательно разглядев недавно обновившийся Google Play, я обратил внимание на один очень симпатичный компонент — иконку меню (в народе известную как hamburger icon), анимированно превращающуюся в иконку «назад», и решил реализовать такой компонент на Qt с использованием декларативного языка описания интерфейса QML.



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

Читать дальше →
Всего голосов 56: ↑37 и ↓19+18
Комментарии19

Введение в Osquery от Facebook

Время на прочтение4 мин
Количество просмотров16K

Предисловие


Данная публикация — относительно вольный перевод опубликованоой в блоге Facebook статьи «Introducing osquery».

Введение в osquery


Мониторинг состояния вашей системы в реальном времени очень важен. В Facebook мы разработали фреймворк под названием osquery, который позволяет взглянуть на низкоуровневый мониторинг операционной системы по-новому.

Osquery представляет операционную систему как высокопроизводительную реляционную базу данных. Этот подход позволяет вам писать SQL запросы, чтобы легко и эффективно получать информацию о вашей системе. С osquery текущее состояние ОС представляется в виде SQL таблиц из которых вы можете получить информацию о:

  • запущенных процессах;
  • загруженных модулях ядра;
  • открытых стевых соединениях.

Читать дальше →
Всего голосов 31: ↑28 и ↓3+25
Комментарии6

Proxygen — HTTP-фреймворк для С++ от Facebook

Время на прочтение8 мин
Количество просмотров18K
Proxygen — это коллекция библиотек для использования протокола HTTP на С++, включающая в числе прочего очень простой в использовании HTTP-сервер. Кроме классического HTTP/1.1 фреймворк Proxygen поддерживает SPDY/3 и SPDY/3.1. Вскоре также будет полностью поддерживаться HTTP/2.

Proxygen не задумывался как замена Apache или nginx — эти проекты сфокусированы на создании достаточно гибких и конфигурируемых веб-серверов, позволяющих благодаря тонкой настройке добиться максимальной производительности. Задачей Proxygen является работать достаточно хорошо на дефолтных настройках, давая программисту простые в использовании веб-сервер и веб-клиент, легко интегрирующиеся в уже существующие проекты. Мы хотим помочь людям строить веб-сервисы на С++ с меньшими затратами и мы верим, что Proxygen — отличный фреймворк для этого. Вы можете почитать документацию по нему и подключиться к разработке на Github.

Читать дальше →
Всего голосов 36: ↑34 и ↓2+32
Комментарии19

Logger с функциями-членами, которых нет

Время на прочтение7 мин
Количество просмотров7.5K
Был у меня в одном проекте класс-обертка над log4cpp. В один прекрасный день посчитал, что его интерфейс перестал мне нравится, решил немного переделать, потом переделал еще немного. Потом мне пришла мысль, почему бы не использовать обобщенное программирование? И тут завертелось… а нужно мне было только вариативное поведение логирования, то есть, вывод на экран или в файл или еще куда либо в зависимости от выбранного типа.

Читать дальше →
Всего голосов 16: ↑12 и ↓4+8
Комментарии8

Идеальная передача и универсальные ссылки в C++

Время на прочтение9 мин
Количество просмотров159K
Недавно на isocpp.org была опубликована ссылка на статью Eli Bendersky «Perfect forwarding and universal references in C++». В этой небольшой статье есть простой ответ на простой вопрос — для решения каких задач и как нужно использовать rvalue-ссылки.
Узнать этот ответ
Всего голосов 56: ↑56 и ↓0+56
Комментарии28

Что же там такого тяжелого в обработке исключений C++?

Время на прочтение12 мин
Количество просмотров71K
image
Исключения и связанная с ними раскрутка стека – одна из самых приятных методик в C++. Обработка исключений интуитивно понятно согласуется с блочной структурой программы. Внешне, обработка исключений представляется очень логичной и естественной.

Аккуратное использование стековых объектов позволяет создавать очень эффективный и безопасный код, где, в отличие от систем со сборкой мусора, сохраняется локальность ссылок, что дает возможность уменьшить число обращений к системе за памятью, снизить её фрагментацию, более эффективно использовать кэш памяти.

Тем не менее, в C++, исключения традиционно рассматриваются буквально как исключительные ситуации, связанные с восстановлением после ошибок. Трудно сказать, является ли это причиной или следствием того, что реализация обработки исключений компиляторами чрезвычайно дорога. Попробуем разобраться почему.
Читать дальше →
Всего голосов 91: ↑90 и ↓1+89
Комментарии38

Доклады конференции CppCon 2014

Время на прочтение6 мин
Количество просмотров13K
Недавно в городе Белвью (штат Вашингтон) прошла одна из самых больших конференций С++ разработчиков — CppCon 2014. В течение пяти дней ведущие программисты таких компаний как Microsoft, Google, Dropbox, Citrix, Embarcadero, Ubisoft, разработчики стандарта языка, создатели компиляторов С++ и члены комьюнити opensource-продуктов представляли свои доклады, делились мнениями о будущем языка, предлагали новые идеи. Ниже я представлю выборку наиболее понравившихся мне видео с небольшими комментариями от себя. Хочется отметить, что вся конференция просто пропитана духом возрождения С++ в виду распространения стандартов С++11\14, люди рассказывают почему выбор С++ оказался для них верным, как они успешно мигрировали с C#\Java\Objective-C на С++ и не пожалели об этом и т.д.

Удачного просмотра!

Докладчики из Dropbox рассказывают о том, как они разрабатывают на С++ кроссплатформенные мобильные приложения.
Когда-то у Дропбокса были классические мобильные приложения: Java-код для Android и Objetive-C для iOs. Однако со временем команде разработчиков надоело писать одно и то же по 2 раза на разных языках и они пришли к выводу о необходимости создания общей кодовой базы на С++. Со временем оказалось, что какую бы архитектуру не имело приложение (MVC, MVVM или что-нибудь другое), фактически весь код кроме вьюх может быть вынесен в С++. Действительно, на С++ можно реализовать модель данных, контроллеры, бизнес-логику, вспомогательные библиотеки для работы с сетью, базами данных, парсингу и т.д. Всё, что остаётся на долю Java и Objective-C — нарисовать «родные» для данной платформы кнопки\списки\лейбы на вьюхах. И этот подход существенно более прагматичен, чем писать всё дважды.

Первое видео более обзорное, второе более практическое:


Читать дальше →
Всего голосов 26: ↑26 и ↓0+26
Комментарии7

Лучшие плагины для Sublime Text

Время на прочтение5 мин
Количество просмотров642K

WebInspector


Мощный инструмент для дебаггинга JavaScript, полноценный инспектор кода для Sublime. Фичи: установка брейкпоинтов прямо в редакторе, показ интерактивной консоли с кликабельными объектами, остановка с показом стек трейса и управление шагами дебаггера. Все это работает на ура! А еще есть Fireplay от Mozilla, который позволяет подключаться к Firefox Developer tools и максимально простой дебаггер JSHint.



Читать дальше →
Всего голосов 116: ↑114 и ↓2+112
Комментарии101

Rosetta — самая интересная космическая миссия 2014 года

Время на прочтение6 мин
Количество просмотров152K
В 2014 году в Солнечной системе произойдут два захватывающих события, которые стоят ожидания. По иронии судьбы, они оба связаны с кометами. Сегодня расскажу об одном из них.



Этим летом и осенью в космосе состоится кульминация одной из самых интересных исследовательских операций, сравнимых по значимости с посадкой марсохода Curiosity — реализация многолетней программы Rosetta. Этот космический аппарат стартовал в 2004 году и долгие десять лет летал во внутренней Солнечной системе, совершая корректировки и гравитационные маневры, только для того, чтобы выйти на орбиту кометы (67P) Чурюмова-Герасименко. Rosetta должна настигнуть комету, как следует изучить с расстояния, и высадить спускаемый аппарат Philae. Тот проведет свою часть исследований и совместно они расскажут нам о кометах так много, как это только возможно в роботизированной миссии.
Читать дальше →
Всего голосов 219: ↑217 и ↓2+215
Комментарии80

У Age of Empires 2 появилось дополнение (первое за 13 лет)

Время на прочтение1 мин
Количество просмотров54K


Да, бывают долгострои в игровом мире. К известнейшей игре Age of Empires 2 вышло первое за много лет дополнение, получившее название The Forgotten. Это дополнение уже можно купить в соответствующем сервисе Steam за 249 рублей (или 7,99 долларов США). Нужно иметь в виду, что дополнение выпущено для HD-версии игрушки. Игра Age of Empires II HD + The Forgotten стоит 16,19 долларов США.

Читать дальше →
Всего голосов 37: ↑33 и ↓4+29
Комментарии18

Информация

В рейтинге
Не участвует
Откуда
Tilburg, Noord-Brabant, Нидерланды
Дата рождения
Зарегистрирован
Активность