Developers Club geek daily blog

Low-level optimization of parallel algorithms or SIMD in .NET

2 years, 10 months ago

Now the huge number of tasks demands the big performance of systems. Infinitely physical restrictions do not allow to increase the number of transistors on a processor crystal. The geometrical sizes of transistors cannot be reduced physically as when exceeding perhaps admissible sizes the phenomena which are not noticeable at the big sizes of active elements begin to be shown — quantum size effects begin to affect strongly. Transistors begin to work not as transistors.
And Moore's law here at anything. It was and remains the law of cost, and increase in number of transistors on a crystal is rather consequence from the law. Thus, to increase the power of computer systems it is necessary to look for other methods. This use of multiprocessors, multicomputers. Such approach is characterized by a large number of processor elements that execution of subtasks on each computing device brings to independent.

Read more »

Calculation of binomial coefficients on Xi (With ++)

2 years, 10 months ago
At a solution of problems of combination theory often there is a need for calculation binomial coefficients. Newton binomial, i.e. decompositionimage also uses binomial coefficients. For their calculation it is possible to use the formula expressing binomial coefficient through factorials:image or to use a recurrent formula:image From Newton binomial and a recurrent formula it is clear that binomial coefficients — integral numbers. On this example there was a wish to show that even at a solution of a simple task it is possible to step on a rake.

Read more »

Results of the 2015th year for C ++

2 years, 10 months ago
Perhaps, I will tell a banal thing, but last year was good year for With ++!

Just facts:
  • There was a Visual Studio of 2015 with excellent support of opportunities With ++ 14/17 and even several experimental things
  • There was long-awaited GCC 5.0
  • With ++ gained serious popularity. Somewhere since July — the third place in Tiobe Ranking
  • At the CppCon 2015 conference several important announcements were made

And now about this and another is a little more detailed

Read more »

Skrinshotim of game — the hard way

2 years, 10 months ago
Well such difficult can be in creation of a screenshot? It would seem — call the function which is kindly provided by an OS and receive the ready picture. For certain many of you did it not once, and, nevertheless, it is impossible to take and zaskrinshotit just like that full-screen directx or opengl the application. To be exact — it is possible, but as a result you receive not a screenshot of this application, but the rectangle which is filled in black.

Read more »

Creation of the type of an asset in Unreal Engine 4 and customization of a property bar

2 years, 10 months ago

My name is Dmitry. I am engaged in creation of computer games on Unreal Engine as a hobby. Today I would like to tell as in Unreal Engine to create the type of an asset and how to add an additional element on a property bar of an asset. So we will begin.

Read more »

Development of the digital equipment on C ++/SystemC eyes of SystemVerilog of the programmer

2 years, 10 months ago

SystemC is a library for C ++ allowing to model various hardware systems at the different abstraction layer. It is supported as the traditional discrete and event modeling usual to programmers on Verilog and VHDL, and analog modeling in the spirit of SPICE/Verilog AMS. The library and methodology for virtual prototyping, library for writing of test environments and verification with use of randomized tests is also included in the package.

In this I will tell about a synthesizable subset of SystemC, comparing it to synthesizable SystemVerilog. I use SystemC about 3 years, and before wrote several years on Verilog/SystemVerilog. I will try to cover a subject from the different parties: since philosophical reasonings on origins of SystemC, the short overview of an ecosystem and tools and finishing with practical examples of syntax and semantics.

It is meant that readers are familiar with Verilog and C ++.

Read more »

Simple algebraic data types

2 years, 10 months ago
It is the sixth article from the cycle "The Category Theory for Programmers". The previous articles were already published on Habré:
0. The category theory for programmers: preface
1. Category: composition essence
2. Types and functions
3. Categories, big and small
4. Kleysli's categories
5. Works and koproizvedeniye

In the previous article basic operations over types were considered: work and koproizvedeniye. Now we will show that the combination of these mechanisms allows to construct many of daily data structures. Such creation has essential applied relevance. For example, if we are able to check base data types for equality, and also we know how to reduce equality of work and a koproizvedeniye to equality a component, then operators of equality for composite types it is possible to display automatically. In Haskell for an extensive subset of composite types operators of equality and comparison, converting at line and back and many other operations are automatically brought.

Let's consider in more detail the place of work and a koproizvedeniye of types in programming.

Work of types

Canonical implementation of work of types in programming languages is a couple. In Haskell of steam is a primitive designer of types, and in C ++ it is rather difficult template from standard library.
Strictly speaking, work of types is not commutative: it is impossible to substitute couple of type (Int, Bool) instead of (Bool, Int), though they also contain the same data. However work is commutative to within the isomorphism set by function swap, which back to:
swap :: (a, b) -> (b, a)
swap (x, y) = (y, x)

It is possible to consider such couples as different formats of storage of the same information as big endian and little endian.

Read more »

"Roslyn — still very crude technology" — interview with Sergey Shkredov, the head of the .NET-direction in JetBrains

2 years, 10 months ago
Hi, it again Without slides. I am Alexey Fedorov, and this time on a visit at me Sergey Shkredov, the head of all .NET-direction visited  the JetBrains company.

With Sergey we spoke:
  • about the last releases of ReSharer;
  • about the new scheme of subscriptions and licenses;
  • about the difficult relations with Microsoft;
  • about a rantayma and development of language;
  • how Roslyn output changed a situation;
  • about work with fidbeky users for improvement of a product;
  • about development plans for other products of .NET of a stack;
  • about importance of intra-branch communication and exchange of experience;
  • about development of products for With ++;
  • it is a little about ReSharper C ++ on which even developers of Microsoft have to sit down;
  • How users will feel changes;
  • As ReSharper will develop further.

There is video

Under a cat — text option of interview.

Read more »

We compile With \with ++ a code in WebAssembly

2 years, 11 months ago
WebAssembly is a new binary format in which web applications can be compiled. It is projected and implemented directly while you read these lines and developers of all main browsers move it forward. Everything changes very quickly! We will show a current status of the project with rather deep immersion in tools on work with WebAssembly in this article.

In order that WebAssembly earned, we need two main components: the code assembly tooling in a binarnik of the WebAssembly format and the browsers capable this binarnik to load and execute. Both that, and another is not completely created and very strongly depends on completion of work on the WebAssembly specification, but in general it is separate components and their development goes in parallel. This separation — a good thing, it will allow compilers to create the WebAssembly-applications capable to work in any browser, and to browsers — to start WebAssembly-programs is not dependent on by what compiler they were created. In other words — we receive an open competition of building tools and browsers that all this will continuously move forward, bringing to the ultimate user the excellent choice. Besides, such separation allows design teams of tools and browsers to work in parallel and independently.

The new project on the party the WebAssembly tools about which I want to tell today is called Binaryen. Binaryen is the library for support of WebAssembly in compilers written on With ++. If you personally do not work on the compiler WebAssembly, then you probably do not need to know something about Binaryen directly. If you use some compiler WebAssembly, then it, perhaps, under a cowl uses Binaryen — we will review examples below.

Read more »

Intel® Tamper Protection Toolkit — the obfustsiruyushchy compiler and means of check of integrity of a code

2 years, 11 months ago

Quite recently the Intel company let out very interesting tool kit for software developers allowing to add protection of a program code against cracking and it is essential to complicate life to hackers of programs. This set includes the obfustsiruyushchy compiler, means for creation of the file of the signature used for check of integrity of the loaded dynamic libraries and also library of functions of check of integrity and additional useful tools. Intel Tamper Protection Toolkit beta can be downloaded absolutely free of charge on the website Intel.

Read more »