Дмитpий Hecтepук

Блог о программировании — C#, F#, C++, архитектура, и многое другое

Об авторе

54 комментария

MeРешил добавить страничку о себе, но не знаю что писать, т.к. CV постить как-то неохота. Вот ключевые моменты.

Коротко: вечный эмигрант (уехал из России в 1992г.), уже давно «на пенсии». Наслаждаюсь климатом Испании (Барселона, Майорка, Канары), читаю книги, катаюсь на электровелосипедах.

Образование: B.Sc. Computer Science, University of Southampton.
Карьера: Сейчас я нигде на «заслуженном отдыхе». А так… вечность в разработке (в основном .NET, сейчас С++), зарелизил 3 полноценных .NET-ных продукта плюс по мелочи на мобильных платформах. Считаю себя вполне себе μISV. Когда-то я работал как Technical Evangelist в компании JetBrains (пожалуй, лучшай IT контора в Петербурге, имхо) а также работаю до сих пор как Visiting Research Fellow в University of Southampton… причем я на кафедре психологии но занимаюсь явно не психологией. Почему так? Исторические причины. Но держать позицию очень выгодно: много плюшек, и есть с кем пообщаться.

Комьюнити: соорганизатор (только в том смысле что я видео пишу) внезапно ожившей Петербургской .NET User Group. Активный участник конференций .NEXT. MVP Visual C# получил в 2009 за всю работу, до сих пор этот статус поддерживаю.


Проф. интересы:

  • Финансовая инженерия — то есть все начиная от анализа данных и составления моделей и заканчивая торговыми роботами и иже с ними.
  • Интеграция данных — как эффективно получить данные их стороннего источника, обработать их, и правильно сохранить. Поставляю решения с использованием собственных наработок. Достаточно успешно применяю Altova MapForce.
  • Потоковая обработка данных — Reactive Extensions, в основном. Визуализирую с помощью собственных наработок.
  • Анализ данных — SPSS/SAS, MATLAB, Mathematica и самописные программы.

Непроф. интересы (внезапно!):

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

  • Ножи — мне нравятся ножи из чисто эстетических соображений. Пока на «кастомы» еще не перешел, но уже кое-какие интересные (в т.ч. не совсем разрешенные) экземпляры у меня имеются.


Мой разработческий стек:

  • Языки: C++. Раньше был приемущественно C# (MVP с 2009г.), но сейчас склоняюсь к C++ для вычислений, F# для отдельных задач (к пр. парсеры). Рассматриваю D, даже курс по этому языку записал.
  • IDE: VS2013 для всего серьезного, IntelliJ IDEA, собственный ActiveMesa Lightning Editor. Ну и MATLAB конечно же. Также внутрипроцессный редактор. Экспериментирую с MPS (в основном для генерации VHDL).
  • Библиотеки: на С++ конечно Boost, QuantLib, fix8. Для web mining’а используется WatiN, Html Agility Pack, MongoDB.
  • Базы данных: MongoDB, но есть один проект на SQL Server CE. На SQL Server и аналоги уже больше смотреть не могу, от NHibernate становится плохо. Мой вам совет: использйте обычные файлы везде где можете, и NoSQL базы там где уж совсем надо. Если нужен репортинг — купите одну лицензию и спроецируйтесь туда.
  • Презентационный слой: его почти нет, а из того что есть — Asp.Net MVC (SharpKit, jQuery/AJAX), WinForms (DevExpress). Пробовал WPF но “не срослось”. Всякие SharpKit, плюс TypeScript т.к. нет выбора толком.
  • Математические пакеты: Mathematica, MATLAB, SPSS
  • И еще: для синхронизации файлов между машинами фанатично использую DropBox, чего и вам желаю, т.к. сервис просто спасает. Хотя BitTorrent Sync тож ничего для синхронизации всего некритичного (фотографий, музыки, видео).


