В жизни любой достаточно большой программы наступает момент, когда нужно вывести наружу какой-нибудь API — для плагинов, для интеграции с другими системами, для автоматизации и т.д. Для этого есть много разных технологий, но как-то так исторически сложилось, что сейчас принято делать API в виде REST-сервисов. В принципе, если не гнаться за экономией каждого байта и микросекунды, то в этом есть смысл: HTTP-запрос сделать легко из любого языка, это хорошо работает и локально, и по сети, не нужно сильно глубоко погружаться в недры сетевых протоколов.
Давайте посмотрим, как к уже существующей программе на C++ можно быстренько прикрутить Web API, используя для этого библиотеку POCO.
Читать полностью »
Метка «c++» - 39
Добавляем Web API для программы на C++ с помощью библиотеки POCO
2013-04-30 в 6:53, admin, рубрики: api, c++, Программирование, метки: api, c++Очень быстрое переключение пользователей Windows
2013-04-26 в 13:25, admin, рубрики: WinAPI, windows, Песочница, хоткеи, метки: c++, WinAPI, хоткеи Хочу поделиться с вами лайфхаком, которым пользуюсь ежедневно уже на протяжении нескольких лет. Работает безупречно, сберегает время. Так повелось, что у нас с женой разные учетные записи на одном домашнем компьютере. Это удобно: у каждого свой рабочий стол, свои обои, предпочтения, настройки приложений, кукисы в браузере. Я даже не представляю сейчас, как можно работать под одной учеткой. Но (без этого “но” не было бы и статьи), есть одна маленькая проблема. Переключение пользователей. Как это делается обычно: Пуск –> некая кнопочка, в зависимости от системы -> сменить пользователя. Появляется экран выбора пользователя. Тыкаем в нужного пользователя. Да, есть сочетание клавиш Win+L. После которого опять надо ткнуть смену пользователя и иконку. Итого минимум 3 действия. В Windows 8 сделали заметное улучшение в этом плане. нажимаем Win + иконку пользователя и в списке кликаем на другого. Но это без учета, что на учетке есть пароль. Вот тут-то уже начинаются существенные задержки. Вводить пароль каждый раз при каждом переключении надоест очень быстро. А пароль на свою учетку мне пришлось поставить, так как нужен был удаленный доступ. Да, можно было для удаленного доступа сделать другую учетку, но мой лайфхак уже был готов к тому моменту, и прекрасно работал вне зависимости от того, есть пароли на учетках или нет.
Читать полностью »
Async/await в Windows Phone 7.x и 8
2013-04-26 в 12:23, admin, рубрики: .net, async, await, windows phone, разработка под windows phone, метки: .net, async, await, c++, windows phoneЗдравствуйте, уважаемыее!
В своей дебютной статье я хотел бы рассказать об использовании механизма async/await в C# 5.0 (и .NET Framework 4.5) при программировании для Windows Phone 7.x и 8.
Я занимаюсь программированием не только на работе, в последнее время я увлёкся разработкой под мобильные операционные системы и нахожу это весьма занимательным. А поскольку я давно погрузился в мир Microsoft, то первой и пока единственной платформой для меня стала Windows Phone.
Читать полностью »
Хлебные крошки (breadcrumbs) в asp.net MVC3
2013-04-26 в 11:53, admin, рубрики: .net, asp.net mvc 3, razor, перевод, переводы, Песочница, хлебные крошки, метки: asp.net mvc 3, c++, razor, перевод, хлебные крошки В данном посте будет рассмотрен процесс создания меню навигации и хлебных крошек в проекте asp.net MVC3. Сначала мы создадим пустой проект, потом добавим sitemap провайдер, несколько контроллеров и представлений и в итоге заставим провайдер вывести хлебные крошки.
Перевод статьи: edspencer.me.uk/2011/09/20/mvc-sitemap-provider-tutorial-2-breadcrumbs/
Читать полностью »
Создаем велосипеды для Gmail вместе
2013-04-26 в 11:06, admin, рубрики: .net, gmail, велосипеды, Песочница, Программирование, метки: .net, c++, gmail, велосипедыМы все любим велосипеды.
Даешь больше велосипедов, хороших и разных, с квадратными и треугольными колесами!!!
Я долго пользуюсь почтой gmail. Когда я еще сидел на опере, я пользовался встроенным почтовым клиентом и все было хорошо. Потом я пересел на хром, стал использовать веб-версию почты, и о сообщениях узнавал с задержкой — ну не нравились мне клиенты, которые нужно ставить, что-то в них настраивать…
В общем, со временем вручную переходить на почту надоело, и я сел творить еще один велосипед. Кому лень читать, ссылка на проект (С#). Dropbox.
Остальные могут почитать
Читать полностью »
Как я писал Pacman’a, и что из этого получилось. Часть 1
2013-04-26 в 7:16, admin, рубрики: Android NDK, c++, game development, jni, pacman, Разработка под android, метки: Android NDK, c++, jni, pacman Здравствуйте, уважаемые читатели!
Последние несколько месяцев, в свободное время, я занимался разработкой клона знаменитой игры Pacman для ОС Android. Как это было, и что из этого вышло я хочу рассказать.
Изменение даты файла согласно EXIF
2013-04-25 в 6:30, admin, рубрики: .net, Программирование, метки: .net, c++ После приобретения цифровой мыльницы у меня возникла необходимость каталогизировать отснятые файлы хотя бы по временам года. Но, как оказалось, после копирования с камеры дата изменения файла устанавливается в дату копирования и потом для того, чтобы узнать реальное время съемки, необходимо смотреть EXIF информацию или атрибуты файлы. Конечно, любая уважающая себя программа по просмотру файлов умеет извлекать из EXIF дату съемки, но мне данный способ неудобен.
Вот я и решил написать небольшую программу на C# которая ищет *.jpg файлы в текущем или указанном каталоге, извлекает время съемки и, в случае если это время не совпадает с временем изменения файла, то устанавливает это время согласно дате и времени съемки. Надеюсь, найдутся те, кому она пригодится.
Да, возможно есть графические программы в которые встроен аналогичный функционал, но я еще преследовал цель написать чего-нить на C#
Читать полностью »
Организация хранения промежуточных таблиц для алгоритма CART
2013-04-24 в 8:17, admin, рубрики: Алгоритмы, Песочница, метки: c++, CART, Алгоритмы Доброго времени суток всем читающим. Сначала изложу предысторию данного вопроса. Началось все с того что знакомый попросил меня по работе помочь ему сделать приложение (WinForm на C#), которая бы алгоритмом CART создавала бинарное дерево решений, исходя из статистических данных находящихся в таблице на форме. Суть в том, чтобы делить исходную таблицу на 2 части по вычисляемым критериям. Для того чтобы поделить исходную таблицу, мы должны найти среднее по каждому из столбцов:
Читать полностью »
Захват видео с камеры и передача его по сети
2013-04-24 в 7:37, admin, рубрики: .net, aforge.net, MJPEG, метки: .net, aforge.net, c++, MJPEGПредисловие
Не так давно, возникла необходимость захвата видео с web камеры и передавать его по сети используя .Net.
Так как с подобной задачей я столкнулся впервые, то первым делом начал искать информацию по этому вопросу.
Как выяснилось, что в чистом .Net нет поддержки работы с web камерами. Перебрав несколько различных библиотек, свой выбор остановил на Aforge.net.
Aforge.net — это фреймворк для решения целого ряда задач, из которого нам понадобится библиотеки AForge.Video.
Захват изображения
Для захвата видео с устройства видео ввода существует класс AForge.Video.DirectShow.VideoCaptureDevice
. Ему необходимо задать моникер устройства с которого будет происходить захват. Так же необходимо задать обработчик события NewFrame
. Это событие возникает каждый раз, когда с устройства будет получен новый кадр, который и передается в обработчик в виде объекта Bitmap
, где его уже можно обработать:
private void VideoSourceNewFrame(object sender, AForge.Video.NewFrameEventArgs eventArgs)
{
var img = (Image) eventArgs.Frame;
using (var ms=new MemoryStream())
{
img.Save(ms,ImageFormat.Jpeg);
//Сохраняем изображение в массив байт, для последующего формирования mjpeg
_bufImage = ms.ToArray();
}
}
Удобная библиотека для работы с тегами медиафайлов
2013-04-24 в 7:33, admin, рубрики: .net, id3, говнокодинг для личных нужд, Песочница, тэги, метки: .net, c++, id3, говнокодинг для личных нужд, тэги Приветствую всех хабравчан. Одним прекрасным вечером, в мою голову пришла идея отсортировать свои гигабайты музыки. А если точнее, то захотелось просто-напросто удалить все треки с низким битрейтом, дабы не раздражали слух и место почем зря не занимали. Можно было бы, конечно, сделать все вручную, но, во-первых, лень, во-вторых, на это ушло бы несколько недель, если не месяцев. Да и вообще, программист я или где? С такими вот незатейливыми рассуждениями я и пришел к мысли, что стоило бы автоматизировать процесс. Вопрос языка на котором будет производиться автоматизация особо не стоял: на работе пишу на C#, дома тоже есть экспресс версия Visual Studio, значит так тому и быть. Осталось только узнать как с помощью этих самых шарпа да студии узнать битрейт файлов, чтобы не удалить чего лишнего. Недолгий, но продуктивный гуглеж привел меня к одной замечательной библиотеке.
Читать полностью »