<!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1,minimum-scale=1.0,maximum-scale=1.0,user-scalable=no"> <meta name="author" content="Denis Ivanov"> <meta name="description" content="my personal site + blog"> <meta name="keywords" content="denis, ivanov, personal, blog, dotnet, ddd, domain, driven, design, reactive, cqrs, 2gis, subaru, .net, software, technologies"> <meta name="google-site-verification" content="RwWVPu3LqA08EEymfN9D3UNRGLqV7nxI-JT0ebLMKt8" /> <meta name="yandex-verification" content="6f247985ca8917c1" /> <link rel="canonical" href="http://dev.ivanovdenis.ru"> <!-- Social: Twitter --> <meta name="twitter:card" content="summary"> <meta name="twitter:site" content="@denisivanov"> <meta name="twitter:title" content="Denis Ivanov"> <meta name="twitter:description" content="my personal site + blog"> <meta name="twitter:image:src" content="http://dev.ivanovdenis.ru/img/seo/sharing-twitter.png"> <!-- Social: Facebook / Open Graph --> <meta property="og:title" content="Denis Ivanov" /> <meta property="og:site_name" content="Denis Ivanov" /> <meta property="og:type" content="website" /> <meta property="og:url" content="http://dev.ivanovdenis.ru" /> <meta property="og:image" content="http://dev.ivanovdenis.ru/img/seo/sharing-facebook.png" /> <meta property="og:description" content="my personal site + blog" /> <title>Denis Ivanov</title> <link rel="shortcut icon" href="/img/favicons/favicon.ico"> <link rel="apple-touch-icon" sizes="152x152" href="/img/favicons/apple-touch-icon-152x152.png"> <link rel="apple-touch-icon" sizes="144x144" href="/img/favicons/apple-touch-icon-144x144.png"> <link rel="apple-touch-icon" sizes="120x120" href="/img/favicons/apple-touch-icon-120x120.png"> <link rel="apple-touch-icon" sizes="114x114" href="/img/favicons/apple-touch-icon-114x114.png"> <link rel="apple-touch-icon" sizes="76x76" href="/img/favicons/apple-touch-icon-76x76.png"> <link rel="apple-touch-icon" sizes="72x72" href="/img/favicons/apple-touch-icon-72x72.png"> <link rel="apple-touch-icon" sizes="60x60" href="/img/favicons/apple-touch-icon-60x60.png"> <link rel="apple-touch-icon" sizes="57x57" href="/img/favicons/apple-touch-icon-57x57.png"> <link rel="icon" type="image/png" href="/img/favicons/favicon-196x196.png"> <link rel="icon" type="image/png" href="/img/favicons/favicon-160x160.png"> <link rel="icon" type="image/png" href="/img/favicons/favicon-96x96.png"> <link rel="icon" type="image/png" href="/img/favicons/favicon-32x32.png"> <link rel="icon" type="image/png" href="/img/favicons/favicon-16x16.png"> <meta name="msapplication-TileColor" content="#2b5797"> <meta name="msapplication-TileImage" content="/img/favicons/mstile-144x144.png"> <meta name="msapplication-config" content="/img/favicons/browserconfig.xml"> <meta name="theme-color" content="#2b5797"> <link href="/css/main.css" rel="stylesheet"> <link href="/css/code.css" rel="stylesheet"> <link href="/css/instafeed.css" rel="stylesheet"> <!-- HTML5 Shim and Respond.js IE8 support of HTML5 elements and media queries --> <!-- WARNING: Respond.js doesn't work if you view the page via file:// --> <!--[if lt IE 9]> <script src="https://oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js"></script> <script src="https://oss.maxcdn.com/libs/respond.js/1.4.2/respond.min.js"></script> <![endif]--> </head> <body> <div id="preloader" class="preloader"> <div class="loader-gplus"></div> </div> <div id="st-container" class="st-container disable-scrolling"> <div class="st-pusher"> <div class="st-content"> <!-- Begin Hero Section --> <section id="top-section-hero" class="top-section-hero top-section image-section" style="background-image: url('/img/sections-background/road-split.jpg');"> <header id="top-header" class="top-header"> <div class="overlay white-solid"></div> <svg id="menu-trigger" class="menu-trigger icon icon-menu visible-xs" viewBox="0 0 32 32"> <use xlink:href="/img/sprites/sprites.svg#icon-menu"></use> </svg> <a href="/" id="logo-header" class="logo-header"> <div class="logo logo-light"></div> </a> <nav class="st-menu st-effect" id="menu"> <div class="logo-navbar logo logo-dark visible-xs"></div> <ul> <li> <a class="current" href=" / " >Home</a> </li> <li> <a class="" href=" /blog/ " >Blog</a> </li> <li> <a class="" href=" /about/ " >About</a> </li> </ul> <ul id="bottom-navlinks" class="bottom-navlinks visible-xs"> <li> <a href=" https://github.com/denisivan0v/feedback/issues/new " target="_blank">Ask me a question</a> </li> </ul> <a href=" https://github.com/denisivan0v/feedback/issues/new " class="right-nav-button right-nav-button-hidden btn btn-primary waves-effect waves-button waves-light waves-float pull-right hidden-xs hidden-sm" target="_blank"> Ask me a question </a> </nav> </header> <div class="content-wrapper"> <div class="jumbotron"> <div class="animated hiding" data-animation="fadeInDown" data-delay="500"> <h1>Software Engineering And <span id="typeout-text" class="hidden-xs"></span><span class="typeout-fallback">Technologies</span></h1> <p>Denis Ivanov's Blog</p> <a href=" /#latest-news " class="btn btn-primary waves-effect waves-button waves-light waves-float" >Continue reading</a> </div> </div> <a href="#about" class="explore"> <svg class="icon icon-arrow-down" viewBox="0 0 32 32"> <use xlink:href="/img/sprites/sprites.svg#icon-arrow-down"></use> </svg> </a> </div> </section> <!-- End Hero Section --> <!-- Begin Latest News Section --> <section id="latest-news" class="latest-news"> <div class="content-wrapper"> <div class="col-lg-10 col-lg-offset-1"> <h3>Latest posts</h3> <article class="row"> <div class="post col-md-10 col-md-offset-1 text-left animated hiding" data-animation="fadeInDown" data-delay="500"> <h6>Digging deeper into Rx sequences</h6> <p class="post-body">Перейдём к более детальному обзору последовательностей в Rx. Тут будут обязательны знания LINQ, т.к. все построено на extension-методах к базовым абстракциям Rx (query-операторах) и вспомогательных статических типах. Так же не обойдется без знания... <a href="/blog/rx-sequences-digging-deeper">continue reading</a></p> </div> <div class="post col-md-10 col-md-offset-1 text-left animated hiding" data-animation="fadeInDown" data-delay="500"> <h6>Reactive Extensions: sequences and subscriptions</h6> <p class="post-body">Подписки и управление временем жизни Работая с observable-последовательностью, мы не можем знать когда она начинается и когда заканчивается. Этим знанием обладает источник, но не подписчик. Тем не менее, необходим детерминированный механизм управ... <a href="/blog/rx-sequences-and-subscriptions">continue reading</a></p> </div> </article> </div> </div> </section> <!-- End Latest News Section --> <!-- Begin Twitter Feed Section --> <section id="twitter-feed" class="twitter-feed image-section parallax" style="background-image: url(/img/sections-background/twitter-feed.jpg);"> <div class="overlay solid-overlay"></div> <div class="content-wrapper"> <div class="col-md-8 col-md-offset-2"> <svg class="icon" viewBox="0 0 30 32"> <use xlink:href="/img/sprites/sprites.svg#icon-twitter"></use> </svg> <h3>What's Up? <a href="https://twitter.com/denisivanov" target="_blank">@denisivanov</a> </h3> <div id="tweets" class="tweets"></div> </div> </div> </section> <!-- End Twitter Feed Section --> <!-- Begin Instagram Feed Section --> <section id="instagram-feed"> <div class="content-wrapper"> <div class="col-md-12"> <div id="instagram_list"> <div id="instagram_spinner"></div> </div> </div> </div> </section> <!-- End Instagram Feed Section --> <!-- About Section --> <section id="about" class="about"> <div class="content-wrapper"> <div class="col-lg-10 col-lg-offset-1"> <h3>Who Am I?</h3> <div class="row about-details"> <div class="col-md-4 col-xs-6"> <div class="animated hiding" data-animation="fadeInDown" data-delay="0"> <h5>Software dev</h5> <img class="img-circle" src="/img/about-section/dotnet.jpg" height="128" width="128" alt="Software dev"> <p>Usually I am using .NET to build software</p> </div> </div> <div class="col-md-4 col-xs-6"> <div class="animated hiding" data-animation="fadeInDown" data-delay="500"> <h5>Microsoft MVP</h5> <img class="img-circle" src="/img/about-section/mvp.png" height="128" width="128" alt="Microsoft MVP"> <p>MVP in .NET since 2015</p> </div> </div> <div class="clearfix visible-xs"></div> <div class="col-md-4 col-xs-6"> <div class="animated hiding" data-animation="fadeInDown" data-delay="1000"> <h5>Working for 2GIS</h5> <img class="img-circle" src="/img/about-section/2gis.png" height="128" width="128" alt="Working for 2GIS"> <p>Designing and developing some of the company's systems. Also running a team there.</p> </div> </div> </div> </div> </div> </section> <!-- End About Section --> <!-- Begin Subscribe Section --> <section id="subscribe" class="subscribe image-section parallax" style="background-image: url(/img/sections-background/subscribe.jpg);"> <div class="overlay solid-overlay"></div> <div class="content-wrapper"> <div class="col-lg-8 col-lg-offset-2 animated hiding" data-animation="fadeInUp" data-delay="0"> <h3>Contact me</h3> <div id="mc_embed_signup" class="col-lg-8 col-sm-8 col-lg-offset-2 col-sm-offset-2"> <div class="mc-field-group col-lg-12 col-sm-12 col-xs-12"> <i class="email bordered required waves-effect waves-light waves-input-wrapper"> <input type="submit" class="waves-button-input" value="Leave a message" name="subscribe" id="mc-embedded-subscribe" onclick="javascript:window.location.href='https://github.com/denisivan0v/feedback/issues/new'"> </i> </div> <span class="subscribe-info">I will try to answer as soon as possible. Stay tuned!</span> </div> </div> </div> </section> <!-- End Subscribe Section --> <!-- Begin Footer --> <footer id="footer" class="footer"> <div class="row"> <div class="pull-left col-md-6 col-xs-6"> <div class="g-plusone" data-size="medium" data-annotation="inline" data-width="300" data-href="http://dev.ivanovdenis.ru"></div> </div> <div class="logo logo-footer logo-gray pull-right"></div> </div> <div class="row"> <div class="col-md-6 col-xs-6"> <h5>Links</h5> <ul> <li><a href=" /about/ " >About</a></li> </ul> </div> <div class="col-md-6 col-xs-6"> <h5>Contacts</h5> <ul> <li><a href=" mailto:denis@ivanovdenis.ru " target="_blank">denis[at]ivanovdenis[dot]ru</a></li> </ul> </div> </div> <div class="row"> <div class="col-md-6 col-xs-12"> <ul class="social-links"> <li> <a href=" https://plus.google.com/113159328736283972698 " target="_blank"> <svg class="icon icon-google-plus" viewBox="0 0 30 32"> <use xlink:href="/img/sprites/sprites.svg#icon-google-plus"></use> </svg> </a> </li> <li> <a href=" https://twitter.com/denisivanov " target="_blank"> <svg class="icon icon-twitter" viewBox="0 0 30 32"> <use xlink:href="/img/sprites/sprites.svg#icon-twitter"></use> </svg> </a> </li> <li> <a href=" https://facebook.com/ivanovdenis.ru " target="_blank"> <svg class="icon icon-facebook" viewBox="0 0 30 32"> <use xlink:href="/img/sprites/sprites.svg#icon-facebook"></use> </svg> </a> </li> <li> <a href=" /feed.xml " target="_blank"> <svg class="icon icon-rss" viewBox="0 0 30 32"> <use xlink:href="/img/sprites/sprites.svg#icon-rss"></use> </svg> </a> </li> </ul> </div> </div> <div class="row"> <!-- Please don't delete this line--> <div class="col-md-6"> <p class="copyright"> &copy; 2014 Based on <a href="https://github.com/gdg-x/zeppelin" target="_blank">Project Zeppelin</a>. Designed and created by <a href="https://plus.google.com/+OlehZasadnyy/about" target="_blank">Oleh Zasadnyy</a> &middot; <a href="http://lviv.gdg.org.ua" target="_blank">GDG Lviv</a> </p> </div> </div> </footer> <!-- End Footer --> </div> </div> </div> <script> (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){ (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o), m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m) })(window,document,'script','//www.google-analytics.com/analytics.js','ga'); ga('create', 'UA-62226812-1', 'auto'); ga('send', 'pageview'); </script> <!-- Yandex.Metrika counter --> <script type="text/javascript"> (function (d, w, c) { (w[c] = w[c] || []).push(function() { try { w.yaCounter31748171 = new Ya.Metrika({ id:31748171, clickmap:true, trackLinks:true, accurateTrackBounce:true, webvisor:true }); } catch(e) { } }); var n = d.getElementsByTagName("script")[0], s = d.createElement("script"), f = function () { n.parentNode.insertBefore(s, n); }; s.type = "text/javascript"; s.async = true; s.src = "https://mc.yandex.ru/metrika/watch.js"; if (w.opera == "[object Opera]") { d.addEventListener("DOMContentLoaded", f, false); } else { f(); } })(document, window, "yandex_metrika_callbacks");</script><noscript><div><img src="https://mc.yandex.ru/watch/31748171" style="position:absolute; left:-9999px;" alt="" /></div></noscript> <!-- /Yandex.Metrika counter --> <script src="//ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <script> window.jQuery || document.write('<script src="/js/jquery-2.1.1.min.js"><\/script>') </script> <script src="//maxcdn.bootstrapcdn.com/bootstrap/3.2.0/js/bootstrap.min.js"></script> <script> if (typeof($.fn.modal) === 'undefined') { document.write('<script src="/js/bootstrap.min.js"><\/script>') } </script> <script src="/js/default.js"></script> <script> Waves.displayEffect(); var twitterFeedUrl = 'https://twitter.com/denisivanov'; $(document).ready(function () { $(function () { if ($(window).width() > 767) { $("#typeout-text").typed({ strings: ["Technologies", ".NET", "Open Source", "DDD", "Rx"], typeSpeed: 150, backDelay: 900, loop: true }); } }); }); </script> <script src="/js/scripts.min.js"></script> <script src="/js/spin.min.js"></script> <script src="/js/instafeed.min.js"></script> </body> </html>
