• Guest
HabraHabr
  • Main
  • Users

  • Development
    • Programming
    • Information Security
    • Website development
    • JavaScript
    • Game development
    • Open source
    • Developed for Android
    • Machine learning
    • Abnormal programming
    • Java
    • Python
    • Development of mobile applications
    • Analysis and design of systems
    • .NET
    • Mathematics
    • Algorithms
    • C#
    • System Programming
    • C++
    • C
    • Go
    • PHP
    • Reverse engineering
    • Assembler
    • Development under Linux
    • Big Data
    • Rust
    • Cryptography
    • Entertaining problems
    • Testing of IT systems
    • Testing Web Services
    • HTML
    • Programming microcontrollers
    • API
    • High performance
    • Developed for iOS
    • CSS
    • Industrial Programming
    • Development under Windows
    • Image processing
    • Compilers
    • FPGA
    • Professional literature
    • OpenStreetMap
    • Google Chrome
    • Data Mining
    • PostgreSQL
    • Development of robotics
    • Visualization of data
    • Angular
    • ReactJS
    • Search technologies
    • Debugging
    • Test mobile applications
    • Browsers
    • Designing and refactoring
    • IT Standards
    • Solidity
    • Node.JS
    • Git
    • LaTeX
    • SQL
    • Haskell
    • Unreal Engine
    • Unity3D
    • Development for the Internet of things
    • Functional Programming
    • Amazon Web Services
    • Google Cloud Platform
    • Development under AR and VR
    • Assembly systems
    • Version control systems
    • Kotlin
    • R
    • CAD/CAM
    • Customer Optimization
    • Development of communication systems
    • Microsoft Azure
    • Perfect code
    • Atlassian
    • Visual Studio
    • NoSQL
    • Yii
    • Mono и Moonlight
    • Parallel Programming
    • Asterisk
    • Yandex API
    • WordPress
    • Sports programming
    • Lua
    • Microsoft SQL Server
    • Payment systems
    • TypeScript
    • Scala
    • Google API
    • Development of data transmission systems
    • XML
    • Regular expressions
    • Development under Tizen
    • Swift
    • MySQL
    • Geoinformation services
    • Global Positioning Systems
    • Qt
    • Dart
    • Django
    • Development for Office 365
    • Erlang/OTP
    • GPGPU
    • Eclipse
    • Maps API
    • Testing games
    • Browser Extensions
    • 1C-Bitrix
    • Development under e-commerce
    • Xamarin
    • Xcode
    • Development under Windows Phone
    • Semantics
    • CMS
    • VueJS
    • GitHub
    • Open data
    • Sphinx
    • Ruby on Rails
    • Ruby
    • Symfony
    • Drupal
    • Messaging Systems
    • CTF
    • SaaS / S+S
    • SharePoint
    • jQuery
    • Puppet
    • Firefox
    • Elm
    • MODX
    • Billing systems
    • Graphical shells
    • Kodobred
    • MongoDB
    • SCADA
    • Hadoop
    • Gradle
    • Clojure
    • F#
    • CoffeeScript
    • Matlab
    • Phalcon
    • Development under Sailfish OS
    • Magento
    • Elixir/Phoenix
    • Microsoft Edge
    • Layout of letters
    • Development for OS X
    • Forth
    • Smalltalk
    • Julia
    • Laravel
    • WebGL
    • Meteor.JS
    • Firebird/Interbase
    • SQLite
    • D
    • Mesh-networks
    • I2P
    • Derby.js
    • Emacs
    • Development under Bada
    • Mercurial
    • UML Design
    • Objective C
    • Fortran
    • Cocoa
    • Cobol
    • Apache Flex
    • Action Script
    • Joomla
    • IIS
    • Twitter API
    • Vkontakte API
    • Facebook API
    • Microsoft Access
    • PDF
    • Prolog
    • GTK+
    • LabVIEW
    • Brainfuck
    • Cubrid
    • Canvas
    • Doctrine ORM
    • Google App Engine
    • Twisted
    • XSLT
    • TDD
    • Small Basic
    • Kohana
    • Development for Java ME
    • LiveStreet
    • MooTools
    • Adobe Flash
    • GreaseMonkey
    • INFOLUST
    • Groovy & Grails
    • Lisp
    • Delphi
    • Zend Framework
    • ExtJS / Sencha Library
    • Internet Explorer
    • CodeIgniter
    • Silverlight
    • Google Web Toolkit
    • CakePHP
    • Safari
    • Opera
    • Microformats
    • Ajax
    • VIM
  • Administration
    • System administration
    • IT Infrastructure
    • *nix
    • Network technologies
    • DevOps
    • Server Administration
    • Cloud computing
    • Configuring Linux
    • Wireless technologies
    • Virtualization
    • Hosting
    • Data storage
    • Decentralized networks
    • Database Administration
    • Data Warehousing
    • Communication standards
    • PowerShell
    • Backup
    • Cisco
    • Nginx
    • Antivirus protection
    • DNS
    • Server Optimization
    • Data recovery
    • Apache
    • Spam and antispam
    • Data Compression
    • SAN
    • IPv6
    • Fidonet
    • IPTV
    • Shells
    • Administering domain names
  • Design
    • Interfaces
    • Web design
    • Working with sound
    • Usability
    • Graphic design
    • Design Games
    • Mobile App Design
    • Working with 3D-graphics
    • Typography
    • Working with video
    • Work with vector graphics
    • Accessibility
    • Prototyping
    • CGI (graphics)
    • Computer Animation
    • Working with icons
  • Control
    • Careers in the IT industry
    • Project management
    • Development Management
    • Personnel Management
    • Product Management
    • Start-up development
    • Managing the community
    • Service Desk
    • GTD
    • IT Terminology
    • Agile
    • Business Models
    • Legislation and IT-business
    • Sales management
    • CRM-systems
    • Product localization
    • ECM / EDS
    • Freelance
    • Venture investments
    • ERP-systems
    • Help Desk Software
    • Media management
    • Patenting
    • E-commerce management
    • Creative Commons
  • Marketing
    • Conferences
    • Promotion of games
    • Internet Marketing
    • Search Engine Optimization
    • Web Analytics
    • Monetize Web services
    • Content marketing
    • Monetization of IT systems
    • Monetize mobile apps
    • Mobile App Analytics
    • Growth Hacking
    • Branding
    • Monetize Games
    • Display ads
    • Contextual advertising
    • Increase Conversion Rate
  • Sundry
    • Reading room
    • Educational process in IT
    • Research and forecasts in IT
    • Finance in IT
    • Hakatonas
    • IT emigration
    • Education abroad
    • Lumber room
    • I'm on my way

