Сайт для программистов

четверг, 31 июля 2008 г.

11 правил Билла Гейтса

Попался мне на глаза еженедельник Upgrade. Там наткнулся на интересную статью. Якобы Билл Гейтся, выступая перед американскими школьниками, привел 11 правил, которым не учат в школе. Неизвестно, насколько достоверна эта информация, но правила представляют определенный интерес. Эти правила элементарно находятся по поисковому запросу. Поэтому, я не стал перепечатывать правила из журнала, а скопировал из первого попавшего источника в сети. Литературный перевод правил на некоторых сайтах различается, но общий смысл одинаков.
Правило 1: Жизнь не справедлива – привыкайте.
Правило 2: Общество совершенно не волнует Ваша САМООЦЕНКА. От вас ждут ДОСТИЖЕНИЙ прежде всего.
Правило 3: Вы НЕ БУДЕТЕ зарабатывать $60,000 в год сразу по окончании школы. Вы не станете вице-президентом с личным водителем, пока вы не заработаете на то и другое.
Правило 4: Если вы думаете, что учитель слишком суров по отношению к вам, - это еще цветочки. Подождите, пока у вас появится босс.Правило
5: Жарить гамбургеры - ниже вашего достоинства? Ваши дедушки и бабушки считали совсем по-другому. Для них жарить гамбургеры было возможностью зацепиться в этой жизни.
Правило 6: Если у вас что-то не вышло, это не вина ваших родителей, так что не надо хныкать, УЧИТЕСЬ на своих ошибках.
Правило 7: Родители не всегда были такие скучные, как вам сейчас кажется. Может быть постоянная забота о вас сделала их такими? Они вас кормят, одевают, постоянно слушают какие вы замечательные. Так что прежде чем критиковать поколение своих родителей, начните с себя.
Правило 8: Быть может в вашей школе не корректно открыто называть неудачника неудачником и в вашей школе уже не осталось неудачников, но не в жизни. В некоторых школах уже не возможно остаться на второй год, потому что вам дается СТОЛЬКО попыток СДАТЬ экзамены, сколько необходимо для перевода в другой класс. В жизни все СОВСЕМ по-другому.
Правило 9: Жизнь не делится на семестры. У вас не будет летних каникул, и ваш работодатель не будет помогать вам НАЙТИ СЕБЯ. Вам придется делать это самим в свое свободное время.
Правило 10: В телевизоре не показывают НАСТОЯЩУЮ жизнь. В реальной жизни не получится весь день сидеть в кафе и болтать с друзьями.
Правило 11: Поласковее с «ботаниками». Один из них может оказаться вашим боссом после окончания школы.
Удачи вам в этой жизни! (это от меня)

суббота, 26 июля 2008 г.

Обновление совета: Определение версии операционки

В своей книге C#. Советы программистам я приводил пример определения версии операционной системы. Хотелось бы дополнить слегка устаревший пример. На данный момент, операционные системы Windows Vista SP1 и Windows Server 2008 имеют одинаковые номер 6.0.6001. Поэтому возникает проблема в определении операционки. На сайте http://www.vb-helper.com/howto_2005_os_version.html предлагается для решения проблемы прочитать значение ключа из реестра (пример на Visual Basic). Ниже предлагается мой вариант для C# (для краткости я не учитываю устаревшие версии Windows 3.1/95/98/Me/NT)


private const string REG_PRODUCT_KEY = @"HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion";
private string GetOSVersion()
{
OperatingSystem osInfo = Environment.OSVersion;
string osName = "Не определено";
switch (osInfo.Platform)
{
case PlatformID.Win32NT:
{
switch (osInfo.Version.Major)
{
case 5:
{
if (osInfo.Version.Minor == 0)
{
osName = "Windows 2000";
}
else if (osInfo.Version.Minor == 1)
{
osName = "Windows XP";
}
else if (osInfo.Version.Minor == 2)
{
osName = "Windows Server 2003";
}
break;
}
case 6:
{
string info = Microsoft.Win32.Registry.GetValue(REG_PRODUCT_KEY, "ProductName", "").ToString();
if (info.ToLower().Contains("vista"))
{
osName = "Windows Vista";
}
if (info.ToLower().Contains("server"))
{
osName = "Windows 2008";
}
break;
}
}
break;
}
}
return osName;
}

