2 years, 10 months ago
We have one .NET-application which is able to load and use plug-ins. Plug-ins — business good. It is possible to expand functionality, it is possible to update quickly them from the website, it is possible even to give to users SDK and to allow to write the plug-ins. We also did all this. Our plug-ins represented normal .NET-assemblies which needed to be thrown in a certain folder from where the basic of the application loaded them and used. Well, you, probably represent as — Assembly.Load (), we look for the class implementing the necessary interface further, we create object of this class, etc. All this worked long ago, is stable and nothing portended trouble. But suddenly at some point there was a need to create the plug-in consisting of several files. In this regard was decided to consider as a plug-in not just .NET-assembly (1 file), and zip-archive in which can be as one assembly, and several files. In this regard plug-ins in archives were necessary to teach to pack the bild-server, and the main application — to extract them in the right place. In general a task on 10 code lines. Nothing portended trouble. And here I from the bild-server download collected archive with a plug-in, I will extract it in the necessary folder, I start the application, and … does not work! Stop how does not work? It same plug-in!
Further — more. I ask to do the same procedure my colleague, on its computer. It tries — and everything works for it! But how so? One application version, the same file from the bild-server. Some difference in an environment? I sit down at the colleague's computer, I try once again — does not work! It in it tries time on mine — works! That is it turns out that the file "remembers" who extracted it! We call the third colleague to observe this circus. Consistently, on the same computer, in turn we do the same actions: we download archive with a plug-in, we will extract in the necessary folder, we start the application. When it is done by me — the program does not see a plug-in when it is done by the colleague — everything works. On the third circle of these interesting experiments suddenly we notice a difference in actions: I extracted a plug-in with standard means of Windows, and my colleague — with the help 7-Zip. Both was caused by us from a context menu of archive so in the beginning nobody noticed a difference in click on not that point. Well ok. It turns out, the file retrieved from zip-archive with the help 7-zip differs from the same file from the same archive retrieved by means of the standard Windows archiver?
By the way, until you opened article under a cat, answer for yourself a question whether there can be it that contents of files of valid zip-archive at extraction 7-zip and through the conductor of Windows will be a miscellaneous?
2 years, 10 months agoWebAssembly 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.
2 years, 11 months ago
The majority of programs and algorithms can be presented in the form the column, consisting of a set of tops (N) and edges (E). The covering of graphs in testing is useful that it is possible to project tests, using different criteria of a covering and to reveal errors. As for testing of a black box, the covering of graphs here too can be of great importance if it is necessary to work with statuses and transitions, entity state graphs, etc. If the graph is rather difficult, different criteria of a covering will allow to evaluate sufficiency of a test set.
In the first part: determinations, covering of tops, edges, ways, cyclomatic complexity.
2 years, 11 months ago The majority of programs and algorithms can be presented in the form the column, consisting of a set of tops (N) and edges (E). The covering of graphs in testing is useful that it is possible to project tests, using different criteria of a covering and to reveal errors. As for testing of a black box, the covering of graphs here too can be of great importance if it is necessary to work with statuses and transitions, entity state graphs, etc. If the graph is rather difficult, different criteria of a covering will allow to evaluate sufficiency of a test set.
2 years, 11 months ago
We decided to transfer somehow the project to the Visual Studio 2015 — there to so many fascinatingfeatures ! Yesterday here only solved, and already this morning I started its installer. The sky was cloudless, nothing portended trouble. Well, really, can go not so? How many already these Visual Studios it is rearranged — not to consider (I, am remembered, 6.0 more once put). Who could think that this most trivial task can develop into very unexpected running on a rake long almost in the whole working day.
Having crackled a little hard drive, the beautiful installer showed me absolutely ugly error message. Here it:
Hm. It was not put means, Team Explorer and couple more of minor packets. Well ok. We close, we reinstall. Does not help. We delete studio, we reboot, we set — the same error. We climb in Google with a question of a setup error of the Visual Studio of 2015 at a stage of installation of the Team Explorer component and we understand that the problem is mass — tens of links with the same description: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17
Specialists of the first line of technical support of Microsoft whose councils are reduced to "answer all these questions disconnect an antivirus", "check a cheksuma of an image with studio", "check a disk for errors". Nothing from this, of course, helps what they and are told about then they vanish and do not answer any more. Very friendly user support, you will tell nothing.
Well, it is time to include the head, to take tools in hand and to understand. Went.
3 years ago All testers at least have heard a lot about such technicians of test design as equivalence classes and the analysis of boundary values. It would seem what can be simpler: to select classes, to take on one value in everyone, to check borders of classes and value at the left and to the right of borders. But whether always the situation is so simply? How to be if after splitting into classes it turns out that with borders, in general, a problem — they cannot be defined as data cannot be arranged? What if the tested parameters are connected among themselves by a certain logic and depend from each other? How many tests are enough? Below the possibilities of two main the technician of test design exceeding that are mortgaged in their direct determination will be considered.
Microsoft will add support of the compiler Clang in the noyabrsky Visual Studio updating 2015 — it has been declared at the CPPCon 2015 conference which is taking place now in the city of Belvyyu, the USA.
Clang is the code compiler on With, With ++ and Objective-C which together with LLVM allows to collect programs under different platforms. The Visual Studio 2015 already supports Clang for development of Android and iOS-applications. When developing for Android it is possible to select between GCC and Clang, and for iOS it is necessary to use external Mac as the bild-server.
The planned updating will bring support of Clang at qualitatively new level — now they can collect normal Windows applications.