Включить Gzip сжатие в ASP.NET и web.config

 <system.webServer>
    <httpCompression directory="%SystemDrive%\inetpub\temp\IIS Temporary Compressed Files">
      <scheme name="gzip" dll="%Windir%\system32\inetsrv\gzip.dll" staticCompressionLevel="9" dynamicCompressionLevel="4" />
      <dynamicTypes>
        <add mimeType="text/*" enabled="true" />
        <add mimeType="message/*" enabled="true" />
        <add mimeType="application/javascript" enabled="true" />
        <add mimeType="application/xml" enabled="true" />
        <add mimeType="application/atom" enabled="true" />
        <add mimeType="application/atom+xml" enabled="true" />
        <add mimeType="application/soap+xml" enabled="true" />
        <add mimeType="application/json" enabled="true" />
        <add mimeType="application/x-javascript" enabled="true" />
        <add mimeType="*/*" enabled="false" />
      </dynamicTypes>
      <staticTypes>
        <add mimeType="text/*" enabled="true" />
        <add mimeType="message/*" enabled="true" />
        <add mimeType="application/javascript" enabled="true" />
        <add mimeType="application/xml" enabled="true" />
        <add mimeType="application/atom" enabled="true" />
        <add mimeType="application/atom+xml" enabled="true" />
        <add mimeType="application/soap+xml" enabled="true" />
        <add mimeType="application/json" enabled="true" />
        <add mimeType="application/x-javascript" enabled="true" />
        <add mimeType="*/*" enabled="false" />
      </staticTypes>
    </httpCompression>
    <urlCompression doStaticCompression="true" doDynamicCompression="true" />
  </system.webServer>

Для настройки IIS  http://www.hanselman.com/blog/EnablingDynamicCompressionGzipDeflateForWCFDataFeedsODataAndOtherCustomServicesInIIS7.aspx

Prolific USB-to-Serial Com Port не работает на Windows

Не статья, а сплошной плагиат :) Пишу только для того, чтобы не потерять решение, найденное здесь. Спасибо товарищу с ником "San-ch".

Ситуация: есть адаптер USB-Com фирмы Prolific, спаянный скорее всего в Китае, VID_067B&PID_2303. Нужно прицепить его к Windows 7 (x32). Виндовский Update не помог. Cкачал новый драйвер с оф.сайта, v3.4.48.272. После его установки подключил шнурок и получил "Запуск этого устройства невозможен. (Код 10)". Копания в инете привели на тот самый форум. Оказалось, нужен старый драйвер, в котором еще нет проверки подлинности чипа. На форуме товарищ писал, что лечил так Win7x64, у меня на 32-разрядной тоже все получилось.

Скачать драйвер для PL2303, v.3.2.0.0, Win7.

Самое интересное, что прога определения чипа (шла в архиве с новым драйвером) после нормальной установки не ругается на чип и определяет его как "PL-2303 XA / HXA". Вот и кому, спрашивается, пиндосы в итоге хуже сделали? Нам.. :(

http://waredom.ru/118

Регистры в AVR

В AVR есть 3 типа регистров DDRx, PORTx и PINx - они  отвечают управление ногами микроконтроллера.
В AVR все ноги делятся на порты, которые обозначаются латинскими буквами A, B, C и т.д. Каждый регистр может содержать до восьми ног, которые номеруются цифрами от 0 до 7. В datasheet они обозначаются типа PA0, PB1 и т.п. Именно они указывают букву порта и номер ноги. Например, для управления портом "A" используются регистры DDRA, PORTA и PINA. Каждый из них размером в 1 байт, а каждый бит при этом отвечает за соответствующую ногу.


DDRx - регистры определяют направление данных - ввод или вывод. Значение "0" - ножка вход  если сделать бит - "1" эта ножка станет выходом.

PORTx - позволяют задать состояние ноги - логическая единица или логический ноль, а также включать подтягивающий резистор. Задавая битам этого регистра "1" или "0" мы получим то же значение и на ножках (если они в регистре DDRx отмечены как выходы).

PINx - рассчитаны только на чтение и позволяют определить уровень на ноге, когда она работает на ввод.

 

http://avrfuse.narod.ru/

DelegateCommand

/// <summary>
/// Provides a simple ICommand implementation.
/// </summary>
// metadata token 020001E2
public class DelegateCommand : System.Object, System.Windows.Input.ICommand
{
	private readonly System.Action<object > execute;
	private readonly System.Predicate<object > canExecute;
	private System.Collections.Generic.List<System.WeakReference > canExecuteChangedHandlers;

	// metadata token 06001564
	public DelegateCommand(System.Action<object > execute) {}

	// metadata token 06001565
	public DelegateCommand(System.Action<object > execute, System.Predicate<object > canExecute) {
		if (execute == null)
		{
			throw new ArgumentNullException("execute");
		}
		this.execute = execute;
		this.canExecute = canExecute;
	}

	/// <summary>
	/// Raises the CanExecuteChanged event.
	/// </summary>
	// metadata token 06001568
	public void InvalidateCanExecute() {}

	/// <summary>
	/// Defines the method that determines whether the command can execute in its current
	/// state.
	/// </summary>
	/// <param name="parameter">Data used by the command. If the command does not require
	/// data to be passed, this object can be set to null.</param>
	/// <returns>
	/// True if this command can be executed, otherwise - false.
	/// </returns>
	// metadata token 06001569
	public bool CanExecute(object parameter) {}

	/// <summary>
	/// Defines the method to be called when the command is invoked.
	/// </summary>
	/// <param name="parameter">Data used by the command. If the command does not require
	/// data to be passed, this object can be set to null.</param>
	// metadata token 0600156A
	public void Execute(object parameter) {}


	/// <summary>
	/// Occurs when changes occur that affect whether the command should execute.
	/// </summary>
	public virtual event System.EventHandler CanExecuteChanged;
}



.net шифрование RSA с помощью открытого или закрытого ключа

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

Затем взять нужные данные, сконвертировать их в массив байтов и зашифровать
Ну а затем расшифровать.

Собственно открытым мы шифруем, закрытым дешифруем.


Собственно вот пример кода который все иллюстрирует

using System;
using System.IO;
using System.Security.Cryptography;
using System.Text;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            RSACryptoServiceProvider RsaKey = new RSACryptoServiceProvider();
            string publickey = RsaKey.ToXmlString(false); //получим открытый ключ
            string privatekey = RsaKey.ToXmlString(true); //получим закрытый ключ

           

            File.WriteAllText("private.xml", privatekey, Encoding.UTF8);
            File.WriteAllText("public.xml", publickey, Encoding.UTF8);


            byte[] EncryptedData;
            byte[] data = new byte[1024];
            data = Encoding.UTF8.GetBytes("Hello");
            EncryptedData = RsaKey.Encrypt(data, false);


            byte[] DecryptedData = new byte[1024];
            DecryptedData = RsaKey.Decrypt(EncryptedData, false);


            RSACryptoServiceProvider RsaKey_n = new RSACryptoServiceProvider();
            RsaKey_n.FromXmlString(publickey + privatekey); //можно использовать только открытый ключ, или пару открытый и закрыты 
            DecryptedData = new byte[1024];
            DecryptedData = RsaKey.Decrypt(EncryptedData, false);


            Console.Read();
        }
     }
       
}