“We just need to gently generate the LLVM IR.” Egor Bogatov on Mono and .NET Core

 3r33434. 3r3-31. “We just need to gently generate the LLVM IR.” Egor Bogatov on Mono and .NET Core Egor Bogatov is a Microsoft developer from the Mono team who works on Mono and integrates it with .NET Core. We talked with him about how to work inside Xamarin and Microsoft, about the love of game devs. They discussed why SSD is the best friend of the developer, and the use of reports at conferences does not always correspond to their complexity.
 3r33434.
3r3405. 3r3408.  3r33434.

Introduction: about encrypted demos and how to get into Xamarin

3r3408.  3r33434. - Let's tell Habra who you are, what you do. 3r3408.  3r33434. 3r3408.  3r33434. - I’m a developer, I’ve been working on the .NET stack for ten years, I’ve worked a little bit in Java and have written quite a bit under Android. 3r3408.  3r33434. 3r3408.  3r33434. He worked in different companies: he started from an outsourcing, then moved to the grocery, such as Viber and Playtika. Then I poflanil slightly, including in Java, and went to work in Xamarin. 3r3408.  3r33434. 3r3408.  3r33434. - How did you get there? 3r3408.  3r33434. 3r3408.  3r33434. - I have long been fond of .NET and Mono. I liked C #, but didn’t like Microsoft’s policy, which tied him strongly to Windows. Therefore, I have been following the cross-platform implementation since its inception. 3r3408.  3r33434. 3r3408.  3r33434. I actively followed Mono, Xamarin, as soon as it appeared: I liked the concept itself. Participated in their contests and several times took second places. I was noticed and offered to work as a contractor, and Miguel de Icaza himself wrote that it was a complete surprise for me, because for me he was a legend man. 3r3408.  3r33434. 3r3408.  3r33434. - How did you start? 3r3408.  3r33434. 3r3408.  3r33434. - Miguel suggested that I write a demo that included a chat with end-to-end encryption for mobile platforms. I had experience with chat applications and I was fond of the topic of encryption, so initially they took me to the backend, but I said that I can develop for Android. After that, I was engaged in various third-party projects Xamarin - I was not allowed in the runtime and the components themselves. 3r3408.  3r33434. 3r3408.  3r33434. Miguel has many interesting projects. Sometimes it seems to me that this is a group of people under one name. Well, one person cannot fumble around, answer everyone, be aware of everything. 3r3408.  3r33434. 3r3408.  3r33434. Several times I made demos for it for large conferences such as Xamarin Evolve and MS Build - this is the biggest developer konfa from Microsoft. 3r3408.  3r33434. 3r3408.  3r33434. And what was their commercial significance of these demos, what are they for? 3r3408.  3r33434. 3r3408.  3r33434. Just advertising technology among potential customers. For example, one of the demo showed an example of how you can easily embed 3D visualization into a regular application on any platform and this opportunity interested several serious companies in this area. 3r3408.  3r33434. 3r3408.  3r33434.

