I wrote a library for finding paths on arbitrary graphs, and I would like to share it with you .
An example of use on a huge graph:
To play around with the demo, you can here
The library uses a little-known version of the A * search, which is called NBA * . This is a bidirectional search, with relaxed requirements for the heuristic function, and a very aggressive termination criterion. Despite its little-known algorithm, the algorithm has an excellent speed of convergence to the optimal solution.
The description of the various variants of A * has already been found on the hub several times. I really liked this is , so I will not repeat this article. Under the cut I will explain in more detail why the library works quickly and how the demo was done.
In this article, I'll talk about some of the ideas on which high-level parts of Android are built, about several of its predecessors and about the basic mechanisms of security.
In this article, I'll talk about the components that make up applications for Android, and about the ideas behind this architecture.
How Android works, part 1
How Android works, Part 3
The development team working on PVS-Studio has finally started developing its product for Linux. That was the news that the CTO Andrey Karpov wrote about in the article. Long disputes and requests of the readers on habrahabr.ru, discussions on Reddit, Linux.org and other places can now gain a new round of comments. As it is mentioned in the article, you can volunteer to help the developers to test this product and improve it to a better level.
There are many tasks on the way of PVS-Studio to Linux, that the technical director is talking about. Put briefly, these are:
- more complete support of GCC and Clang;
- a new system of regression tests in Linux, so that you can track the changes results in the analyzer kernel and add new diagnostics;
- compiler monitoring to help programmers quickly and easily check the project without distracting people who support makefiles and the build system in general;
- documentation improvement, so that the user can get information with the examples about any diagnostic;
- testing, distribution, support organization.
In this article you will find more details about the abilities of PVS-Studio for Windows and the tasks it can already solve on Linux.
I do not know why I may need it, but suddenly I wanted to have two mouse pointers in Linux, after all I already have two mice, one is a wireless mouse and the other is a touchpad one. The idea came at a time when I hooked up a second mouse, namely, a third cursor control device.
I want each mouse to get a cursor, but how do I get it?
Let's see what xinput will tell us:
max 23:20:19 ~ $ xinput list
⎡ Virtual core pointer id=2 [master pointer (3)]
⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)]
⎜ ↳ Logitech USB Receiver id=10 [slave pointer (2)]
⎜ ↳ Logitech USB Receiver id=11 [slave pointer (2)]
⎜ ↳ Genius 2.4G Wireless Mouse id=12 [slave pointer (2)]
⎜ ↳ SynPS/2 Synaptics TouchPad id=14 [slave pointer (2)]
⎣ Virtual core keyboard id=3 [master keyboard (2)]
↳ Virtual core XTEST keyboard id=5 [slave keyboard (3)]
↳ Power Button id=6 [slave keyboard (3)]
↳ Video Bus id=7 [slave keyboard (3)]
↳ Sleep Button id=8 [slave keyboard (3)]
↳ Villem id=9 [slave keyboard (3)]
↳ AT Translated Set 2 keyboard id=13 [slave keyboard (3)]
↳ HP WMI hotkeys id=15 [slave keyboard (3)]
Finally, Linux has shown growth of the rates that are expected for a long time. The market share of Linux increased by 64% on the desktop OS since May to December 2011, according to a global monitoring service Net Market Share, which collects statistics about visitors from over 40,000 websites. The unique audience makes about 160 million people per month, therefore, the measurement error is very small.
If you are using UNIX-based system, working with the console or just writing shell scripts, below you find useful information that is presented in the form of short tips.
Here they are:
• finding host/domain name and IP address - hostname
• test network connection – ping
• getting network configuration – ifconfig
• Network connections, routing tables, interface statistics – netstat
• query DNS lookup name – nslookup
• communicate with other hostname – telnet
• outing steps that packets take to get to network host – traceroute
• view user information – finger
• checking status of destination host - telnet
Review of almost all *top utilities for linux (atop, iotop, htop, foobartop, etc.)
We all know that top is the simplest and most common utility in this list. It shows roughly the same as vmstat utility in addition to that it provides rating of processes for the consumption of the memory or the CPU. It does not know anything about the network loading or discs. It allows a minimal set of operations with the process: renice and kill. A suffix "top" got all the other similar utilities in this review.
Atop is an ASCII full-screen performance monitor that is capable of reporting the activity of all processes (even if processes have finished during the interval), daily logging of system and process activity for long-term analysis, highlighting overloaded system resources by using colors, etc. At regular intervals, it shows system-level activity related to the CPU, memory, swap, disks, and network layers, and for every active process it shows the CPU utilization, the memory growth, priority, username, state, and exit code.
In contrast to the top, it knows about the existence of block devices and network interfaces, as well it is capable to show their loading as a percentage (at 10G, however, a percentage does not work, but at least it shows the number of megabytes).