Microsoft раздает Visual Studio 2010 почти даром.

Сегодня пришло письмо о том, что с 11 октября  Microsoft начнет раздавать Visual Studio 2010 почти даром. Почти даром заключается в скидке 60% на профессиональную версию. Получается цена в районе шести с половиной тысяч рублей, что в общем то адекватно нашим реалиям. Подробности можно прочитать на их  сайте http://www.microsoft.com/visualstudio/ru-ru/offers/. Вот бы другие разработчики (читай Embarcadero) последовали примеру Microsoft.

Вперед к интероперабельности в WCF.

Сегодня столкнулся с необходимостью создать заготовку кода для сервера WCF по имеющемуся WSDL файлу. Оказалась такая задача не решается при помощи встроенных средств Visual Studio. Я был очень расстроен этим фактом. Дальше оказалось, что найти в интернете решение данной проблемы не так просто, как кажется на первый взгляд. Большинство авторов рассматривают вопрос генерации клиента по WSDL файлу, а мне нужно было сделать заготовку для сервера. В итоге двух часов поиска я наконец нашел решение проблемы. Это специальный аддон к Visual Studio — WSCF.blue. Это небольшое и бесплатное дополнение делает заготовку кода для сервера Web-службы за несколько секунд.

Сегодня День программиста ! Ура ! Ура ! Ура !

Сегодня 13 сентября День программиста !

11 сентября 2009 года президент России Дмитрий Анатольевич Медведев подписал Указ, который устанавливает в России новый официальный профессиональный праздник – День программиста.

Согласно этому документу, День программиста будет праздноваться в России на 256-й день года — 13 сентября, а если год високосный — 12 сентября. Число 256 выбрано потому, что  это максимальная степень числа 2, которая меньше количества дней в году — 365.

Лично сейчас праздную День программиста пивом. Ура ! Ура ! Ура !

Конвертация строки из Windows-1251 в UTF-8

Пример функции на VB.NET для конвертация строки из Windows-1251 в UTF-8 .
Лично я потратил на составление этой функции часа два. Надеюсь тому кто ее найдет повезет больше.


' Конвертация строки из Windows-1251 в UTF-8
Protected Function Conv(ByVal s As String) As String
Dim utf8 As Encoding = Encoding.GetEncoding("utf-8")
Dim win1251 As Encoding = Encoding.GetEncoding("windows-1251")
' строка в массив
Dim a1 As Byte() = win1251.GetBytes(s)
' конвертация массива
Dim a2 As Byte() = Encoding.Convert(win1251, utf8, a1)
' массив в строку
Dim Result As String = utf8.GetString(a2)
' возвращаем результат
Return Result
End Function

На первый взгляд поражаешься отсутствию такой простой встроенной функции, но на второй взгляд она оказывается совершенно не нужной. В моем случае после того, как я разобрался со всеми преобразованиями оказалось, что конвертировать нужно непосредственно при чтении из файла, а в процедуре чтения уже заботливо вставлен параметр для указания кодовой страницы.

За два часа прошу не судить меня строго, VB все же не мой «родной язык».

Первая программа.

Как я уже писал ранее нас допустили до компьютеров ДВК-2, и стали обучать программированию. С этой целью класс был разбит на группы по 3-4 человека и каждому такому коллективу было дано задание написать свою программу на Basic. Моей группе досталась программа про три сосуда различного объема с жидкостью. Жидкость можно было переливать из одного сосуда в другой с непонятной целью (цель на самом деле была понятная, но сейчас я не могу ее вспомнить). В голову одного из членов нашего коллектива пришла «гениальная» мысль — сделать переливание воды в графическом режиме с изображением сосудов и переливающейся воды. Учитывая, что дисплей был алфавитно-цифровой, задача была не для слабонервных.