private void button2_Click(object sender, EventArgs e)
{
MessageBox.Show(GetOSVersion());
}


Удачного вам программирования!

воскресенье, 20 июля 2008 г.

Modern Talking

Нет, речь пойдет не творчестве некогда очень популярного немецкого дуэта Modern Talking. Я покажу вам способ, заставить компьютер разговаривать. Начиная с .NET Framework 3.0, в библиотеке классов появилось новое пространство имен System.Speech, которое отвечает за голосовые движки. Вот простейший пример. Добавьте сначала ссылку на System.Speech в проекте и напишите следующий код.
using System.Speech.Synthesis;

// Код для кнопки
SpeechSynthesizer synth = new SpeechSynthesizer();
synth.Speak("I love .NET Framework!");


Запустите пример и щелкните на кнопку. На компьютере под управлением Windows Vista есть уже предустановленный голос Microsoft Anna, в чем вы можете убедиться, если откроете в Панели управления настройку Текст и речь. Если вы обнаружите, что у вас установлено несколько голосов, то сначала можете выбрать нужный при помощи дополнительной строчки
synth.SelectVoice("Microsoft Lili");
Удачных вам современных разговоров с компьютером!

воскресенье, 13 июля 2008 г.

UseSystemPasswordChar

Давно мы с вами не говорили о новинках в .NET Framework 2.0. Сегодня я расскажу вам о новом свойстве UseSystemPasswordChar, которое появилось у элемента управления TextBox.
Свойство TextBox.UseSystemPasswordChar получает или устанавливает значение, показывающее, вводятся ли в элементе управления TextBox символы пароля, визуально заданные на уровне системы. Например, в Windows Vista символы пароля имеют вид крупных точек, а не звездочек. Свойство UseSystemPasswordChar имеет преимущество перед свойством PasswordChar и при использовании системных символов для пароля любые символы, заданные при помощи PasswordChar, игнорируются.
Значение свойства:
Тип: System.Boolean. true, если текст в TextBox должен отображаться в виде стандартного вида парольного символа на уровне системы. В других случаях равно false.
Пример:
// Используем системные символы для пароля при вводе
textBox1.UseSystemPasswordChar = true;

Счастливого вам программирования!

суббота, 5 июля 2008 г.

Приемная Путина

Сегодня с утра меня в квартире несколько раз зазвенел телефон.
-Алло?
-Здравствуйте, это приемная Путина?
-Нет.
-А что?
-Квартира.
-Извините.
На моей памяти, когда по ошибке набирали мой номер телефона, то спрашивали детский сад, налоговую инспекцию, баню. Но, приемная Путина - это круто. Даже с учетом, что он теперь не Президент России.
И хотя сегодня суббота и первый выходной день после рабочей недели, этот звонок с утра не вызвал раздражения, что не дали мне отдохнуть.

вторник, 1 июля 2008 г.

Картинки для TreeView

Если вам приходилось раньше использовать элемент TreeView в своих проектах, то, наверняка, задавались вопросом - как использовать вместо плюсиков-минусов привычные картинки открытой или закрытой папки как в Проводнике или использовать свои собственные картинки. Для решения этой проблемы нужно было использовать системное сообщение Windows TVM_SETIMAGELIST. Готовый пример можно посмотреть например на странице FAQ от GotDotNet. Я также поместил этот пример на страницу устаревших функций Windows API.
Но, начиная с .NET Framework 2.0 у элемента TreeView есть свойства ImageIndex и SelectedImageIndex, которые в сочетании с элементом ImageList, помогут вам обеспечить необходимую функциональность. Пересмотрите свои старые примеры и внесите необходимые изменения.
Удачного вам программирования!