About work: tasks and the eternal dispute "remote or office"
3r3408.  3r33434. - And now what are you doing? 3r3408.  3r33434. 3r3408.  3r33434. - I was transferred to the runtime team, that is, directly to Mono. My main responsibility is to use Mono and .NET Core, that is to be somewhere between two runtimes. This allows me to better understand .NET, because I am researching and examining all of these types, starting from the most basic to the most complex. In two years, we managed to build up a good base of experience and get to know all the key developers. 3r3408.  3r33434. 3r3408.  3r33434. - Do you work from home? 3r3408.  3r33434. 3r3408.  3r33434. - We have a small Microsoft office in Minsk. I occasionally visit there, but mostly I work from home. 3r3408.  3r33434. 3r3408.  3r33434. - And which is better: to work in the office or at home? 3r3408.  3r33434. 3r3408.  3r33434. - To work at home you need a lot of self-discipline. Periodically I try to combine this with travel, but it does not work out very effectively. For example, I need a full-fledged healthy desktop computer with three monitors. On a laptop, I can not work comfortably. 3r3408.  3r33434. 3r3408.  3r33434. - Do you need it for monitors or is the power of a computer important? 3r3408.  3r33434. 3r3408.  3r33434. - Both for monitors, and for power. I periodically need to compile different runtime: mono, coreclr, corert, turn virtualke, etc. For this, I need a full-fledged top processor, not a misunderstanding cut by TPD, and, of course, a fast SSD. 3r3408.  3r33434. 3r3408.  3r33434. - That is, if you want to work on the Mono code, do you need a normal PC? 3r3408.  3r33434. 3r3408.  3r33434. - Mono includes the source code. NET and. NET Core in the form of submodules, so in the end there is a huge number of files that need to somehow quickly move, so the most important thing is a fast SSD. We must take something from Samsung 960 Pro and up. Bottleneck is always in IO. 3r3408.  3r33434. 3r3408.  3r33434. - Describe your work day 3r3408.  3r33434. 3r3408.  3r33434. - I work remotely from Minsk. The main part of my team is in the USA, although there are a few people in Europe, there are people in Japan, Australia, even in Africa. Such a distributed command. We communicate mainly in Slack, a couple of times a week we hold rallies. Periodically meet in Boston or Redmond. 3r3408.  3r33434. 3r3408.  3r33434. The tasks are mostly quite abstract. For example, to port types from a specific namespace. I can take something in parallel, go to GitHub and fix some bugs. Periodically doing something for .NET Core - trying to optimize or clean something. 3r3408.  3r33434. 3r3408.  3r33434. - Where do tasks come from, how is it organized? Any endless backlog? 3r3408.  3r33434. 3r3408.  3r33434. - Tasks get users and team leads, once a month we have a week of bug fixing: you only do bug fixing for a whole week, you throw other things. 3r3408.  3r33434. 3r3408.  3r33434. At other times, it is also advisable not to forget about the bugs, but you need to adhere to the main goals, for example, my goal is to port the main types from mscorlib and make Mono /Xamarin compliant with NET Standard 2.1. Porting types usually looks like throwing away an old implementation and replacing it with a reference to code in a .NET Core submodule with adaptation. 3r3408.  3r33434. 3r3408.  3r33434.
About Microsoft, axes and "betrayal" 3r3324. 3r3408.  3r33434. - Well, yes, the license allows. And in general you are in the same company. 3r3408.  3r33434. 3r3408.  3r33434. - Yes, it allows. We have done this before. Mono was part of some distros, I think there was even Mono in Ubuntu and GNOME. Miguel said that he would let everyone under the monastery. 3r3408.  3r33434. 3r3408.  3r33434. “Yes, I remember, Stallman called him a traitor.” 3r3408.  3r33434. 3r3408.  3r33434. - They were afraid that at any moment Microsoft lawyers might come out and sue everyone, which Microsoft, fortunately, did not do. 3r3408.  3r33434. 3r3408.  3r33434. - Well, yes, Microsoft did the exact opposite - it became Linux to use at home. 3r3408.  3r33434. 3r3408.  3r33434. - Microsoft is now completely different with the new CEO, the focus on cloud technologies has led us into the world of open-source and all that we couldn’t think of before. It is now possible to download Ubuntu WSL from the Marketplace with one click, add MS SQL Server to Linux and develop .NET from under macOS. 3r3408.  3r33434. 3r3408.  3r33434. - So you can safely write code under open licenses and no one will say anything? 3r3408.  3r33434. 3r3408.  3r33434. - Yes of course. Naturally, before putting any internal project into an open source, a small bureaucracy is needed, but in general, I did not meet any prohibitions on the use of something. 3r3408.  3r33434. 3r3408.  3r33434. - Do you have tasks that require three platforms at once? 3r3408.  3r33434. 3r3408.  3r33434. - I have a whole set: one computer on Windows, MacBook with macOS and a laptop with Fedora. Also a whole placer virtualok, including WSL. Most often, bugs are divided into two types - Windows and non-Windows, which are played on both macOS and Linux. 3r3408.  3r33434. 3r3408.  3r33434.
We understand with .NET Core and Mono

