69,029

The Collapse of the UNIX Philosophy

In the first part of the article, I will enumerate lots of UNIX cheap and dirty hacks, and other various drawbacks. In the second part, we’ll talk about the UNIX philosophy. This article was written hastily, and I don’t want to further improve it. You’re lucky I wrote it. Therefore, I may provide some facts without source links. Dirty hacks in UNIX started to arise when UNIX was released, and it was long before Windows came to the scene, I guess there wasn’t even Microsoft DOS at the time (I guess and I don’t bother to check, so check it yourself).
1,128

Ropes — Fast Strings

Most of us work with strings one way or another. There’s no way to avoid them — when writing code, you’re doomed to concatinate strings every day, split them into parts and access certain characters by index. We are used to the fact that strings are fixed-length arrays of characters, which leads to certain limitations when working with them. For instance, we cannot quickly concatenate two strings. To do this, we will at first need to allocate the required amount of memory, and then copy there the data from the concatenated strings.
588

The New Design of viva64.com. The Story Behind It, Told by the PVS-Studio Developers

Viva64.com — the main PVS-Studio developers site, turned 10 this year! The domain was registered on Nov. 9, 2006, and the latest major design update was done in December 2010. It’s time for a change! Project participants At the moment, 4 people are involved in the development of viva64.com: Constantine Potapov — web-developer; Sergey Harleev — web-designer; Ilya Teterin — Linux engineer; Evgeniy Ryzhkov — project manager. Other people contribute to the content of the website, but are not related to the infrastructure of the site, its design, or functionality.
755

12 and 1 Ideas How to Enhance Backend Data Security

Previously in series Previously, we’ve talked about classic design patterns in backend data security, then about key management goals and techniques. It is important to understand that database security evolved with system administration techniques and programming demands, with cryptography and access controls being complementary features, rather than cornerstones. In classic designs, there are two important drawbacks: 1. Trust tokens: they rely on storing trust tokens somewhere inside the infrastructure.
472

Analysis of bugs in Orchard CMS

Orchard is a free, open source, community-focused Content Management System built on the ASP.NET MVC platform. Software IP management and project development governance are provided by Outercurve Foundation, a nonprofit fund. For us, the developers of the PVS-Studio static analyzer, this is another chance to check an interesting project, tell people (and developers) about the errors we find and test our analyzer, of course. Today we’ll speak about the errors we found in the Orchard CMS project.
7,009

Lace Patterns in CSS

I’ve recently decided to surprise my friends with a web page dedicated to their upcoming wedding — quite a beneficial topic in terms of experiments with various decorative elements like ribbons, frames, and lace. At the same time, I’m up to implement the maximum of such decorations in pure CSS for my own pleasure. In this article, I want to share the way I managed to “weave” lace patterns for the future website with the help of radial and linear gradients.
1,775

One Day Programmers Will Destroy This World

Story One: A Memory When I was a little boy and went to elementary school, the following story happened to me. During a break, I was in a classroom with several friends of mine. Suddenly, a flower fell from the shelf. At that very moment, the teacher entered the room and accused us of vandalism without looking into the situation. We were reprimanded and our parents were called to school.
9,690

PostgreSQL: A Set of Practices

I started working with PostgreSQL three years ago. During this time, I have managed to collect all the bugs you could imagine. To tell the truth, if I knew the current sad experience three years ago, my life would have been much easier. That’s exactly why I have decided to write a completely subjective article with a set of rules I stick to when using PostgreSQL. Perhaps, this article will help you avoid bugs I came across (and meet some other ones, ha ha!
1,991

Asynchronous Programming Part 2: Teleportation through Portals

Finally, I have finished another article about asynchronous programming. It develops the ideas of the previous one [1]. Today we are going to discuss quite a difficult task that will reveal the power and flexibility of using coroutines in various nontrivial scenarios. At the end, we are going to consider two tasks on race-condition, and also a small bonus. By the way, the first article on asynchronous programming has become quite popular.
577

Finding Bugs in the Code of LLVM Project with the Help of PVS-Studio

About two months ago I wrote an article about the analysis of GCC using PVS-Studio. The idea of the article was as follows: GCC warnings are great, but they’re not enough. It is necessary to use specialized tools for code analysis, for example, PVS-Studio. As proof of my words I showed errors that PVS-Studio was able to find the GCC code. A number of readers have noticed that the quality of the GCC code, and its diagnosis, aren’t really great; while Clang compiler is up to date, of high quality, and fresh.
Show me more