As you know, our main activity is development of the code analyzers PVS-Studio and CppCat. Although we have been doing this for a long time now and - as we believe - quite successfully, an unusual idea struck us recently. You see, we do not use our own tools in exactly the same way our customers do. Well, we analyze the code of PVS-Studio by PVS-Studio of course, but, honestly, the PVS-Studio project is far from large. Also, the manner of working with PVS-Studio's code is different from that of working with Chromium's or LLVM's code, for example.
We felt like putting ourselves in our customers' shoes to see how our tool is used in long-term projects. You see, project checks we regularly do and report about in our numerous articles are done just the way we would never want our analyzer to be used. Running the tool on a project once, fixing a bunch of bugs, and repeating it all again just one year later is totally incorrect. The routine of coding implies that the analyzer ought to be used regularly - daily.
OK, what's the purpose of all that talk? Our theoretical wishes about trying ourselves in third-party projects have coincided with practical opportunities we started to be offered not so long ago. Last year we decided to allocate a separate team in our company to take up - ugh! - outsourcing; that is, take part in third-party projects as a developer team. Moreover, we were interested in long-term and rather large projects, i.e. requiring not less than 2-3 developers and not less than 6 months of development. We had two goals to accomplish:
- try an alternative kind of business (custom development as opposed to own product development);
- see with our own eyes how PVS-Studio is used in long-term projects.
Google Company has announced new 7-inch tablet for developers, but now it is the part of Tango project. If Asus Nexus is generally familiar tablet, then Tablet Development Kit is a true vundervafli with price $1024, which cannot be bought by everyone, it is not because of the price.
Recently, NASA and ESA published to the public fascinating photo of visible part of the universe. Source is Hubble Ultra Deep Field. On the photo, you can count 10 thousand galaxies and even more stars. It should be noted that you can see a lot of points with different colors. These are galaxies too.
Yesterday Google announced 64-bit version of Chrome. If you want to get one, you have to choose between Dev Channel and Canary channel for Windows 7 and 8 users.
I dare to suppose, that 64-bits builds of browser soon or later will be moved to the beta stage.
According to the developers, new version of Chrome is about 25% faster than the regular one. Furthermore, browser supports some features of Windows 8, for example High Entropy ASLR, which makes browse just a little bit safer.
I have studied numbers of errors caused by using the Copy-Pate method and can assure you that programmers most often tend to make mistakes in the last fragment of a homogeneous code block. I have never seen this phenomenon described in books on programming, so I decided to write about it myself. I called it the "last line effect".
The first impressions are most lasting! It is relevant not only in life, but also in design. The design impression consists of a number of factors, and one of the most important is the color.
It is not always easy to understand what colors go together, and this article covers the basics of color theory, which will be useful in choosing a color scheme for the website design. Let's start with the basics.
Really simple and amazing CSS-effect
Recently I have come across a really simple and amazing in implementation rollover effect for the buttons on CSS menu. Its creator is some Japanese under a nickname ksk1015 in Twitter.
Here are its demo effect and writing process.
It is common practice not to like Windows. But, as a rule, phrase: “I haven't read the book but still condemn it” describes this situation well. Despite the tendency of not like Windows, there are still some things that are implemented well. I’d like to tell you about one of them.
I’ll review the embedded into OS implementation of the lock-free stack and its performance comparison with the cross-platform analogues.
The implementation of non-blocking stack on the basis of a singly linked list (Interlocked Singly Linked Lists, SList), has been available in WinAPI for quite a while. Operations on such list initializing and stack primitives over it have been implemented. Without going into details of implementing the SLists, the Microsoft just say that they use some non-blocking algorithm in order to implement atomic synchronization, increase performance and get rid of lock problems.
I think that each of you tried to find the own way to solve tasks in the learning process of a relational database management system, and not knowing that out there are various helpful features, which could speed up the queries at times and reduce the code size. In this article I want to share with you my experience, namely how to work with MySQL comfortably, often allowing the programmer to do the things that other databases would not be able to do. This material would be useful rather for those who just decided to delve into the wonderful world of queries, but maybe the experienced programmers will find something interesting for themselves here.
I have heard on the internet a lot of angry comments that Windows 7 - sucks! You see how much memory it eats up! To prove that below are given a few screenshots, and once again everyone blames the crooked hands Hindu programmers. Let's take a look what is going on over there.