3r3408.  3r33434. - What are the directions that you like, and they can be developed in the .NET Core and in Mono? 3r3408.  3r33434. 3r3408.  3r33434. - Personally, I like the big emphasis on performance and cross-platform. Productively constantly improving in combat conditions ranging from Bing to public benchmarks like TechEmpower, in which .NET Core shows itself from a very good side along with solutions based on Go, Java and C ++. Many people still have a stereotype about .NET, like Windows-only technology with a brake virtual machine - we are successfully fighting this stereotype. 3r3408.  3r33434. Our team pays great attention to AOT scripts and using LLVM as a backend for generating machine code. LLVM is a very powerful tool with a huge amount of optimizations. It is only necessary to gently generate LLVM IR with a minimum number of safe-points, so as not to interfere with this optimization. Personally, I not so long ago even wrote my simple LLVM transformation pass. 3r3408.  3r33434. 3r3408.  3r33434. I am also pleased that C # and .NET are mainstream along with C ++ in game dev thanks to Unity and some other engines that have C # scripting. 3r3408.  3r33434. There is a potentially interesting direction - compiling C # in a Web Assembly for a browser. 3r3408.  3r33434. 3r3408.  3r33434. - I don’t know how in .NET, but sometimes you have to drag a bunch of standard libraries to compile. In Java, you run Hello World, and you have ?000 classes loaded. The browser will load a huge amount of megabytes. What do you think about this? 3r3408.  3r33434. 3r3408.  3r33434. - The minimum size of the runtime Mono with the base library is about two megabytes. But even Apple has this problem: applications written in Swift are dragging each of their runtime. So far, Mono-wasm technology is damp and based on runtime, which was AOT compiled into a WASM + interpreter for user code. By the way, runtime is now being rewritten from C to C ++, I hope this will not affect the size in the end. 3r3408.  3r33434. 3r3408.  3r33434. - And you did not try to rewrite Mono on C # instead of pluses or C? 3r3408.  3r33434. 3r3408.  3r33434. - The idea sounds good, but it would require unrealistic resources and we have some progress in this. The .NET Core team has reached such a level of C # and .NET that the positive code is replaced with C #, so as not to bathe with cross-platform and at the same time it does not lose performance. A recent example is the translation of the implementation of parsing and converting numeric types and the entire Decimal has been rewritten to C #. I am very happy and greatly simplifies the work of migrating the code. 3r3408.  3r33434. 3r3408.  3r33434.

