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