Tag Archives: Microsoft

LINQ

В данный момент я руковожу несколькими проектами на платформе .NET. Давно я не писал о разработке. Технологии разработки ПО за последние годы серьёзно развились.

Чего только стоит Microsoft LINQ. Эта штука – фактически язык запросов для данных, независимо от их источника. Можно и для БД применять (это LINQ to SQL), можно для XML, можно для списков/массивов. На днях пришлось накидать простенькую софтину на пару сот строк кода, и для работы с данными (который в БД SQL Server 2008 лежат) решил применить LINQ. Ниже кусочек кода:

using (DataClassesDataContext dc = new DataClassesDataContext())

{

dc.Names.InsertAllOnSubmit(names

.Where(n => n != “”)

.Distinct()

.Except(dc.Names.Select(n => n.Title))

.Select(n => new Name() { Title = n }));

dc.SubmitChanges();

}

Здесь я беру string[] и закидываю эти данные в БД, для каждого элемента массива создавая отдельную строку в таблице Names. При этом тут же делается проверка на уникальность, как в исходном массиве (если строка в массиве встречается дважды, то обрабатывается только один раз), так и в БД ( если в таблице уже есть строка с таким значением в поле Title, то я её не добавляю). Также проверяем на то, что строка не пустая.

Просто, кратко и удобно. На всё 10 строк простого хорошо читаемого кода.

С решениями Microsoft приятно работать.

Павел Сурменок

http://surmenok.ru/

Об iPhone

Много разговоров про Apple и её продукцию. В т.ч. недавняя серия постов в блоге http://dz.livejournal.com/ (там в данный момент как раз идёт мегасрач в комментах :) ).

http://dz.livejournal.com/606046.html

http://dz.livejournal.com/606431.html

http://dz.livejournal.com/606914.html

http://dz.livejournal.com/607059.html

 

«Вспомнилось, как одну даму спросили, где хранится текст, который мы выделили мышкой и нажали copy, но перед тем, как нажали paste.

- “Конечно в мышке!“, – сказала она, посмотрев на вопрошающего как на идиота.

Вы реально не представляете себе уровень юзеров.»

 

В целом из этих дискуссий выходит, что Apple целит в неграмотных пользователей.

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

 

Но вот чего я не понимаю: зачем все эти возможности  Apple блокирует вовсе?

Подход Android, на мой взгляд, более здравый: http://dz.livejournal.com/606914.html?thread=12383426#t12383426

Android даёт людям удобно и без напряжения мозга делать простые вещи: позвонить, СМС отправить, календарь, музыка, фото и прочее. Но при этом не закрывает более хитрые возможности.

Я сам пользуюсь HTC Desire. И меня радует, что скажем нет ограничения на интерфейсы. Я телефон к компьютеру вообще не подключаю шнурком. Всё через мобильный интернет и WiFi (причём сеть WiFi он сам нашел и подключился). Программы с маркета качаются через интернет. Файлы тоже сливаются с интернета. Без лишних ограничений. Даже OS телефон обновил сам, без подключения к компьютеру.

 

Еще любопытно будет на Win Phone 7 глянуть. Но судя по обзорам, они ближе к Apple :( Например, софт можно только из маркетплэйса ставить, каждая программа в своей песочнице, а при разработке софта для связи с серверам даже сокеты недоступны. Поурезали всё, что можно. Но маркетинг могуч, видимо продавят  платформу. Да и по UI, говорят, приятен весьма.

 

Павел Сурменок

http://surmenok.ru/

 

IE9 станет еще быстрее

«- Какие основные цели стоят перед командой при разработке новой версии Internet Explorer?

- Самые большие цели – это производительность и новые стандарты. Новые – не потому что просто новые, а те, которые люди хотят видеть во всех платформах. У нас уже есть многое из HTML5, многое из CSS3, есть SVG.

 

 

- Каким образом в новой версии достигается это ускорение? В частности, графики.

- Производительность – это довольно многомерная вещь. Есть много вещей, которые участвуют в процессе от обращения к проводу до того момента, когда пиксели загорятся на мониторе. И в этом процессе есть несколько вещей, которые мы переделываем очень серьёзно. У нас есть новый движок JavaScript, который работает намного быстрее, чем предыдущий. Он написан совсем с нуля с учётом того, как сейчас используется JavaScript. Мы учли и новые подходы к программированию и существование новых многоядерных процессоров. Есть новая графическая система, которая использует ресурсы видеокарты. Кто-то пробовал превью и обнаружил ускорение в сто раз между Chrome и IE9 на некоторых тестируемых вещах, связанных с большим количеством графики. Есть и другие серьёзные улучшения.

 

 

- Хотелось бы узнать технические подробности. Как именно достигнуто ускорение JavaScript?

- Не знаю, насколько технически глубоко рассказывать, я не читаю каждую строчку кода, но ключевая вещь, которую делает наш движок JavaScript – это компиляция. Важно также решение, когда нужно и когда не нужно компилировать. Бывает так, что если скрипт исполняет каждую строчку по разу, то компилировать будет бесполезно и медленно. Есть другая важная вещь – компиляция происходит в фоновом процессе, обычно на другом ядре. То линейное время, которое требовалось скрипту, раньше не только становится меньше, но исчезает.

 

 

- Давайте поговорим о новых возможностях. В IE9 будет поддерживаться тег video и кодек H.264. Почему именно этот кодек?

- Это хороший стандарт – этого достаточно.

- Mozilla, к примеру, агитирует за поддержку Theora.

- Я знаю, почему Mozilla агитирует за Theora. У них нет кода для поддержки H.264. Если бы им кто-нибудь дал бесплатно код, они бы были совершенно счастливы.

 

 

… В тот момент шестой IE имел 95 процентов рынка, мы решили, что идти за революционерами – глупо, менять браузер, которым все пользуются – тоже глупо, поэтому мы перестали этим заниматься лет на пять или шесть. Там была цепь неправильных решений – я не буду их защищать, но это остаётся фактом – мы не занимались браузером очень долго. Если чем-то не заниматься очень долго, то конкуренты могут чего-нибудь достичь.»

 

Похоже, за браузер они взялись плотно. К слову, я уже успел отметить существенное улучшение юзабилити в IE7 и существенное повышение производительности в IE8. Думаю, что скоро браузер отшлифуют до приличного уровня.

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

 

Павел Сурменок

Красноярск, 17 апреля 2010, утро

 

Microsoft сотрудничает с Яндексом

Сегодня случайно попал на поисковик Bing и заметил интересную вещь. В русскоязычном Bing теперь висит контекстная реклама Яндекс.Директ.

Ну что ж, думаю, это по крайней мере в краткосрочной перспективе для них выгодней, чем вывешивать свою системы контекстной рекламы. Я уже и не помню, как она у них называется :)

 