About Garbage Collector

3r3408.  3r33434. - I saw the .NET Core GC, which scare children, because it is one and a half megabytes of source code in C ++! One and a half megabyte, Karl! How many books are there ?! 3r3408.  3r33434. 3r3408.  3r33434. - Yes, yes, while 47 contributors were noted in this file according to the githabu. I am not an expert on the Garbage Collector, but in general GC has a rather general theory like the Mark-n-Sweep algorithm, which is complicated by generations and attempts to avoid the total stops of the world and to do everything parallel to the main execution flow. 3r3408.  3r33434. 3r3408.  3r33434. - Do you have plugins or the ability to change the Garbage Collector or is it alone? 3r3408.  3r33434. 3r3408.  3r33434. - In Mono, there are several implementations, and in .NET Core, a public API has recently been made that allows you to take a couple of headers, write your HZ and connect it to any application in the same environment variable. As an example, there is an article on how to write ZeroGC for .NET Core. In the world of containers, where it is not necessary to clean up the garbage behind you, it may be relevant. In general, this allows someone, for example, to take the current implementation and optimize it as much as possible for, say, gamedev, so that stopping the world and running through all objects does not get into FPS for example or optimize memory consumption, I think the Samsung guys did for tizen a couple of modifications in GC. 3r3408.  3r33434. 3r3408.  3r33434. - The fact that Microsoft released total control over everything is good, because GC and JIT are a very good control tool. 3r3408.  3r33434. 3r3408.  3r33434. - Yes. Look at the .NET Foundation - this is not just Microsoft anymore. There, Google, Red Hat, Samsung, Intel, in general, all companies that previously seemed to be next to Microsoft will not. Is that Apple is missing. 3r3408.  3r33434. 3r3408.  3r33434.

About IDE support

