<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
<channel>
	<title>Хабрахабр:  Метки / c</title>
	<link>http://habrahabr.ru/rss/tag/c/</link>
	<description><![CDATA[]]></description>
	<language>ru</language>
	<managingEditor>editor@habrahabr.ru</managingEditor>
	<generator>habrahabr.ru</generator>
	<pubDate>Sat, 11 Feb 2012 00:16:08 GMT</pubDate>
	<lastBuildDate></lastBuildDate>
	<image>
		<link>http://habrahabr.ru/</link>
		<url>http://habrahabr.ru/i/logo.gif</url>
		<title>Хабрахабр</title>
	</image>
	
		
		
		
			
		<item>		
			<title><![CDATA[.NET / [Перевод] Реализация Code Action с помощью Roslyn]]></title>
			<guid isPermaLink="true">http://habrahabr.ru/blogs/net/137937/</guid>
			<link>http://habrahabr.ru/blogs/net/137937/</link>
			<description><![CDATA[Roslyn Services API позволяют легко реализовывать расширения, которые находят и устраняют проблемы в коде прямо в Visual Studio. Roslyn Services API доступно как часть <a href="http://www.microsoft.com/download/en/details.aspx?id=27746">Roslyn CTP</a>.<br/>
<br/>
В этом посте мы реализуем расширение для Visual Studio, которое детектирует вызовы метода Count() у Enumerable, после чего результат проверяется на равенство больше нуля, например, someSequence.Count() &gt; 0. Проблема, заключающаяся в коде, в том, что Count() должен пройтись по всей последовательности, прежде чем вернуть результат. Более правильным подходом в данном случае является вызов метода Enumerable.Any().<br/>
<br/>
Чтобы исправить это, мы реализуем CodeIssueProvider, детектирующий проблему, и CodeAction, который заменяет условие на вызов Enumerable.Any(), как и требуется. Т.е. наш CodeAction изменит что-то типа someSequence.Count() &gt; 0 на someSequence.Any().<br/>
<div class="habracut"> <a class="habracut" href="http://habrahabr.ru/blogs/net/137937/#habracut">Читать дальше &rarr;</a> </div>]]></description>
			
			<pubDate>Fri, 10 Feb 2012 07:06:19 GMT</pubDate>
			<author>szKarlen</author>
			<category>.net</category><category>roslyn project</category><category>roslyn</category><category>c</category><category>code action</category><category>code</category><category>ide</category><category>visual studio</category><category>ctp</category>
		</item>
		
		
		
		
		
	
			
		<item>		
			<title><![CDATA[Программирование / Молитва «Си наш»]]></title>
			<guid isPermaLink="true">http://habrahabr.ru/blogs/programming/137823/</guid>
			<link>http://habrahabr.ru/blogs/programming/137823/</link>			
			<description><![CDATA[Наткнулся на сайте испанского сообщества С-программистов на интересную интерпретация молитвы «Отче наш» за авторством некоего Docma. Я позволил себе вольность сделать перевод на великий и могучий.<br/>
<br/>
В <a href="http://ru.wikipedia.org/wiki/%D0%9E%D1%82%D1%87%D0%B5_%D0%BD%D0%B0%D1%88">статье на Википедии</a> приводятся два варианта молитвы: от Матфея и от Луки. В переводе я использовал элементы обоих для лучшего звучания.<br/>
<br/>
<code>C наш, сущий в памяти!<br/>
да компилируется код Твой;<br/>
да приидет царствие Софта Твоего;<br/>
да будут действительны указатели Твои<br/>
и в ОЗУ, как на жестком диске;<br/>
массив наш насущный подавай нам на каждый день;<br/>
и прости нам варнинги наши,<br/>
как и мы избавляемся от ошибок наших;<br/>
и не введи нас в бесконечный цикл,<br/>
но избавь нас от винды.<br/>
Ибо Твое есть Царство и сила и слава во веки.<br/>
Энтер.<br/>
<i>K&R.16:64:256:1—8</i><br/>
</code><br/>
<br/>
Оригинал на испанском:<br/>
<blockquote>C Nuestro que estas en la Memoria, <br/>
Compilado sea tu código, <br/>
venga a nosotros tu software, <br/>
carguense tus punteros. <br/>
así en la RAM como en el Disco Duro, <br/>
Danos hoy nuestro Array de cada día, <br/>
Perdona nuestros Warnings, <br/>
así como nosotros también los eliminamos, <br/>
no nos dejes caer en Bucles, <br/>
y libranos del Windows, Enter.<br/>
</blockquote><br/>
<a href="http://www.elrincondelc.com/nuevorincon/index.php?pag=noticias&amp;id=73">Источник</a>]]></description>
			
			<pubDate>Wed, 08 Feb 2012 07:02:25 GMT</pubDate>
			<author>alco</author>
			<category>C</category><category>отче наш</category><category>молитва</category><category>перевод</category>
		</item>
		
		
		
		
		
		
		
		
	
			
		<item>		
			<title><![CDATA[Работа с видео / Видеоплеер на базе ffmpeg]]></title>
			<guid isPermaLink="true">http://habrahabr.ru/blogs/video/137793/</guid>
			<link>http://habrahabr.ru/blogs/video/137793/</link>			
			<description><![CDATA[Привет, Хабр!<br/>
<br/>
В этой статье речь пойдет о разработке простейшего плеера с использованием библиотек из проекта FFmpeg.<br/>
Я не нашел на хабре статей на данную тематику, поэтому решил восполнить этот пробел.<br/>
Декодирование видео будет осуществляться с помощью библиотек FFmpeg, отображение — с помощью SDL.<br/>
<br/>
<div class="habracut"> <a class="habracut" href="http://habrahabr.ru/blogs/video/137793/#habracut">Читать дальше &rarr;</a> </div>]]></description>
			
			<pubDate>Tue, 07 Feb 2012 23:00:22 GMT</pubDate>
			<author>zerodivisi0n</author>
			<category>ffmpeg</category><category>sdl</category><category>c</category>
		</item>
		
		
		
		
		
		
		
		
	
			
		<item>		
			<title><![CDATA[Human Resources / Я хочу работать в Google! Телефонное интервью (часть 2)]]></title>
			<guid isPermaLink="true">http://habrahabr.ru/blogs/hr/137653/</guid>
			<link>http://habrahabr.ru/blogs/hr/137653/</link>			
			<description><![CDATA[Сегодня мы будет обсуждать технические аспекты и реализацию задач на Python и C/C++, которыми нас будет закидывать инженер из Google. Начнём с самых тривиальных проблем с последующим нарастанием сложности. Параллельно обратим внимание о чём стоит упомянуть во время интервью и где не попасть в ловушку.<br/>
<div class="habracut"> <a class="habracut" href="http://habrahabr.ru/blogs/hr/137653/#habracut">Читать дальше &rarr;</a> </div>]]></description>
			
			<pubDate>Mon, 06 Feb 2012 22:14:34 GMT</pubDate>
			<author>Vadikus</author>
			<category>Google</category><category>interview</category><category>собеседование</category><category>job</category><category>работа</category><category>Python</category><category>Си</category><category>C</category>
		</item>
		
		
		
		
		
		
		
		
	
		
			
		<item>		
			<title><![CDATA[.NET / [Из песочницы] Сравнение объектов в C#.NET]]></title>
			<guid isPermaLink="true">http://habrahabr.ru/blogs/net/137680/</guid>
			<link>http://habrahabr.ru/blogs/net/137680/</link>			
			<description><![CDATA[C#.NET предлагает множество способов сравнить объекты, как экземпляры классов, так и структур. Способов так много, что без упорядочения этих способов и понимания их грамотного использования и имплементации (при наличии возможности переопределения), в голове, неминуемо, образуется каша.<br/>
<div class="habracut"> <a class="habracut" href="http://habrahabr.ru/blogs/net/137680/#habracut">Читать дальше &rarr;</a> </div>]]></description>
			
			<pubDate>Mon, 06 Feb 2012 13:29:27 GMT</pubDate>
			<author>EngineerSpock</author>
			<category>C</category><category>.NET</category><category>equality</category><category>Сравнение объектов в C</category>
		</item>
		
		
		
		
		
		
		
	
			
		<item>		
			<title><![CDATA[ASP.NET MVC / Обработка всех исключений в контроллерах с помощью атрибута]]></title>
			<guid isPermaLink="true">http://habrahabr.ru/blogs/aspnet_mvc/137672/</guid>
			<link>http://habrahabr.ru/blogs/aspnet_mvc/137672/</link>			
			<description><![CDATA[Всё мы знаем, что в ASP.NET MVC есть такой атрибут <code>HandleErrorAttribute</code>, который как сказано в MSDN <blockquote>Представляет атрибут, используемый для обработки исключения, вызываемого методом действия.<br/>
</blockquote><br/>
Но нигде, в том же MSDN не сказано (<s>ткните меня носом</s> дайте ссылку где это написано, если я просмотрел), что он обрабатывает только исключения, устанавливающие код ответа сервера в 500.<br/>
<br/>
Посмотрев на исходный код <code>HandleErrorAttribute</code> легко убедиться в этом. Там имеются следующие строки:<br/>
<br/>
<pre><code class="cs">// If this is not an HTTP 500 (for example, if somebody throws an HTTP 404 from an action method),
// ignore it.
if (new HttpException(null, exception).GetHttpCode() != 500) {
    return;
}
</code></pre><br/>
Не знаю, как вам, а мне удобнее при возникновении исключения, чтобы пользователи видели специальную страницу для этого, а не «жёлтую страницу смерти» или вообще как браузер отображает стандартную для него страницу с кодом ответа сервера (зависит от настроек в Web.config, но об этом позже).<br/>
<br/>
<div class="habracut"> <a class="habracut" href="http://habrahabr.ru/blogs/aspnet_mvc/137672/#habracut">Читать дальше &rarr;</a> </div>]]></description>
			
			<pubDate>Mon, 06 Feb 2012 10:54:24 GMT</pubDate>
			<author>CyberCoder</author>
			<category>c</category><category>.net</category><category>asp.net mvc</category><category>обработка ошибок</category>
		</item>
		
		
		
		
		
		
		
		
	
			
		<item>		
			<title><![CDATA[Блог компании Microsoft / Windows 8 Camp — 2 марта в Москве и онлайн]]></title>
			<guid isPermaLink="true">http://habrahabr.ru/company/microsoft/blog/137666/</guid>
			<link>http://habrahabr.ru/company/microsoft/blog/137666/</link>			
			<description><![CDATA[<img align="left" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-02-54-metablogapi/1565.image_5F00_5E322934.png"/>Мы проводим первое в России мероприятие по новой операционной системе Windows 8 – 2 марта пройдет <a href="http://www.microsoft.com/ru-ru/events/windows8camp/">Windows 8 Camp</a>!<br/>
<br/>
Мы расскажем и покажем, как создавать приложения на HTML5/JavaScript, C# и C++ и как соблюдать принципы Metro-дизайна.<br/>
<br/>
Мероприятие бесплатное, <a href="https://msevents.microsoft.com/CUI/InviteOnly.aspx?EventID=08-A1-AC-42-87-CE-83-82-BF-2A-F8-D1-DA-EB-84-CD&amp;amp;Culture=ru-RU">регистрация</a> уже идет, места уже начинают заканчиваться. Для всех желающих будет организована онлайн-трансляция.<br/>
<br/>
Как вы знаете, на данный момент Windows 8 находится в статусе <a href="http://buildwindows.com">Developer Preview</a> – как и наш <a href="http://www.microsoft.com/ru-ru/events/windows8camp/">сайт</a>. В конце февраля выйдет бета-версия Windows 8, после чего у нас будет более подробное расписание докладов. <br/>
<br/>
Не пропустите начало нового этапа в развитии Windows!]]></description>
			
			<pubDate>Mon, 06 Feb 2012 06:09:13 GMT</pubDate>
			<author>mixen</author>
			<category>windows 8</category><category>windows 8 camp</category><category>microsoft</category><category>javascript</category><category>html5</category><category>c</category><category>c++</category><category>camp</category>
		</item>
		
		
		
		
		
		
		
		
	
		
			
		<item>		
			<title><![CDATA[ASP.NET MVC / [Из песочницы] Динамическая проверка прав доступа для ASP.NET MVC]]></title>
			<guid isPermaLink="true">http://habrahabr.ru/blogs/aspnet_mvc/137581/</guid>
			<link>http://habrahabr.ru/blogs/aspnet_mvc/137581/</link>			
			<description><![CDATA[В ASP.NET MVC есть встроенная возможность ограничить доступ к тем или иным контроллерам и их действиям. Эта возможность предоставляется атрибутом <code>AuthorizeAttribute</code>, но возможностей и гибкости ему явно не хватает (точнее их практически нет). Права можно определить только на этапе разработки и без повторной компиляции никак не изменить. А ведь создать собственный атрибут, обладающий необходимым функционалом совсем не сложно.<br/>
<div class="habracut"> <a class="habracut" href="http://habrahabr.ru/blogs/aspnet_mvc/137581/#habracut">Читать дальше &rarr;</a> </div>]]></description>
			
			<pubDate>Fri, 03 Feb 2012 19:00:01 GMT</pubDate>
			<author>CyberCoder</author>
			<category>c</category><category>asp.net mvc</category><category>авторизация</category>
		</item>
		
		
		
		
		
		
		
	
		
			
		<item>		
			<title><![CDATA[Программирование / [Из песочницы] MP3 MusicID по аудио отпечатку файла в своей программе на С#]]></title>
			<guid isPermaLink="true">http://habrahabr.ru/blogs/programming/137538/</guid>
			<link>http://habrahabr.ru/blogs/programming/137538/</link>			
			<description><![CDATA[Недавно у меня возникла такая необходимость — использовать распознавание музыки в собственной программе. Программа разрабатывалась на C#, это сортировщик коллекции mp3 файлов, заточенный под себя. В двух словах скажу, что к примеру, он умеет распознавать по ID3 тэгам принадлежность произведения к классической музыке, и соответственно раскладывать по папкам на диске не /Исполнитель (год-год)/Альбом (год)/Произведение, а /Композитор/Альбом/Произведение.<br/>
<br/>
Изначально, мне пришла в голову идея использовать для этой цели Winamp, так как он неплохо справляется с задачей распознавания ID тэгов по отпечатку аудио. Есть идея — есть реализация! В списке треков появилась кнопочка, которая создает в %TEMP% m3u список и запускает Winamp передавая ему m3u как параметр, а приложение отслеживает ChangeFileNotification и если тэги были обновлены в Winamp — автоматом обновляет информацию в своих окошках. Однако спустя некоторое время я понял, что это неудобно, непонтово и решил вживить в код такую же фичу, как в Winamp.<br/>
<div class="habracut"> <a class="habracut" href="http://habrahabr.ru/blogs/programming/137538/#habracut">Читать дальше &rarr;</a> </div>]]></description>
			
			<pubDate>Fri, 03 Feb 2012 09:19:16 GMT</pubDate>
			<author>mbrx</author>
			<category>Audio</category><category>mp3</category><category>C</category><category>MusicID</category><category>программирование</category>
		</item>
		
		
		
		
		
		
		
	
		
			
		<item>		
			<title><![CDATA[Windows Phone / [Из песочницы] Использование паттерна MVVM при создании приложений для Windows Phone]]></title>
			<guid isPermaLink="true">http://habrahabr.ru/blogs/windows_mobile/137541/</guid>
			<link>http://habrahabr.ru/blogs/windows_mobile/137541/</link>			
			<description><![CDATA[<h5>Паттерн MVVM делится на три части:</h5><br/>
<ul>
<li>Модель (Model), так же, как в классическом паттерне MVC, Модель представляет собой фундаментальные данные, необходимые для работы приложения.</li>
<li>Вид/Представление (View) так же, как в классическом паттерне MVC, Вид — это графический интерфейс, то есть окно, кнопки и.т.п.</li>
<li>Модель вида (ViewModel, что означает «Model of View») является с одной стороны абстракцией Вида, а с другой предоставляет обертку данных из Модели, которые подлежат связыванию. То есть она содержит Модель, которая преобразована к Виду, а так же содержит в себе команды, которыми может пользоваться Вид, чтобы влиять на Модель.</li>
</ul><br/>
<br/>
Зачастую возникает необходимость подписываться на события представления в модели представления или переопределять его методы (например, метод OnNavigatedFrom или OnNavigatedTo). Так как сам шаблон пропагандирует разделение логики и представления, писать в code behind уж очень не хочется.<br/>
<br/>
Хочу продемонстрировать небольшой ToolKit, который можно взять за основу в небольших проектах, и немного облегчить процесс разработки.<br/>
<div class="habracut"> <a class="habracut" href="http://habrahabr.ru/blogs/windows_mobile/137541/#habracut">Читать дальше &rarr;</a> </div>]]></description>
			
			<pubDate>Fri, 03 Feb 2012 09:03:32 GMT</pubDate>
			<author>serber</author>
			<category>windows phone 7</category><category>mvvm</category><category>c</category>
		</item>
		
		
		
		
		
		
		
	
		
			
		<item>		
			<title><![CDATA[Системное программирование / [Из песочницы] Продолжение истории про переменные окружения, или подменяем PEB]]></title>
			<guid isPermaLink="true">http://habrahabr.ru/blogs/system_programming/137479/</guid>
			<link>http://habrahabr.ru/blogs/system_programming/137479/</link>			
			<description><![CDATA[Сегодня вечером впервые решил зарегестрироваться на Хабре, дабы отписать вот в <a href="http://habrahabr.ru/blogs/system_programming/136779/">этом топике</a> о недочётах <a href="http://habrahabr.ru/users/ilya314/" class="user_link">ilya314</a>, но был предельно удивлён тем, что я оказывается не могу ничего откомментировать, поскольку не являюсь почётным <s>хабропользователем</s>. Какой ужас.<br/>
<br/>
Поэтому я решил набросать код, дабы высказать свои соображения о проблеме дублирования данных в Сишный рантайм из PEB-a процесса.<br/>
<div class="habracut"> <a class="habracut" href="http://habrahabr.ru/blogs/system_programming/137479/#habracut">Читать дальше &rarr;</a> </div>]]></description>
			
			<pubDate>Thu, 02 Feb 2012 12:03:46 GMT</pubDate>
			<author>rwx64</author>
			<category>C</category><category>Windows Internals</category><category>PEB</category><category>Forged Data</category>
		</item>
		
		
		
		
		
		
		
	
		
			
		<item>		
			<title><![CDATA[.NET / [Из песочницы] Cериализация статических объектов в C#]]></title>
			<guid isPermaLink="true">http://habrahabr.ru/blogs/net/137405/</guid>
			<link>http://habrahabr.ru/blogs/net/137405/</link>			
			<description><![CDATA[<b>Контекст</b><br/>
<br/>
С данным вопросом встретился при работе над одним из проектов, в котором очень много настроек. В виду того что добавление новых настроек происходило по ходу разработки то выявилась необходимость сделать класс к которому можно обратится из любого модуля программы. Для этого конечно был использован статический класс, а назвали мы его AppSettings. Конечно можно было бы использовать Properties.Settings… Не буду вдаваться в детали, но этот вариант не подходил.<br/>
<br/>
<b>Суть проблемы</b><br/>
<br/>
Из за того что класс является статическим обычная сериализация не работает. Давайте проверим. Допустим, у нас есть простой статический класс:<br/>
<pre><code class="cs">public static class TestStatic
{
	// Fields...
	private static int _Counter;
	public static int Counter
	{
		get { return _Counter; }
		set
		{
		        _Counter = value;
		}
	}       
}
</code></pre><br/>
<br/>
В общем если класс не был бы статическим, можно было бы использовать System.Xml.Serialization.XmlSerializer. Это не наш случай — класс у нас статический и в этом случае, по тому, что XmlSerializer.Serialize метод требует экземпляр класса, а не тип класса, то компилятор выдаст 'Test1.TestStatic' is a 'type' but is used like a 'variable'.<br/>
<div class="habracut"> <a class="habracut" href="http://habrahabr.ru/blogs/net/137405/#habracut">Читать дальше &rarr;</a> </div>]]></description>
			
			<pubDate>Thu, 02 Feb 2012 07:14:34 GMT</pubDate>
			<author>Bl00dra1n</author>
			<category>C</category><category>сериализация</category><category>.net</category>
		</item>
		
		
		
		
		
		
		
	
		
			
		<item>		
			<title><![CDATA[.NET / [Из песочницы] Делаем библиотеку написанную на .Net понятной для Unmanaged кода]]></title>
			<guid isPermaLink="true">http://habrahabr.ru/blogs/net/137300/</guid>
			<link>http://habrahabr.ru/blogs/net/137300/</link>			
			<description><![CDATA[Пол года проработав в компании, которая занимается программированием на MQL под Meta Trader столкнулся с таким заказом: клиенту нужно что бы программа была написана на C# или VB.Net. <br/>
<br/>
Задача была в том, что бы написать программу на C# и dll на том же языке, которая связывает приложение с торговым советником на MQL. С одной стороны мне это на руку, так как C# изучаю больше года, с другой — стало непонятно, а как же это делается и вообще возможно ли это?<br/>
<img src="http://dl.dropbox.com/u/19291234/habr/scheme.png" alt="image"/><br/>
<div class="habracut"> <a class="habracut" href="http://habrahabr.ru/blogs/net/137300/#habracut">Читать дальше &rarr;</a> </div>]]></description>
			
			<pubDate>Mon, 30 Jan 2012 12:41:10 GMT</pubDate>
			<author>belkamax05</author>
			<category>C</category><category>.Net</category><category>Программирование</category>
		</item>
		
		
		
		
		
		
		
	
		
			
		<item>		
			<title><![CDATA[Arduino / [Из песочницы] Уведомление о непрочитанном входящем письме с помощью Arduino]]></title>
			<guid isPermaLink="true">http://habrahabr.ru/blogs/arduino/137179/</guid>
			<link>http://habrahabr.ru/blogs/arduino/137179/</link>			
			<description><![CDATA[Добрый день!<br/>
<br/>
Совсем недавно заинтересовался платформой Arduino. После того, как плата Arduino Mega 2560 была получена в подарок на Новый Год я, как приличный начинающий любитель робототехники, поморгал диодом, в том числе через кнопочку (которые, кстати, были выпаяны со старой разобранной мышки для компьютера). <br/>
<br/>
Вот после таких стандартных экспериментов я решил, что надо сделать что-то полезное. Вдохновился различными видео с youtube, в которых показывали, как с помощью Arduino + Python было реализовано физическое уведомление (у кого-то лампочка мигала, у кого-то флажок поднимался) о получении новой почты на ящик gmail.<br/>
<img src="http://i.imgur.com/54pqP.png" alt="image"/><br/>
В данной статье хочу рассказать о своем опыте создания такой «уведомлялки». Из «железа» необходимо совсем мало, вот то, что использовал я:<br/>
<br/>
 — Плата Arduino Mega 2560 – 1 шт.<br/>
 — USB-кабель для поключения Arduino к компьютеру – 1 шт.<br/>
 — Светодиод – 1 шт.<br/>
<div class="habracut"> <a class="habracut" href="http://habrahabr.ru/blogs/arduino/137179/#habracut">Читать дальше &rarr;</a> </div>]]></description>
			
			<pubDate>Sat, 28 Jan 2012 06:23:55 GMT</pubDate>
			<author>imaksymenko</author>
			<category>arduino</category><category>email</category><category>c</category>
		</item>
		
		
		
		
		
		
		
	
			
		<item>		
			<title><![CDATA[.NET / Размеры CLR-объектов. Точное определение]]></title>
			<guid isPermaLink="true">http://habrahabr.ru/blogs/net/136609/</guid>
			<link>http://habrahabr.ru/blogs/net/136609/</link>			
			<description><![CDATA[Думаю, многим разработчикам на управляемом коде всегда интересовало: сколько же байт занимает экземпляр объекта? А каков лимит размера одного объекта в CLR? Существуют ли различия в выделении памяти между 32-битными и 64-битными системами? Если данные вопросы для Вас не пустой звук, тогда прошу под кат.<br/>
<div class="habracut"> <a class="habracut" href="http://habrahabr.ru/blogs/net/136609/#habracut">Читать дальше &rarr;</a> </div>]]></description>
			
			<pubDate>Thu, 19 Jan 2012 17:30:46 GMT</pubDate>
			<author>szKarlen</author>
			<category>clr</category><category>.net</category><category>c</category><category>cts</category><category>память</category><category>x86</category><category>x64</category><category>размер</category>
		</item>
		
		
		
		
		
		
		
		
	
			
		<item>		
			<title><![CDATA[C++ / Я не знаю Си]]></title>
			<guid isPermaLink="true">http://habrahabr.ru/blogs/cpp/136283/</guid>
			<link>http://habrahabr.ru/blogs/cpp/136283/</link>			
			<description><![CDATA[Цель этой статьи — заставить всех, особенно программистов на Си, сказать «я не знаю Си».<br/>
Хочется показать, что тёмные углы в Си значительно ближе, чем кажется и даже тривиальные строки кода несут в себе undefined behavior.<br/>
<br/>
<div class="habracut"> <a class="habracut" href="http://habrahabr.ru/blogs/cpp/136283/#habracut">Читать дальше &rarr;</a> </div>]]></description>
			
			<pubDate>Sun, 15 Jan 2012 19:28:10 GMT</pubDate>
			<author>gribozavr</author>
			<category>программирование</category><category>wtf</category><category>Си</category><category>C</category><category>undefined behavior</category><category>aliasing</category><category>overflow</category><category>floating point</category>
		</item>
		
		
		
		
		
		
		
		
	
		
		
		
			
		<item>		
			<title><![CDATA[Программирование / [Перевод] Почему C быстрее Java (с точки зрения Java-разработчика)]]></title>
			<guid isPermaLink="true">http://habrahabr.ru/blogs/programming/136210/</guid>
			<link>http://habrahabr.ru/blogs/programming/136210/</link>
			<description><![CDATA[В <a href="http://marc.info/?l=git&amp;r=1&amp;w=2">листе рассылки Git</a> развернулась дискуссия о том, как язык программирования высокого уровня снижает производительность приложения, в связи с обсуждением <a href="http://www.jgit.org/">JGit</a>. Дискуссия особенно интересна, потому что в ней принимали участие программисты, эксперты высочайшего уровня как в C, так и в Java. Один из них — Шон Пирс (Shawn O. Pearce), известный Java-программист из компании Google, активный коммитер в Eclipse, соавтор Git и автор Java-имплементации Git под названием JGit. В <a href="http://marc.info/?l=git&amp;m=124111702609723&amp;w=2">своём сообщении</a> он назвал реальные ограничения, с которыми сталкивается высококвалифицированный разработчик, пытаясь написать эффективный Java-код, сравнимый по производительности с максимально оптимизированным кодом C. Хотя письмо датируется апрелем 2009 года, но некоторые аргументы Шона до сих пор не потеряли актуальность.<br/>
<br/>
<blockquote><i>List: git<br/>
Subject: Re: Why Git is so fast (was: Re: Eric Sink's blog — notes on git,<br/>
From: «Shawn O. Pearce» &lt;spearce () spearce! org&gt;</i><br/>
<br/>
Как было сказано ранее, мы сделали много маленьких оптимизаций в коде Git на C, чтобы добиться <b>реально</b> высокой производительности. 5% здесь, 10% там, и внезапно ты уже на 60% быстрее, чем был раньше. Нико [Питре], Линус [Торвальдс] и Джунио [Хамано] — все они потратили определённое время в последние три-четыре года для оптимизации отдельных фрагментов Git, исключительно для того, чтобы он работал максимально быстро.</blockquote><div class="habracut"> <a class="habracut" href="http://habrahabr.ru/blogs/programming/136210/#habracut">Читать дальше &rarr;</a> </div>]]></description>
			
			<pubDate>Sat, 14 Jan 2012 01:30:53 GMT</pubDate>
			<author>alizar</author>
			<category>C</category><category>Java</category><category>Git</category><category>JGit</category><category>оптимизация</category><category>unsigned</category><category>JIT</category>
		</item>
		
		
		
		
		
	
		
		
		
			
		<item>		
			<title><![CDATA[NoSQL / [Перевод] Будущее CouchDB]]></title>
			<guid isPermaLink="true">http://habrahabr.ru/blogs/nosql/135801/</guid>
			<link>http://habrahabr.ru/blogs/nosql/135801/</link>
			<description><![CDATA[<i>Примечание. Этот пост в блоге Дэмиена Каца, создателя CouchDB, вызвал широкий резонанс. В конце данного топика опубликован ответ одного из многочисленных оппонентов Каца, мнение которого кардинально противоположно автору.</i><br/>
<br/>
Каково будущее CouchDB? Это Couchbase.<br/>
<br/>
Удивлены? Спросите, как же <a href="http://couchdb.apache.org/">Apache CouchDB</a>? Что ж, это отличный проект. Я основал его, написал первые версии почти полностью самостоятельно, потратил огромное количество нервов, пота и крови на него. Я очень им горжусь и тем влиянием, которое у него было. А сейчас я и команда Couchbase готовы двигаться дальше. Конечно, CouchDB — отличная система, но мы делаем его наследника: Couchbase Server. Продукт и проект с похожими возможностями и задачами, но более быстрый, более масштабируемый, более подходящий и для пользователей, и для разработчиков. И, определённо, не часть Apache.<br/>
<div class="habracut"> <a class="habracut" href="http://habrahabr.ru/blogs/nosql/135801/#habracut">Читать дальше &rarr;</a> </div>]]></description>
			
			<pubDate>Sat, 07 Jan 2012 08:55:33 GMT</pubDate>
			<author>alizar</author>
			<category>CouchDB</category><category>Membase</category><category>Couchbase</category><category>Couchbase Server</category><category>C</category><category>C++</category>
		</item>
		
		
		
		
		
	
		
			
		<item>		
			<title><![CDATA[.NET / [Из песочницы] Использование SCM для управления драйверами в C# реализованной с помощью dll на C++/cli]]></title>
			<guid isPermaLink="true">http://habrahabr.ru/blogs/net/135410/</guid>
			<link>http://habrahabr.ru/blogs/net/135410/</link>			
			<description><![CDATA[<h4>Service Control Manager (SCM)</h4><br/>
SCM — это сервер, реализованный в Windows, для удаленного управления сервисами (вызовом процедур).<br/>
<br/>
Для того, чтобы запустить драйвер в Windows, ему в соответствие ставится сервис, который обеспечивает управление этим драйвером. Не путать с устройством, которое создает драйвер в системе, через которое происходит обмен сообщениями с драйвером. Это устройство создается уже после старта драйвера, а вот SCM обеспечивает само внесение драйвера в систему. С помощью SCM можно: добавлять, удалять, запускать или останавливать службы.<br/>
<br/>
<h4>Постановка задачи</h4><br/>
Написать буферный класс позволяющий упростить работу SCM в C#.<br/>
Сам внешний вид этого класса можно обознать очень просто:<br/>
<br/>
<pre><code class="cpp">    public ref class ServiceControlManager : public IDisposable
	{
	public:
		ServiceControlManager(void);
		void AddDriver(String^ ServiceName, String^ BinaryPathName);
		void DeleteDriver(String^ ServiceName);
		void StartDriver(String^ ServiceName);
		void StopDriver(String^ ServiceName);
	protected:
		~ServiceControlManager();
        !ServiceControlManager();
	private:
		SC_HANDLE SCMHandle;
	};
</code></pre><br/>
Конструктор, деструктор, финализатор, основные методы, из атрибутов только HANDLE объекта SCM. Из этого следует, что экземпляр объекта этого класса будет содержать в себе созданный объект SCM, а методы упрощают с ним работу. Класс является буферным, и поскольку он реализован в C++/cli он будет автоматически масштабируем для работы в среде .NET, соответственно и в C#.<br/>
<div class="habracut"> <a class="habracut" href="http://habrahabr.ru/blogs/net/135410/#habracut">Читать дальше &rarr;</a> </div>]]></description>
			
			<pubDate>Tue, 27 Dec 2011 23:32:11 GMT</pubDate>
			<author>ZEEGIN</author>
			<category>SCM</category><category>C</category><category>C++</category><category>cli</category><category>DLL</category><category>Class</category><category>Kernel</category><category>marshal</category>
		</item>
		
		
		
		
		
		
		
	
			
		<item>		
			<title><![CDATA[Обработка изображений / Viola Jones на собственной шкуре, часть 1. Настройка проекта под OpenCV]]></title>
			<guid isPermaLink="true">http://habrahabr.ru/blogs/image_processing/135244/</guid>
			<link>http://habrahabr.ru/blogs/image_processing/135244/</link>			
			<description><![CDATA[Привет, друзья мои! Дорогие Хабраюзеры и Хабрачитатели, предлагаю Вам окунуться в дебри разработки программы распознавания эмоций по материалам предыдущих моих<a href="http://habrahabr.ru/blogs/algorithm/133909/"> статей</a>. <div class="habracut"> <a class="habracut" href="http://habrahabr.ru/blogs/image_processing/135244/#habracut">Поехали!</a> </div>]]></description>
			
			<pubDate>Sat, 24 Dec 2011 19:29:11 GMT</pubDate>
			<author>skynoname</author>
			<category>алгоритм</category><category>метод</category><category>распознавание образов</category><category>распознавание изображений</category><category>распознавание объектов</category><category>распознавание лиц</category><category>OpenCV</category><category>videoInput</category><category>stasm</category><category>C++</category><category>C</category><category>Visual Studio</category><category>Qt</category><category>тренировка каскада</category><category>каскад классификаторов</category><category>изображение</category><category>видео</category><category>лицо</category><category>c plus plus</category>
		</item>
		
		
		
		
		
		
		
		
	
	
	
	
	
	
	
	

	
</channel>
</rss>