Павел Сурменок

Красноярск, 7 января 2010, утро

 

Готовим кодеров

На форуме митуя такая тема недавно возникла. Цитирую первое сообщение:

 

 

R******* (03:16:09 1/10/2009)
мы кстати классы проходим

 arvitaly (03:16:13 1/10/2009)
з******

R******* (03:16:16 1/10/2009)
теперь понимаю чтотакое классы

arvitaly (03:16:20 1/10/2009)
слава богу

arvitaly (03:16:24 1/10/2009)
и что это такое?

R******* (03:16:53 1/10/2009)
смотри

R******* (03:16:55 1/10/2009)
я понял так

R******* (03:17:00 1/10/2009)
есть встроенные классы

R******* (03:17:04 1/10/2009)
типо таск бар

R******* (03:17:14 1/10/2009)
корче

R******* (03:17:22 1/10/2009)
этим потом пользуется программер

R******* (03:17:33 1/10/2009)
с помощью классса можно создать объекты


Человек на 3 курсе Факультет кибернетики и информатики. Специальность – программист. Проходят C#. Вот так он понимает классы. И ООП в целом. Кто-то может сказать: плохие преподаватели, тупой студент, плохой ВУЗ. Однако к этому МайкроСофт нас и тащит. К выпуску абсолютно не способных думать и строить алгоритмы специалистов, которые зато знают наизусть названия 500 классов. И, несмотря на то, что Visual Studio NET – лучший на данный момент продукт на этом рынке, учить с помощью него программированию я считаю самой большой глупостью. ИМХО

 

 

Ну… Что тут сказать… Кажется, у Леченчука читал недавно на эту тему. Лет 10-20-30 назад программированием занимались только энтузиасты, которых реально пёрло от процесса (сам такой был когда-то :) ). И качество кода соответственно было выше, ведь сумасшедший энтузиаст вникает в детали, постоянно обучается, стремится к совершенству.

Сейчас программирование стало доступно каждому, любому школьнику, а-то и дошкольнику. Среднее качество кода упало очень низко. Но нельзя сказать, что это плохо. Благодаря значительному увеличению кол-ва программистов снизилась стоимость разработки, и теперь любое ООО “Рога и копыта” может заказать у индусов (или школьников) какую-нибудь софтину автоматизации чего-то там, им эту софтину недорого напишут, и они будут довольны. Потому что 30 лет назад хрен бы они нашли свободного специалиста, который бы согласился их мелочными проблемами заниматься, а если и нашли бы, то стоило бы это много миллионов денег.

Это в целом, что касается снижения среднего уровня программистов.

 

А что касается сути вопроса топикстартера, то виноват тут не MS. MS предлагает вполне адекватный инструментарий. Виноват во многом сам тупой студент, и немного виновата система образования, которая построена так, что даже элементарные вещи студентам вдолбить не может. По-хорошему, до 3-го курса он не должен был дожить.

 

Другие заметки по теме:

Автоматизируя образование

Реформируя образование

 

Друзья, подписывайтесь на RSS!

 

Павел Сурменок

Красноярск, 3 октября 2009, вечер