C ++ is unmanaged language, because the programs can escape without saving the user’s data and give the error messages, etc. For example, it takes only to get into an uninitialized memory. For example:
char * s = "short_text";
sprintf(s,"This is very long text");
void fall()It would be better if we could "catch" a program crash just like in java we are catching exceptions, as well we could do anything before the program will crash (save the user’s document, display a dialog with the error message, etc.)
int * pointer = NULL;
*pointer = 13;
A task does not have a general solution, as C ++ does not have its own model of exception handling that is work-related with the memory. Nevertheless, we will consider two methods that are using the features of the operating system that caused an exception.
I have recently read an article where its author states that the computer will never be able to understand the text as it is understood by the human. He cites a number of impossible tasks to machines as proof with an emphasis on the lack of efficient algorithms and modeling impossibility of a complete system, which would take into account all the possible alternatives of the text. However, is it really that bad? Is it true that for the solution of such tasks is needed special processing power? What is a situation of natural language text processing?
What does it mean to "understand"?
The first thing I was confused is the question itself. Could a computer be able ever to understand the text as it understood by the human? What exactly does it mean to "understand as the human"? Generally, what does it mean to "understand"? In the book “Data Mining: Practical Machine Learning Tools and Techniques” authors asked themselves a similar question. What does it mean to "get trained"? Let us assume that we have applied to the "interpreter" some training technique. How do we check whether or not a student is learning? If a student attended all the lectures on the subject, it does not mean that the student has learned and understood it. In order to test this, teachers hold examinations, where student is asked to complete some tests on the subject. Same thing is with the computer, we want to know whether it has learned (whether it has understood the text). In order to find out that we have to check, as it solves the specific applications, translates the text, highlights the facts, gives concrete meaning of a polysemantic word, etc. In this perspective, the meaning misses the importance at all. The meaning can be assumed as a certain state of the interpreter in accordance with which it handles text.
A few days ago, the USA announced the withdrawal of troops from Iraq. They did not leave empty-handed and took the biometric data of three million Iraqi civilians (it is approximately 10% of the population). For several years, U.S. Marines carried handheld portable optical scanners, which allow quickly collecting the irises and fingerprints from any passer-by in the field.
Matthew Fisher from Stanford University wrote an interesting article about implementation of a robot on the basis of stream interception API library D3D9 (Microsoft Direct 3D, which is a part of the library DirectX).
According to the author, the robot plays StarCraft 2 (SC2) by intercepting, understanding and reacting to the D3D9 API stream, then sending keypresses and mouse commands back to the game. It is not like other robots made in the SC2 editor using a scripting language, or projects like BWAPI (it works with the original StarCraft only) that works by attaching to the address space of the host application. The robots that are based on these methods often can to bypass several restrictions that the human players must cope with; for example, they can give different orders to different units at the same time, they can see exactly what is happening off-screen at any time, and they do not have to deal with trying to click on ground units that are covered by flying units.
Improving performance of the disk subsystem is the most topical issue today. This is caused by the low cost of HDD that takes a leading position in the mass segment. More than a half of the resource-intensive applications have a "vulnerable spot" that are the spindle drives. In this case, everything does not depend on the bandwidth of SATA interface, but it depends on the physical capabilities of the mechanical components of the magnetic disk. The bandwidth of SATA-II and SATA-III interfaces makes 300MB/s and 600MB/s respectively, and the maximum performance that can provide a regular HDD does not exceed 150MB/s. Therefore, the transition to SATA-III-interface will be reasonable only for SSD, but it is not suitable for everyone.
In order to evaluate and to test the effectiveness of different types of disk subsystems were chosen following solutions:
1. OCZ RevoDrive X2 PCI-E SSD 100Gb
2. Plextor PX-128M2S SSD 128Gb
MIT researchers have created a new camera that can acquire visual data at a rate of one trillion exposures per second (1 000 000 000 000 = 10^12). That’s fast enough to produce a slow-motion video of a burst of light traveling the length of a one-liter bottle, bouncing off the cap and reflecting back to the bottle’s bottom. The similar devices will be used in medicine and other branches of science in the future.
Finally, Nokia has released a really good smartphone. It is my favorite hardware right now, even better than the HTC Desire S with Android that I had before.
The web also has a lot of different reviews of this phone, so anyone interested in it can find them out there.
Here I will just share my thoughts about the Nokia Lumia 800 after using it for some time, which I hope you will be interested in.
This is a brief summary for those who do not like a lot of reading: The device has awesome build quality, but on the other hand it has its drawbacks.
Yesterday Twitter unveiled a new version of its interface. Its design is simplified to make it easier, faster, and richer experience. The new design will be the same for Twitter.com and mobile applications. In addition, TweetDeck application is updated and ready for the new version.
Visit fly.twitter.com and find out more details about the upcoming changes.
We tested several configurations of disk arrays that are suitable for use in servers.
We tested the following configurations:
- 4 x 300GB SAS2 10K + RAID10 on a PCI-E 2.0 controller (Reference 4 x 300GB RAID10)
- PCI-E SSD 120GB MLC (Inexpensive PCI-E SSD 120GB)
- 2 x SSD 120GB MLC + RAID0 on a PCI-E 2.0 controller with optimized firmware (Inexpensive 2 х SSD 120GB RAID0)
- 4 x 300GB SAS2 10K + RAID10 on a PCI-E 2.0 controller + SSD MLC 120GB caching I/O (Hybrid 4 x 300GB RAID10 + SSD caching)
Here are the results of user poll on the SSD reliability that could be useful.
Let us begin with the size statistics.
The picture shows that the most popular formats are 120, 80 and 60, which are released only by Intel.
It is also noticed that the drives with capacity of 120 / 128 are particularly popular among users of alternative operating systems (including OS X).