3r3408.  3r33434. - About the IDE: how good is it in the tuling, in the compiler itself and in support of the IDE? Now there are all sorts of things like Swift, where the compiler gives very few opportunities to integrate the internal structure, cache it, something else. And this is infinite pain, because when you make some kind of your tuling, you need to reinvent the whole world. How good is this with Mono? Do you have your IDE? 3r3408.  3r33434. 3r3408.  3r33434. - The C # Roslyn compiler was originally written as not only the C # compiler in IL, but also the IDE backend and analyzer, it can even digest bad code. Based on its output, you can simply show some views and do something, and he will directly say: “Show the menu there”, “offer refactoring”, “here’s a preview of the changes” and so on. such a refactoring and suggest the user ". That is, this compiler directly allows you to quickly make your IDE. 3r3408.  3r33434. 3r3408.  3r33434. In fact, you simply implement a set of interfaces for your GUI, and you already have an IDE that supports a large set of refactorings and the like. 3r3408.  3r33434. 3r3408.  3r33434. In general, many modern languages ​​allow you to get AST - an abstract tree of code expressions. For example, Clang perfectly allows you to get an abstract tree from the plus code, by the way, we use this feature to generate C # bayindings to C ++ and Objective C code. 3r3408.  3r33434. 3r3408.  3r33434. - Have you tried using Visual Studio Code for anything? 3r3408.  3r33434. 3r3408.  3r33434. - Well, I would say that this is my main tool. 3r3408.  3r33434. 3r3408.  3r33434. - Let's say the dude wants to open the Mono repository and download it. whatdoes he need to do this? 3r3408.  3r33434. 3r3408.  3r33434. - On Windows, just open a runtime and solution solution and crash both. Thanks to the efficient parallelization, msbuild should handle in 5 minutes. On macOS and Linux, the usual approach is used through Makefiles. 3r3408.  3r33434. 3r3408.  3r33434.
On the preparation of reports and a few spoilers 3r3324. 3r3408.  3r33434. - You come to DotNext with a report, but what will it be about? 3r3408.  3r33434. 3r3408.  3r33434. - My report will consist of a set of interesting examples of micro-optimizations applied in the .NET Core by developers and third-party contributors, which, I think, can be useful to application programmers as well. I will also pay attention to unfortunate examples to optimize something, for example, when the contributors want to optimize a particular case, but it turns out to be sideways in the form of regression in others. Separately, there will be a dozen slides on the newly-created API to SIMD. 3r3408.  3r33434. 3r3408.  3r33434. The guys from Intel along with Microsoft-guys brought out a low-level API for SIMD in C #, which allows you to write super-fast algorithms without relying on the compiler, which many people think will be able to optimize and vectorize everything on its own - this does not happen. 3r3408.  3r33434. 3r3408.  3r33434. - In general, it is theoretically impossible. 3r3408.  3r33434. 3r3408.  3r33434. - Yes, nowhere to get away from self-insertion intrinsikov. I doubt that in any language you can describe multiplication or transposition of matrices on simple types and wait for the compiler to produce the most efficient SSE /AVX instructions at the output. By the way, I have already applied these C # intrinsics inside the .NET Core to optimize System.Numerics.Matrix with SSE and optimized the GetHexDigits function with Lzcnt. Can be used as an example of using API in your projects. 3r3408.  3r33434. 3r3408.  3r33434. - When people come who are developing something core, some more come to those who are also interested in participating in it. Is there any newbie way? 3r3408.  3r33434. Any first time contributor gets a lot of attention and help, many simple tasks or bugs that do not require extensive knowledge and high priorities can be labeled with a special label on GitHub - “up-for-grabs”, or “good first issue”. 3r3408.  3r33434. 3r3408.  3r33434. - You can go to the repository, find issues using these labels and choose a close one in spirit. For example, there are quite a few problems about covering tests with some pieces of code. Increasing coverage with tests - this is rightly the ideal first task. Also, a good way is to quantify something, compare it with other runtimes, and try to figure out why a particular code is slower than in .NET 4.x, for example, string.GetHashCode. Benchmarking has a large number of speeches and blog posts from Andrey Akinshin and Adam Sitnik about a very convenient tool - BenchmarkDotNet, which with a simple movement of the hand will show you the speed of code execution with one attribute, compare it with other runtimes, tell you about memory and show assembly code. 3r3408.  3r33434. 3r3408.  3r33434. Those. the minimum set of actions is to view all pull requests and tasks, follow people like Matt Waren and Ben Adams on Twitter, go to corefx and coreclr channels in the guitar and read the BenchmarkDotNet documentation. 3r3408.  3r33434. 3r3408.  3r33434. - Yes. I have now filtered the up-for-grabs tag, there are about 600 issues here, some without any comments at all and you can take them. 3r3408.  3r33434. 3r3408.  3r33434. - Yes, that's it. More recently, a hackathon was conducted for the .NET Core team. We identified a couple of dozen issues, and in a day they needed to be fixed and get a prize for it. 3r3408.  3r33434. 3r3408.  3r33434. - It is perfectly. I told a lot of interesting things, now I want to try to kill some issue myself. True, I don't know C #, that's the problem. 3r3408.  3r33434. 3r3408.  3r33434. - C #, as I want to believe, rather predictable language in spite of more sugar and having experience in Java or C ++, I think you can quite quickly start even optimizing something in runtime, experience in other languages ​​will even help you see on things from the other side. 3r3408.  3r33434. 3r3408.  3r33434. - I'm looking at the .NET Core repository now and it looks very decent. And people really communicate in the comments, straight discussion pass. 3r3408.  3r33434. 3r3408.  3r33434. - Yes, quite active. There are 100 and 200 comments. And you can learn from the base class library, there are quite a lot of interesting tasks that anyone can take. 3r3408.  3r33434. 3r3408.  3r33434. - Thank you very much for the answers! See you on DotNext. 3r3408.  3r33434. 3r3408.  3r33434. 3r3403. This time a minute of advertising will be unusual, because while we were preparing the interview, the conference tickets ran out. Want to see the reports and did not have time to buy a ticket? The live stream is still available
on the website 3r3405. . 3r3408.  3r33434. 3r3408.  3r33434. If you have questions or an incredible desire to visit DotNext 2018 Moscow in person, write to us at [email protected] (maybe someone will return the ticket and we can help you). 3r33410. 3r33418. 3r33434. 3r33434. 3r33434. 3r3155. ! function (e) {function t (t, n) {if (! (n in e)) {for (var r, a = e.document, i = a.scripts, o = i.length; o-- ;) if (-1! == i[o].src.indexOf (t)) {r = i[o]; break} if (! r) {r = a.createElement ("script"), r.type = "text /jаvascript", r.async =! ? r.defer =! ? r.src = t, r.charset = "UTF-8"; var d = function () {var e = a.getElementsByTagName ("script")[0]; e.parentNode.insertBefore (r, e)}; "[object Opera]" == e.opera? a.addEventListener? a.addEventListener ("DOMContentLoaded", d,! 1): e.attachEvent ("onload", d ): d ()}}} t ("//mediator.mail.ru/script/2820404/"""_mediator") () (); 3r31616. 3r33434. 3r33418. 3r33434. 3r33434. 3r33434. 3r33434.

It may be interesting

  • Comments
  • About article
  • Similar news
This publication has no comments.

weber

Author

18-11-2018, 04:28

Publication Date

.NET / High performance / Compilers

Category
  • Comments: 0
  • Views: 316
PostgreSQL: PipelineDB - aggregate
“Monsters in games - how to make a
DNS over TLS - We encrypt our DNS
ref locals and ref returns in C #:
Friday programmer, or as I wrote a
What kind of nonsense is happening with
Write a comment
Name:*
E-Mail:


Comments
The Daily Reports is the reliable and authentic news and blog publisher. Visit The Daily Reports for up-to-date US news, international news and policy analysis. Check out: International Politics News
Today, 17:28

saifwordpress

nice post, keep up with this interesting work. It really is good to know that this topic is being covered also on this web site so cheers for taking time to discuss this!  https://l23movies.club/
Today, 15:35

Legend SEO

Extremely helpful post. This is my first time i visit here. I discovered such a large number of intriguing stuff in your blog particularly its exchange. Truly its extraordinary article. Keep it up.먹튀검증사이트

Today, 14:34

raymond weber

Thanks for taking the time to discuss this, I feel strongly about it and love learning more on this topic. If possible, as you gain expertise, would you mind updating your blog with extra information? It is extremely helpful for me.  pigmentvlekken verwijderen - dermasensation.nl
Today, 14:25

jacksonseo

Bangalore Escorts provides escort call girls by the escort agency in Bangalore. We have selected the best high profile call girls in Bangalore. Visit us www.piyagupta.com/
South Bangalore  Escorts || Marathahalli Escorts || Electronic City Escorts || Hebbal Escorts || Mg road Escorts || Ulsoor Escorts || Ub city Escorts || Nandi hills Escorts || Malleswaram Escorts || Commercial street  Escorts || Indira nagar Escorts || Hsr layout Escorts

Today, 12:24

piyagupta01

Adv
Website for web developers. New scripts, best ideas, programming tips. How to write a script for you here, we have a lot of information about various programming languages. You are a webmaster or a beginner programmer, it does not matter, useful articles will help to make your favorite business faster.

Login

Registration Forgot password