Интересы (nobody cares, I know) :

  • Финансовое программирование: очень давняя моя затея, которая до недавнего момента была всего лишь хобби. Сейчас же я решил что пора производить конверсию навыков, поэтому есть ненулевая вероятность, что когда-нибудь я пойду учиться по специальности M.Sc. Financial Engineering (MFE). А почему бы и нет? Образование-то бесплатное.
  • Компьютеры: периодически собираю новые компьютеры; разбираюсь в аппаратной тематике; страдаю нетерпимостью к экономии на основных средствах для девелоперов.
  • HiFi: люблю музыку в нормальном качестве, хотя и допускаю, что людей которые в этом разбираются в принципе мало, и многим хватает качества звучания МакБука или Айпода. У меня есть и то и другое, и должен признаться — качество звука у эппловских устройств – абсолютная, унылая посредственность.
  • Радио: когда я был малолеткой, дома было несколько неплохих приемников (Sony делала весьма серьезные аггрегаты). Сейчас иногда включаю свой Alinco чего-нибудь послушать, хотя много иностранных радиопрограмм теперь можно найти в интернете. А всякая экзотика, это да… кстати, у меня все это на страницы гаджетов описано.


Чтобы связаться со мной, пишите по BBM (pin 2BB3A125) или по электропочте @gmail.com

Реклама

Written by Dmitri

16 июля 2010 в 19:04

комментария 54