Двое из четырех членов нашего коллектива не проявляли интереса к программированию, поэтому фактически мы писали эту программу вдвоем с тем человеком, которому пришла в голову мысль о «графическом» интерфейсе. В результате наших трудов на свет появилась работающая (причем без глюков !) программа по переливанию жидкости между тремя сосудами.

Листинг этой программы был длинной порядка двух метров. Для того времени и возможностей ДВК-2 это была крутая программа, которой я по праву горжусь до сих пор.

Знакомство с ПК.

Осенью 1986 года наш класс наконец допустили к персональным компьютерам. До этого как я уже описывал мы занимались программированием на калькуляторах.  Первым компьютером который я увидел и потрогал в своей жизни был ДВК-2.

ДВК-2
ДВК-2

ДВК расшифровывается, как диалоговый вычислительный комплекс, а цифра два обозначает, что это уже вторая версия этого комплекса. Этот компьютер был советским аналогом PDP-11 фирмы DEC. В качестве устройства отображения информации использовался алфавитно-цифровой терминал. Для хранения информации использовались две 8-ми дюймовые дискеты (жесткого диска не было !!!).

Вот на таком чуде техники, я начал писать программы для компьютеров. В качестве языка программирования использовался Basic. С современной точки зрения самым необычным в ДВК-2 (как наверное и в других компьютерах того времени) является способ включения. Для включения компьютера надо было вместо одной кнопки нажать несколько переключателей в определенном порядке и с интервалом во времени.

1990 год : Билл Гейтс в Москве презентует MS-DOS

20 лет назад: Билл Гейтс в Москве презентует MS-DOS. С ужасом вспоминаю, знал ли я в 1990 году, кто такой Билл Гейтс, и начинаю склоняться к мнению, что не знал.  И о существовании фирмы Microsoft то же не знал.

Первое понимание.

Как я уже рассказывал в предыдущей записи мой путь в программирование начался с микрокалькулятора «Электроника МК-54». Этот калькулятор для вычислений использовал польскую нотацию. Для выполнения арифметических действий над числами использовался стек.  Например, сложение двух чисел происходило следующим образом:

  1. Вводим первое число.
  2. «Проталкиваем» число в стек.
  3. Вводим второе число.
  4. Вводим требуемую операцию, в данном примере сложение.
  5. Первое и второе число исчезают, из стека, а на его вершине появляется результат.

Как в такой системе производить операции над числами я освоил сразу, а вот всю мощь и прелесть стека оценить сразу не смог. Понимание того, как устроен стек, я считаю своим действительно первым пониманием в программировании. Как это не печально, но произошло оно на экзамене по информатике. Я получил 4, но зато узнал как работает стек. Преподаватель задал мне вопрос: «Как выполнить на калькуляторе (2+10)*(15-3) без использования регистров памяти ?» Если Вы не можете это сделать, то Вы так же, как и я 25 лет назад не понимаете, как работает стек !


Начало пути.

1985 год был во многом знаменательным для меня и всей страны. Для тех, кто не помнит истории, напоминаю, что в этом году Михаил Сергеевич Горбачев был избран Генеральным секретарем ЦК КПСС и началась перестройка.

В плане научно технического прогресса в этом году произошло знаменательное событие. Советская электронная промышленность выпустила программируемый микрокалькулятор «Электроника МК-54». С этого калькулятора и начался мой путь в программирование.

Электроника МК-54
Электроника МК-54

В калькуляторе использовалась польская нотация(запись) и он позволял  проводить инженерные расчеты с использованием введенных в него программ. В общем, для своего времени, это было чудо вычислительной техники. Калькулятор имел 4 операционных регистра (стек), 14 регистров памяти для хранения данных и 98 регистров для хранения шагов программы. Недостатком калькулятора было отсутствие энергонезависимой памяти, при выключении питания программа вместе с данными исчезала, что было иногда весьма печальным событием.

На этом калькуляторе я научился составлять свои первые программы. Как выяснилось впоследствии это было фактически программирование на ассемблере.