<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	>

<channel>
	<title>блог marty mcfly</title>
	<atom:link href="http://mcfly.cyberblogger.ru/feed" rel="self" type="application/rss+xml" />
	<link>http://mcfly.cyberblogger.ru</link>
	<description>Блог программиста</description>
	<pubDate>Fri, 02 Oct 2009 18:02:19 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.7</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Сериализация с DataContractSerializer</title>
		<link>http://mcfly.cyberblogger.ru/2009/10/02/serializaciya-s-datacontractserializer.html</link>
		<comments>http://mcfly.cyberblogger.ru/2009/10/02/serializaciya-s-datacontractserializer.html#comments</comments>
		<pubDate>Fri, 02 Oct 2009 18:02:19 +0000</pubDate>
		<dc:creator>mcfly</dc:creator>
		
		<category><![CDATA[Articles]]></category>

		<category><![CDATA[.net]]></category>

		<category><![CDATA[C#]]></category>

		<category><![CDATA[contract]]></category>

		<category><![CDATA[data]]></category>

		<category><![CDATA[serialize]]></category>

		<category><![CDATA[serializer]]></category>

		<category><![CDATA[xml]]></category>

		<guid isPermaLink="false">http://mcfly.cyberblogger.ru/?p=17</guid>
		<description><![CDATA[ public static class Serializer
    {
        public static string Serialize(object obj, Type type)
        {
            DataContractSerializer serializer = new DataContractSerializer(type);
         [...]]]></description>
			<content:encoded><![CDATA[<pre class="prettyprint"> public static class Serializer
    {
        public static string Serialize(object obj, Type type)
        {
            DataContractSerializer serializer = new DataContractSerializer(type);
            string result = string.Empty;
            using (MemoryStream stream = new MemoryStream())
            {
                serializer.WriteObject(stream, obj);
                stream.Seek(0, SeekOrigin.Begin);
                byte[] buffer = new byte[stream.Length];
                stream.Read(buffer, 0, buffer.Length);
                result = Encoding.Default.GetString(buffer);
            }
            return result;
        }

        public static object Deserialize(string xml, Type type)
        {
            DataContractSerializer serializer = new DataContractSerializer(type);
            object result = new object();
            using (MemoryStream stream = new MemoryStream())
            {
                byte[] buffer = Encoding.Default.GetBytes(xml);
                stream.Write(buffer, 0, buffer.Length);
                stream.Seek(0, SeekOrigin.Begin);
                result = serializer.ReadObject(stream);
            }
            return result;
        }

        public static string GetType(string xml)
        {
            try
            {
                string name = System.Xml.Linq.XDocument.Parse(xml).Root.Name.ToString();
                return name.Substring(name.IndexOf("}") + 1, name.Length - name.IndexOf("}") - 1);
            }
            catch { return string.Empty; }
        }
    }</pre>
]]></content:encoded>
			<wfw:commentRss>http://mcfly.cyberblogger.ru/2009/10/02/serializaciya-s-datacontractserializer.html/feed</wfw:commentRss>
		</item>
		<item>
		<title>User IP WCF</title>
		<link>http://mcfly.cyberblogger.ru/2009/09/30/user-ip-wcf.html</link>
		<comments>http://mcfly.cyberblogger.ru/2009/09/30/user-ip-wcf.html#comments</comments>
		<pubDate>Wed, 30 Sep 2009 18:13:33 +0000</pubDate>
		<dc:creator>mcfly</dc:creator>
		
		<category><![CDATA[Articles]]></category>

		<guid isPermaLink="false">http://mcfly.cyberblogger.ru/?p=15</guid>
		<description><![CDATA[public static string GetClientIP()
{
MessageProperties properties = OperationContext.Current.IncomingMessageProperties;
RemoteEndpointMessageProperty endpoint = properties[RemoteEndpointMessageProperty.Name]
as RemoteEndpointMessageProperty;
return endpoint.Address;
}
]]></description>
			<content:encoded><![CDATA[<pre class="prettyprint">public static string GetClientIP()
{
MessageProperties properties = OperationContext.Current.IncomingMessageProperties;
RemoteEndpointMessageProperty endpoint = properties[RemoteEndpointMessageProperty.Name]
as RemoteEndpointMessageProperty;
return endpoint.Address;
}</pre>
]]></content:encoded>
			<wfw:commentRss>http://mcfly.cyberblogger.ru/2009/09/30/user-ip-wcf.html/feed</wfw:commentRss>
		</item>
		<item>
		<title>WPF Mirror Effect</title>
		<link>http://mcfly.cyberblogger.ru/2009/09/12/wpf-mirror-effect.html</link>
		<comments>http://mcfly.cyberblogger.ru/2009/09/12/wpf-mirror-effect.html#comments</comments>
		<pubDate>Sat, 12 Sep 2009 10:54:25 +0000</pubDate>
		<dc:creator>mcfly</dc:creator>
		
		<category><![CDATA[Articles]]></category>

		<category><![CDATA[mirror]]></category>

		<category><![CDATA[wpf]]></category>

		<category><![CDATA[зеркальное]]></category>

		<category><![CDATA[отражение]]></category>

		<category><![CDATA[эффект]]></category>

		<guid isPermaLink="false">http://mcfly.cyberblogger.ru/?p=11</guid>
		<description><![CDATA[Зеркальное отражение контрола (в данном примере TextBox)
&#60;Window x:Class="testVolvo.Window1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="Window1" Height="371" Width="498"&#62;
&#60;Grid&#62;
&#60;TextBox Height="24" Margin="64,130,28,0" Name="textBox1"
VerticalAlignment="Top" Foreground="AliceBlue" Text="Show must go on!"&#62;
&#60;TextBox.Background &#62;
&#60;RadialGradientBrush&#62;
&#60;GradientStop Color="Yellow" Offset="-0.1"/&#62;
&#60;GradientStop Color="WhiteSmoke" Offset="0.1"/&#62;
&#60;GradientStop Color="Green" Offset="1"/&#62;
&#60;/RadialGradientBrush&#62;
&#60;/TextBox.Background&#62;
&#60;/TextBox&#62;
&#60;Rectangle Height="23" Margin="64,0,28,135" Name="rectangle1"
Stroke="Transparent" Opacity="0.4" VerticalAlignment="Bottom"&#62;
&#60;Rectangle.Fill&#62;
&#60;VisualBrush Visual="{Binding ElementName=textBox1}"&#62;&#60;/VisualBrush&#62;
&#60;/Rectangle.Fill&#62;
&#60;Rectangle.OpacityMask&#62;
&#60;LinearGradientBrush&#62;
&#60;GradientStop Color="Transparent" Offset="0"/&#62;
&#60;GradientStop Color="Yellow" Offset="0.1"/&#62;
&#60;GradientStop Color="Transparent" Offset="1"/&#62;
&#60;/LinearGradientBrush&#62;
&#60;/Rectangle.OpacityMask&#62;
&#60;Rectangle.RenderTransform&#62;
&#60;ScaleTransform ScaleY="-1"&#62;&#60;/ScaleTransform&#62;
&#60;/Rectangle.RenderTransform&#62;
&#60;/Rectangle&#62;
&#60;/Grid&#62;
&#60;/Window&#62;
Результат:

]]></description>
			<content:encoded><![CDATA[<p><strong>Зеркальное отражение</strong> контрола (в данном примере TextBox)</p>
<pre class="prettyprint">&lt;Window x:Class="testVolvo.Window1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="Window1" Height="371" Width="498"&gt;
&lt;Grid&gt;
&lt;TextBox Height="24" Margin="64,130,28,0" Name="textBox1"
VerticalAlignment="Top" Foreground="AliceBlue" Text="Show must go on!"&gt;
&lt;TextBox.Background &gt;
&lt;RadialGradientBrush&gt;
&lt;GradientStop Color="Yellow" Offset="-0.1"/&gt;
&lt;GradientStop Color="WhiteSmoke" Offset="0.1"/&gt;
&lt;GradientStop Color="Green" Offset="1"/&gt;
&lt;/RadialGradientBrush&gt;
&lt;/TextBox.Background&gt;
&lt;/TextBox&gt;
&lt;Rectangle Height="23" Margin="64,0,28,135" Name="rectangle1"
Stroke="Transparent" Opacity="0.4" VerticalAlignment="Bottom"&gt;
&lt;Rectangle.Fill&gt;
&lt;VisualBrush Visual="{Binding ElementName=textBox1}"&gt;&lt;/VisualBrush&gt;
&lt;/Rectangle.Fill&gt;
&lt;Rectangle.OpacityMask&gt;
&lt;LinearGradientBrush&gt;
&lt;GradientStop Color="Transparent" Offset="0"/&gt;
&lt;GradientStop Color="Yellow" Offset="0.1"/&gt;
&lt;GradientStop Color="Transparent" Offset="1"/&gt;
&lt;/LinearGradientBrush&gt;
&lt;/Rectangle.OpacityMask&gt;
&lt;Rectangle.RenderTransform&gt;
&lt;ScaleTransform ScaleY="-1"&gt;&lt;/ScaleTransform&gt;
&lt;/Rectangle.RenderTransform&gt;
&lt;/Rectangle&gt;
&lt;/Grid&gt;
&lt;/Window&gt;</pre>
<p><strong>Результат:</strong></p>
<p><img src="http://aspro.ru/4.jpg" alt="" /></p>
]]></content:encoded>
			<wfw:commentRss>http://mcfly.cyberblogger.ru/2009/09/12/wpf-mirror-effect.html/feed</wfw:commentRss>
		</item>
		<item>
		<title>ICQ и C#.NET - Реальность или нет?</title>
		<link>http://mcfly.cyberblogger.ru/2009/09/10/icq-i-cnet-realnost-ili-net.html</link>
		<comments>http://mcfly.cyberblogger.ru/2009/09/10/icq-i-cnet-realnost-ili-net.html#comments</comments>
		<pubDate>Thu, 10 Sep 2009 19:10:24 +0000</pubDate>
		<dc:creator>mcfly</dc:creator>
		
		<category><![CDATA[Articles]]></category>

		<category><![CDATA[.net]]></category>

		<category><![CDATA[buddy]]></category>

		<category><![CDATA[C#]]></category>

		<category><![CDATA[client]]></category>

		<category><![CDATA[icq]]></category>

		<category><![CDATA[jabber]]></category>

		<category><![CDATA[oscarlib]]></category>

		<category><![CDATA[sess]]></category>

		<category><![CDATA[session]]></category>

		<category><![CDATA[аська]]></category>

		<category><![CDATA[бот]]></category>

		<category><![CDATA[клиент]]></category>

		<category><![CDATA[оскар]]></category>

		<guid isPermaLink="false">http://mcfly.cyberblogger.ru/?p=8</guid>
		<description><![CDATA[Как оказалось весьма реально  Спасибо что есть библиотека по имени OscarLib, в которой организованы не просто обобщенные методы обращения к серверу аськи но и даже какое-то подобие ООП  В любом случае в виду количества проделанной за нас работы грех жаловаться. Простейший пример работы приведу ниже:
Шаг 1: Создание экземпляра
Session sess = new Session("463705186", "password"); [...]]]></description>
			<content:encoded><![CDATA[<p>Как оказалось весьма реально <img src='http://mcfly.cyberblogger.ru/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> Спасибо что есть библиотека по имени <a href="http://aspro.ru/oscarlib.dll">OscarLib</a>, в которой организованы не просто обобщенные методы обращения к серверу аськи но и даже какое-то подобие ООП <img src='http://mcfly.cyberblogger.ru/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> В любом случае в виду количества проделанной за нас работы грех жаловаться. Простейший пример работы приведу ниже:</p>
<p><strong><em>Шаг 1: Создание экземпляра</em></strong></p>
<pre class="prettyprint">Session sess = new Session("463705186", "password"); //пишем ваш UIN и пароль к нему
            sess.SetDefaultIdentification();
            /* Далее просто подписываемся на входящие события */
            sess.LoginCompleted += new LoginCompletedHandler(sess_LoginCompleted);
            sess.Messages.MessageReceived += new MessageReceivedHandler(Messages_MessageReceived);
            sess.LoginFailed += new LoginFailedHandler(sess_LoginFailed);
            sess.WarningMessage += new WarningMessageHandler(sess_WarningMessage);
            sess.ErrorMessage += new ErrorMessageHandler(sess_ErrorMessage);
            sess.Messages.TypingNotification += new TypingNotificationEventHandler(Messages_TypingNotification);
            sess.Statuses.UserStatusReceived += new UserStatusReceivedHandler(Statuses_UserStatusReceived);
            sess.Searches.FindByEmailResults += new FindByEmailResultsHandler(Searches_FindByEmailResults);</pre>
<p><strong><em>Шаг 2: Подключение</em></strong></p>
<pre class="prettyprint">private void button1_Click(object sender, System.EventArgs e)
		{
            Capabilities caps = Capabilities.SIMKopete | Capabilities.UTF8;
			sess.ClientCapabilities = caps;
			sess.Logon("login.icq.com", 5190);
            sess.ActivateBuddyList();
		}</pre>
<p>Вот и все - мы подлюченны <img src='http://mcfly.cyberblogger.ru/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p><strong><em>Шаг 3: Посылаем сообщение</em></strong></p>
<pre class="prettyprint">sess.Messages.SendMessage("4953456", "Приветик! :)");</pre>
<p>Просто? Просто <img src='http://mcfly.cyberblogger.ru/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> <a title="Примерчик" href="http://aspro.ru/oscar/test.zip">Примерчик</a> прилагается..  <span style="text-decoration: line-through">Поковыряем jabber теперь-ка) </span></p>
]]></content:encoded>
			<wfw:commentRss>http://mcfly.cyberblogger.ru/2009/09/10/icq-i-cnet-realnost-ili-net.html/feed</wfw:commentRss>
		</item>
		<item>
		<title>Симметричное шифрование данных</title>
		<link>http://mcfly.cyberblogger.ru/2009/09/10/simmetrichnoe-shifrovanie-dannyx.html</link>
		<comments>http://mcfly.cyberblogger.ru/2009/09/10/simmetrichnoe-shifrovanie-dannyx.html#comments</comments>
		<pubDate>Thu, 10 Sep 2009 12:36:45 +0000</pubDate>
		<dc:creator>mcfly</dc:creator>
		
		<category><![CDATA[Articles]]></category>

		<category><![CDATA[cryptography]]></category>

		<category><![CDATA[rijndael]]></category>

		<category><![CDATA[symmetric]]></category>

		<category><![CDATA[данных]]></category>

		<category><![CDATA[симметричное]]></category>

		<category><![CDATA[Шифрование]]></category>

		<guid isPermaLink="false">http://mcfly.cyberblogger.ru/?p=5</guid>
		<description><![CDATA[Данный статический класс предназначен для удобного симметрического шифрования строки или массива байт:
///
/// Provides base functions for encrypting and decrypting data through the symmetric algorithm
///
public static class Cryptography
{
    ///
    /// Encrypts data
    ///
    /// Data for the encryption
    /// Encryption key
 [...]]]></description>
			<content:encoded><![CDATA[<p>Данный статический класс предназначен для удобного симметрического шифрования строки или массива байт:</p>
<pre class="prettyprint">///
/// Provides base functions for encrypting and decrypting data through the symmetric algorithm
///
public static class Cryptography
{
    ///
    /// Encrypts data
    ///
    /// Data for the encryption
    /// Encryption key
    /// Encrypted data
    public static byte[] Encrypt(byte[] data, string password)
    {
        SymmetricAlgorithm sa = Rijndael.Create();
        ICryptoTransform ct = sa.CreateEncryptor(
            (new PasswordDeriveBytes(password, null)).GetBytes(16),
            new byte[16]);

        MemoryStream ms = new MemoryStream();
        CryptoStream cs = new CryptoStream(ms, ct, CryptoStreamMode.Write);

        cs.Write(data, 0, data.Length);
        cs.FlushFinalBlock();

        return ms.ToArray();
    }

    ///
    /// Encrypts data
    ///
    /// Data for the encryption
    /// Encryption key
    /// Encrypted data
    public static string Encrypt(string data, string password)
    {
        return Convert.ToBase64String(Encrypt(Encoding.UTF8.GetBytes(data), password));
    }

    ///
    /// Decrypts data
    ///
    /// Data for the decryption
    /// Decryption key
    /// Decrypted data
    static public byte[] Decrypt(byte[] data, string password)
    {
        BinaryReader br = new BinaryReader(InternalDecrypt(data, password));
        return br.ReadBytes((int)br.BaseStream.Length);
    }

    ///
    /// Decrypts data
    ///
    /// Data for the decryption
    /// Decryption key
    /// Decrypted data
    static public string Decrypt(string data, string password)
    {
        CryptoStream cs = InternalDecrypt(Convert.FromBase64String(data), password);
        StreamReader sr = new StreamReader(cs);
        return sr.ReadToEnd();
    }

    static CryptoStream InternalDecrypt(byte[] data, string password)
    {
        SymmetricAlgorithm sa = Rijndael.Create();
        ICryptoTransform ct = sa.CreateDecryptor(
            (new PasswordDeriveBytes(password, null)).GetBytes(16),
            new byte[16]);

        MemoryStream ms = new MemoryStream(data);
        return new CryptoStream(ms, ct, CryptoStreamMode.Read);
    }
}</pre>
]]></content:encoded>
			<wfw:commentRss>http://mcfly.cyberblogger.ru/2009/09/10/simmetrichnoe-shifrovanie-dannyx.html/feed</wfw:commentRss>
		</item>
	</channel>
</rss>
