войти зарегистрироваться

MicrosoftОбзор интересных программ от Microsoft Research

Microsoft Research (MSR) — подразделение корпорации Microsoft, созданное в 1991 году для исследования различных вопросов и тем в области информатики. Microsoft Research объединяет 800 исследователей в шести глобальных лабораториях по всему миру.

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

Мне очень нравится следить на развитием MSR и сейчас хочу рассказать о некоторых программах, которые я часто использую.

Читальный залМеняем книги на рецензии

Технологическое сообщество «Microsoft User Group Винница» с недавних пор заручилось поддержкой одного из крупнейших мировых издательств технической литературы — Apress.

В связи с этим издательство прислало несколько оригинальных электронных книг, в том числе:Мы с удовольствием вышлем вам одну или несколько книг в обмен на вашы отзывы и рецензии, которые будут опубликованы в нашем блоге «ИТ литература». Обращаться можно в личку либо на email: msugvn[at]gmail.com.

.NETНужна ли книга по F# на русском языке?

Совсем скоро выйдет Visual Studio 2010, в которую будет включен язык программирования F#. Язык довольно новый, но уже полюбившийся многим программистам со всего мира, в том числе и из России. Литературы для его изучения пока очень мало, а на русском языке так и подавно.

Предлагаю Вам помочь устранить этот недочет. А сделать это довольно просто – зайти на блог издательства Вильямс и ответить на вопрос – нужно ли переводить вскоре выходящую книгу “The Definitive Guide to F#” на русский язык? Написана она одним из главных идеологов и создателей языка F#, так что информация там, действительно, актуальная и познавательная.  Если отзывов наберется достаточно, то книга, скорее всего, появится уже совсем скоро в России. Если нет, то мы упустим уникальную возможность одними из первых изучить данный язык и оказаться на гребне программисткой волны.

Собственно, решать Вам. Если Вы за, то напишите, пожалуйста, об этом на специальной страничке. Спасибо.

.NETОб F# для архитекторов

Данная статья выросла из доклада, сделанного Крисом Смитом, одним из разработчиков F# на конференции DevLink. В целом она носит обзорный характер, однако несмотря на это, и на то, что усилиями shwars, mezastel и отчасти вашего покорного слуги F# уже не раз мелькал на Хабре, думаю что этот язык программирования не стал еще настолько очевиден всем, чтобы эта статья полностью потеряла смысл. Более того, здесь Крис пытается ответить на главный вопрос, который, думаю, мучает всех, кто хоть раз слышал о F#. Где же все-таки его применять? Получилось у него или нет – вам судить. Надеюсь после прочтения у вас хоть что-то относительно всего этого прояснится. Если так, я буду считать свою миссию перевыполненной :)
P.S. Первый перевод, поэтому не обессудьте за некоторые возможные баги.
image

.NETАсинхронное программирование — цепочки вызовов

Когда в коде фигурирует пара вызовов BeginXxx()/EndXxx(), это приемлимо. Но что если алгоритм требует несколько таких вызовов подряд, то количество методов (или анонимных делегатов) преумножится и код станет менее читабельным. К счастью, эта проблема решена как в F# так и в C#.

.NETСоздание DSL на языке F#

Хочу представить сообществу перевод моей статьи на CodeProject, в которой я описываю процесс создания DSLей с использованием языка F#.

.NETЯзыки предметной области Domain-Specific Languages (DSL)

Что это?


Это некоторая форма компьютерных языков, разрабатываемых для специфичной предметной области. Это то, что позволяет вам (разработчикам ПО) лучше взаимодействовать с носителями “доменных знаний”. А так же позволяет более лаконично оформлять бизнес-логику. Это то, что представляет собой, к примеру, SQL, Linq, многое из синтаксиса Ruby On Rails.

Блог им. GrassF# не ленится :(

Вот код:

let rec Y func tracker args =
    func args (Y func tracker (tracker args))
    
let fib N = (fun (x, y) -> x) (Y 
    (fun N (prev, pprev) -> if N = 1 then (1, 0) else (prev + pprev, prev)) 
    (fun N -> N - 1)
    N)
        
let main =
    let value = fib 10
    System.Console.WriteLine(value)
    System.Console.ReadKey()

При компиляции и запуске он, вместо того, чтобы полностью рассчитать первую лямбда-функцию с N = 0 на кой-то черт рассчитывает никому не нужные значения N, меньшие нуля!

Что происходит? Может быть, «ленивость» можно как-то форсировать?