Subscribe to comments with RSS.

  1. ты сможешь помочь мне как переделать всё на русский язык в моём блоге http://vsebloger.wordpress.com/

    vsebloger

    11 ноября 2010 at 13:02

  2. А почему Boo используете для метапрограммирования, а не, к примеру, деревья выражений в C#?

    Oleg

    2 августа 2011 at 14:16

    • Тут все просто — деревья могут создавать только expressions, а не statements. Метапрограммирование в Воо — намного более серьезный функционал. И главное понятный — с деревьями выражений очень сложно работать, плюс они компилируются в процессе исполнения.

      Dmitri

      3 августа 2011 at 9:34

      • Старый, конечно, комментарий. Больше ни Boo ни Nemerle не использую.

        Dmitri

        15 февраля 2017 at 15:35

  3. Дмитрий, у вас опечатка в слове «нетерпимостью».

    з.ы. Спасибо за подкаст по .NET!

    optim1st

    20 августа 2011 at 10:07

  4. Здравствуйте Дмитрий.
    Не могли бы Вы подсказать как решить следующую задачу с помощью mongodb желательно PHP?
    Рекурсивный обход.
    Есть категории товара, у них есть под категории, и так далее, у товара есть атрибуты, наименование, цена и пр.
    Нужно искать вводить и удалять товар.
    Может быть есть примеры где то, я не нашел.
    Спасибо.

    Олег

    1 октября 2011 at 0:55

    • Привет, я если честно ничего не знаю про то, как работает РНР драйвер для Монго — сам использовал только NoRM & mongodb-csharp. Соответственно рекоммендую пойти на сайт Монго и посмотреть, как строятся запросы из под РНР, и возможно ли это вообще.

      Dmitri

      11 октября 2011 at 9:24

  5. Извините это про mongodb

    Oleg

    1 октября 2011 at 11:15

  6. Можно и на mongodb-csharp

    Олег

    11 октября 2011 at 23:39

  7. Дмитрий. Доброго времени суток. Очень интересно читать Ваши посты и слушать подкасты. Спасибо Вам за них. В частности подкасты группы altnet. Но возникла проблема, ссылка на 19 подкаст группы altnet на всех возможны ресурсах битая. Не могли бы Вы ее восстановить или выслать целую ссылку на мою почту. Был бы Вам за это очень признателен.

    Евгений Д.

    3 апреля 2012 at 22:38

  8. как эффективно получить данные их стороннего источника — опечатка

    Александр

    15 июля 2012 at 20:14

  9. Добрый день (или что сейчас за окном)
    Подскажите, как написать кастомный паттерн для решарпера (Code Inspection)

    Есть контсруктор, после чего идёт что-то, а затем есть необходимость его закрывать:


    $ConnectedReader$ $cr$ = new $ConnectedReader$($arg$);
    [много кода]

    надо показывать ошибку и менять на

    $ConnectedReader$ $cr$ = new $ConnectedReader$($arg$);
    [много кода]
    $cr$.Close();

    потратил время и так и не понял можно ли это сделать в принципе. Пользовался толь визуальной тулзой в VisualStudio 2010

    Спасибо

    Rinat

    26 августа 2012 at 22:54

    • О нет тут к сожалению паттерн не подойдет, тут нужен полноценный демон который, по сути, пройдет каждую декларацию метода и, при условии что где-то в начале задекларирована переменная типа ConnectedReader и нигде больше нет вызова Close() на этом методе даст Quick-Fix на уровне метода чтобы его добавить. Рекомендую смотреть на RecursiveElementProcessor, ну и на документацию по демонам в Plugin Dev Guide.

      Dmitri

      27 августа 2012 at 14:18

  10. Добрый день, уже не знаю кто сможет помочь.
    выгружаю из MSSQL данные в XML, собственно все нормально, кроме одного момента.
    отрывок из XSD:

    Описание экземпляра номенклатуры основной продукции (работ, услуг)

    Описание экземпляра номенклатуры основной продукции (работ, услуг)

    Описание экземпляра номенклатуры основной продукции (работ, услуг)

    Предшествующие годы

    Отчетный (базовый)год

    Наименование номенклатуры

    Единица измерения

    Должно получиться следующее:

    ……………………..

    3084.12
    3393.12
    3645.3
    4070.31
    4211.4409

    А получается только так:

    Пробую через MapForce.

    Сможете как-то помочь?
    С уважением, Сергей.

    Сергей

    10 октября 2012 at 16:48

    • весь xsd и xml пропал…

      Сергей

      10 октября 2012 at 16:49

      • Да, тут не получится постить что-то сильно форматированное…

        Dmitri

        2 ноября 2012 at 20:53

  11. Дмитрий! Если бы не программирование, наука и финансовая инженерия — чем бы Вы занимались? Есть какие-нибудь проекты вне IT сферы?

    Александр

    13 февраля 2013 at 11:37

    • Уфф… если честно, IT это настолько интересно что на несколько жизней хватит. Остальное время уходит на юридические и бюрократические вещи.

      Dmitri

      13 февраля 2013 at 12:14

  12. Доброго времени суток! Какие по Вашему мнению языки программирования сейчас в тренде? Как Вы относитесь к технологиям WCF и WF? Используете ли Вы облака (может быть про облака у Вас был отдельный подробный пост или подкаст)?

    Игорь Г.

    13 февраля 2013 at 11:57

    • Я конечно не эксперт в этом деле, но WF — неперспективно и вообще полумертво, а вот WCF — полезный инструментарий, хотя далеко и не единственный. Все зависит от того чего хочется достигнуть. Если хочется котироваться на рынке, то конечно нужно смотреть на то что «модно» сейчас. Я бы сказал что самая интересная и высокооплачиваемая технология на сегодняшний день это CUDA, но рынок для нее ооочень узкий.

      Dmitri

      13 февраля 2013 at 17:39

      • Какие альтернативы WCF вы можете предложить? Спасибо за ответы!

        Игорь Г.

        14 февраля 2013 at 11:06

        • Зависит от задачи. Например NServiceBus/MSMQ. Вообще в WCF ничего плохого нет :)

          Dmitri

          16 февраля 2013 at 12:41

  13. Здравствуйте Дмитрий
    Недавно открыл для себя подкасты Solo на .NET и ALT.NET) Слушаю с удовольствием. Спасибо Вам большое)
    Хочу еще спросить) как Вы относитесь к веб платформе ASP.NET? Не кажется ли она слишком громоздкой по сравнению с php?

    Денис

    21 июля 2013 at 23:05

    • ASP.NET действительно громоздка. Если вы хотите поставить кому-нибудь решение, то я бы для начала брал какую-нибудь CMS (в моем случае это достаточно экзотичная MindTouch Core) и поверх ней уже стройте сайт.

      Dmitri

      28 сентября 2013 at 10:34

  14. Дмитрий, добрый день.

    Спасибо за ваш курс на haxlet! У меня такой вопрос: чем вы занимались в 25?

    И чтобы два раза не вставать. Я внезапно понял, что с начала карьеры и по сегодняшний день (3 года) занимался не тем, к чему душа лежит. Как вы считаете, в 25 не поздно заняться программированием почти с нуля, имея только теоретические знания?

    Everyday

    18 декабря 2013 at 21:49

    • Конечно не поздно. Вперед, и все получится! Отвечая на ваш вопрос, я и в 25 программировал, и даже в 15.

      Dmitri

      21 декабря 2013 at 13:37

  15. У вас большой опыт в обработке данных. Может подскажите, как лучше организовать работу. Необходимо парсить информацию с сайта с накоплением данных. Т.е. в течении дня на сайте выкладываются новые позиции (по-сути html-таблица), позиций может быть до 200000 в день (это с большим запасом взял). При переходе на след день, информация сбрасывается в файл и сбор начинается по-новой. Размер таблицы (одна позиция) — до 10 кб. Как лучше хранить информацию в течении дня? У позиции есть UID и таблица с данными. Стоит ли использовать базу данных? Или достаточно имеющихся структур C# (напр. Dictionary)

    Спасибо!

    al

    16 февраля 2014 at 22:44

    • У вас append-only система? Я бы использовал обычные файлы.

      Dmitri

      16 февраля 2014 at 23:20

      • нет, не append-only , данные в течении дня могут не только добавляться ,но и меняться

        al

        16 февраля 2014 at 23:40

        • Ну да, тогда Dictionary<uid,record>, и обновлять по мере поступления. А сериализовывать в конце дня.

          Dmitri

          16 февраля 2014 at 23:49

        • Ок, тогда не буду с базами заморачиваться, спасибо!
          И ещё, узнать данные обновились можно двумя способами.. Либо при парсинге страниц, либо через подписку на RSS позиции… Я думаю, что не стоить даже парсить ответ от RSS, просто считать хэш текста, если изменился — данные обновлены, обновляем данные позиции… Парсиг самих позиций через HtmlAgilityPack…

          al

          17 февраля 2014 at 0:01

  16. Здравствуйте, Дмитрий! На Вашем курсе по финансовой инженерии (за который спасибо) Вы порекомендовали обратить внимание на торговую площадку LMAX. В интернете нашел достаточно много негативных отзывов от людей, якобы пробовавших свои силы там. Скажите, пожалуйста, Вы сами имеете опыт работы на данной площадке и какой (+/-)? Спасибо за ответ!

    Ed

    1 июня 2014 at 1:03

    • Привет! LMAX — это технология которая очень подходит для свода заявок — собственно то, чем занимается сам LMAX. Поскольку я сам не являюсь биржей то мне такая технология не очень подходит — я использую другое железо и другие подходы. Идея кругового буфера для выемки сообщений конечно хороша, то также можно просто строить order book-и в железе (fpga) без напряга cpu вообще. Главный урок из технологии LMAX — это синергия с процессором по части выравнивания данных.

      Dmitri

      1 июня 2014 at 11:17

  17. Дмитрий, здравствуйте! Наткнулся на Ваш курс на Pluralsight — Accelerated Introduction to C++.
    Подскажите, нет ли версии этого курса на русском языке?

    Анатолий Панков

    10 августа 2015 at 8:56

    • К сожалению нет. Если хочется курс именно на русском, посмотрите на курс С++ на Stepic.

      Dmitri

      10 августа 2015 at 11:25

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

    Алексей

    22 сентября 2015 at 20:49

    • Понятие рентабельности применимо для предприятий. Ликвидность рынков можно считать бесконечной, но кол-во усилий для того чтобы что-то заработать — тоже огромно.

      Dmitri

      22 сентября 2015 at 21:01

      • Я с вами не соглашусь, рентабельность применима для всего, что подразумевает затраты и получение дохода. Тем не менее вы не скажите приносит ли это вам прибыль и % прибыли по отношению к вложенным средствам? Отвечать или нет дело конечно ваше, но данный показатель ведь не говорит о суммах, интересна эффективность.

        Алексей

        23 сентября 2015 at 11:23

        • Знаете, есть такая поговорка «деньги любят тишину». Я своим положением очень доволен. Затраты тут временные в основном, в попытках нащупать что-то полезное.

          Dmitri

          25 сентября 2015 at 23:58

  19. Дмитрий, почему перешли на С++? C# не достаточно эффективен для вычислений?

    Андрей

    10 ноября 2015 at 7:18

    • Я не то чтобы куда-то с чего-то перешел. Я начинал-то с С++, когда мне лет 14 было. Так что это скорее возвращение. И я не то чтобы переметнулся из одного лагеря в другой — я использую и то и то, и не воспринимаю я.п. как некую религию.

      Dmitri

      10 марта 2016 at 8:32

  20. Здравствуйте, Дмитрий,

    нашёл ваши скринкасты на удачу для себя. Просмотрел все, что смог понять, с большим удовольствием!)
    У меня к вам вопрос, к сожалению, не знал где его задать, надеюсь, в этой ветке он дойдёт до вашего внимания.
    Сам я себя считаю веб-программистом, это в основном PHP, Javascript итд, но когда-то в относительно далёком прошлом я был программистом C#, и такое тоже бывает) С другой стороны, один мой друг с самого начала и до текущего момента является приверженцем С++, он ни на чём другом никогда не программировал, но как и все «плюснутые» ребята, заявляет, что нет языка лучше.
    Сейчас мне приходится вернуться к «настольным» языкам программирования, для меня спустя такое большое количество времени практически всё равно на каком программировать и C# и C++ будет одинаково сложно/легко заново поднять, по крайней мере меня не сильно волнует, если, скажем, условно С++ мне будет сложнее поднять на 50%, это не страшно главное результат. Но вот вопрос, который меня мучает.
    Мой друг, ослеплённый сиянием С++ не видит или не хочет видеть, что его продуктивность на этом языке гораздо ниже чем на языках более высокого уровня, как скажем C#, как не профессионал на таких языках, я это вижу по косвенным признакам, на что он тратит своё драгоценное время. Иногда возникает ощущение, что он вообще не разрабатывает, а вся его деятельность заключается в подготовке к разработке.
    Судя по тому, что я о вас прочитал, что увидел, ваш путь лежал через С# к C++, оттого мне и интересно, как так сложилось и в чём вы, именно вы, нашли выгоду для себя в этом языке?

    Спасибо.

    Владимир

    6 февраля 2016 at 22:46

    • У меня все по-другому. Я сначала, когда был еще в школе, научился C++ но потом меня увело сначало в Java а потом, как только появился .NET, я понял что по сравнению с C# Java уныла, и перешел на него. На C++ меня заставили вернуться несколько вещей: я очень хорошо понял как амортизировать сложное железо (также появились деньги чтобы его покупать), и потом оказалось что для квантов, C++ это основной язык. Насчет «ослепленности» я скажу так: сейчас очень интересное время для C++, язык становится все более юзабельным, и хотя проблем еще вагон их хоть как-то решают. В качестве альтернативы C++ я бы сейчас рассматривал не C#/Java а нативные языки вроде D или Rust. Там делаются попытки сочетать «нативность» кода и производительность современных языков. Так или иначе C++ живее всех живых, и вполне возможно переживет текущее поколение языков.

      Dmitri

      18 февраля 2016 at 23:50

  21. Имею удовольствие быть немного знакомой с А.В.Нестеруком. Вы с ним — одно лицо :) и блог неожиданно дополнил мне картинку того знакомства. Мой комент, собс-но, ни о чем, не стоит его публиковать — это своеобразный привет!

    Irkin

    22 декабря 2016 at 20:33

    • Ну, я рад :) но как видите, я не пишу книги по богословию.

      Dmitri

      22 декабря 2016 at 20:53

      • Еще не вечер! Если про творение с точки зрения квантовой физики уже можно почитать, то курс про инициализацию человеков, переопределение божественных функций и деструкторы апокалипсиса еще ждет своего автора ;)

        irkin

        22 декабря 2016 at 23:39

  22. Дмитрий, как понимаю вы откинули web, desktop разработку и копаете совсем в иную сторону (явно не mobile, big data, VR, AI) вопрос: почему так? Вы не видите перспектив в вебе/мобайле или они слишком слабы? или просто не ваше?)

    Den

    8 января 2017 at 20:03

    • мне как php программисту страшно оставаться «мамонтом», даже со знаниями последнего php 7.1 и es7

      Den

      8 января 2017 at 20:08

    • Деньги. Все дело в деньгах. Чтобы сделать вменяемые деньги в ИТ, нужен свой стартап — все остальное это объедки с барского стола. Поэтому я и ушел в финмат и биржи. А еще переучиваться надоело, тут каждый год новая революция: то big data то IoT то machine learning… я с удовольствием готов всем этим пользоваться, но хочется держать руку на пульсе и быть поближе к деньгам. Чего и вам желаю.

      Dmitri

      8 января 2017 at 23:08

  23. Привет. Где взять свежий rss для подкаста? На подфм похоже все умерло.

    Юрий

    25 ноября 2017 at 8:50

    • Оно не умерло, просто я там все выкладываю с задержкой по отношению к подкастам на YouTube.

      Dmitri

      25 ноября 2017 at 11:02


Оставить комментарий

Заполните поля или щелкните по значку, чтобы оставить свой комментарий:

Логотип WordPress.com

Для комментария используется ваша учётная запись WordPress.com. Выход / Изменить )

Фотография Twitter

Для комментария используется ваша учётная запись Twitter. Выход / Изменить )

Фотография Facebook

Для комментария используется ваша учётная запись Facebook. Выход / Изменить )

Google+ photo

Для комментария используется ваша учётная запись Google+. Выход / Изменить )

Connecting to %s

%d такие блоггеры, как: