All sources have moved to GitLab.
Wallpapers for the game Death-Mask
Saber-Plus Debugger
Saber-Plus C++ IDE updated, added output of smart pointers (shared_ptr) contents
You can see the demo below:
Saber-Plus source code:
https://gitlab.com/demensdeum/saberplus/
Rise Programming Language
I present to you my own programming language called – Rise. A transpiler from Rise to JavaScript is currently available.
You can see and use it at the link below – Rise in JavaScript (ECMAScript 5 dialect):
https://gitlab.com/demensdeum/Rise
I also present to your attention a demo application written entirely in Rise:
Rise Demo Application Source Code:
https://gitlab.com/demensdeum/RiseDemoApplication
You can write to me if you have any ideas, suggestions, comments on the new language.
Death Mask: The Core of Corruption Teaser
The core of corruption
It was hard to breathe, the helmet display showed the oxygen supply for exactly half an hour. During this time, Revil planned to get to the city center and get the Death Mask. There was a caustic green fog around, there was no air here, half-dead people wandered the streets, creatures captured by the influence of the Mask.
The sound of footsteps spread through the empty rooms of the abandoned building, Revil moved carefully, not knowing what to expect in the most dangerous place of Technolab.

The city has long been captured by corruption, but not the earthly one that enslaves the minds of politicians and the power-hungry. The corruption of the Death Mask captures the minds of living beings, they lose control over themselves and begin to live for the sake of fulfilling its desires. All who fell under the influence began to believe that they would receive eternal life as a result of their service. To maintain control, the Mask requires a constant influx of new slaves, the capture of new territories with pure beings.
To the northwest, Revil saw the blue glow that Alice had told him about, in the center of which was a huge building created by the Technolab builders. A strange, grotesque pile of protruding frames and mechanical parts, as if created by a madman, it was terrifying in its appearance.
Revil climbed down from the building window to the street to continue his journey, when suddenly he heard a loud slam of metal limbs on the asphalt. Turning around, he saw the Demon in front of him – a biomechanical creature with three human heads, similar to a spider, slowly moving towards him. A circle of a strange mirror-black color appeared in the sky, it was difficult to tear your eyes away. A deafening roar of a city siren was heard, calling the slave creatures to help the Demon. Things were damn bad, but Revil had a surprise prepared for this case…
Saber-Plus C++ IDE
I started developing my own IDE for C++ – Saber-Plus. The main ideas of the new IDE are to be simple, fast and *helpful* in development. At the moment, the source code is available under the MIT license on GitHub, Qt is used to work with the UI. In the future, I plan to transfer all development related to C++ to Saber-Plus – the Death-Mask game will definitely be migrated. More details on the points:
- Simple – it is planned not to add more than necessary – for example, not to contain source control clients, built-in terminal and similar things. The functionality is focused only on editing the code, analyzing errors. The editor code should be divided into simple classes that correctly perform their part of the work (Unix-way)
- Fast – refers to both the IDE code base and the editor behavior itself. All actions in the IDE should be as fast as possible, even such often long and complex ones as creating/importing projects.
- Assistant – analysis of typical errors when writing, compiling code. Correction of errors, warnings at the user’s request. The idea is to add analysis of the application assembly on a specific platform and output of reference information on the installation of the necessary libraries, components.

To build the editor for your operating system, you need to install Qt 5 SDK, download the IDE code from the repository, open the Saber-Plus.pro file in Qt Creator and run the build:
https://github.com/demensdeum/saberplus
Simple TensorFlow Example
I present to your attention the simplest example of working with the framework for working with Deep Learning – TensorFlow. In this example, we will teach the neural network to determine positive, negative numbers and zero. I entrust the installation of TensorFlow and CUDA to you, this task is really not easy)
To solve classification problems, classifiers are used. TensorFlow has several ready-made high-level classifiers that require minimal configuration to work. First, we train the DNNClassifier using a dataset with positive, negative, and zero numbers – with the correct “labels”. At a human level, the dataset is a set of numbers with the classification result (labels):
10 – positive
-22 – negative
0 – zero
42 – positive
… other numbers with classification
Next, training starts, after which you can feed in numbers that weren’t even included in the dataset – the neural network must correctly identify them.
Below is the complete code for the classifier with the training dataset generator and input data:
import tensorflowimport itertoolsimport randomfrom time import timeclass ClassifiedNumber:__number = 0__classifiedAs = 3def __init__(self, number):self.__number = span>numberif number == 0:self.__classifiedAs = span> 0 # zeroelif number > 0:self.__classifiedAs = span> 1 # positiveelif number < 0:self.__classifiedAs = span> 2 # negativedef number(self):return self.__numberdef classifiedAs(self):return self.__classifiedAsdef classifiedAsString(classifiedAs):if classifiedAs == 0:return "Zero"elif classifiedAs == 1:return "Positive"elif classifiedAs == 2:return "Negative"def trainDatasetFunction():trainNumbers = []trainNumberLabels = []for i in range(-1000, 1001):number = ClassifiedNumber(i)trainNumbers.append(number.number())trainNumberLabels.append(number.classifiedAs())return ( {"number" : trainNumbers } , trainNumberLabels)def inputDatasetFunction():global randomSeedrandom.seed(randomSeed) # to get same resultnumbers = []for i in range(0, 4):numbers.append(random.randint(-9999999, 9999999))return {"number" : numbers }def main():print("TensorFlow Positive-Negative-Zero numbers classifier test by demensdeum 2017 (demensdeum@gmail. com)")maximalClassesCount = len(set< /span>(trainDatasetFunction()[1])) + 1numberFeature = tensorflow.feature_column. numeric_column("number")classifier = tensorflow.estimator. DNNClassifier(feature_columns = [numberFeature], hidden_units = [10, 20, 10], n_classes = maximalClassesCount)generator = classifier.train(input_fn = trainDatasetFunction, steps = 1000).predict(input_fn = inputDatasetFunction)inputDataset = inputDatasetFunction()results = list(itertools. islice(generator, len(inputDatasetFunction()["number"])))i = 0for result in results:print("number: %d classified as %s" % (inputDataset["number"][i], classifiedAsString(result["class_ids"][0 ])))i += 1randomSeed = time()main()
It all starts in the main() method, we set the numeric column that the classifier will work with – tensorflow.feature_column.numeric_column(“number”) then the classifier parameters are set. It is useless to describe the current initialization arguments, since the API changes every day, and it is imperative to look at the documentation of the installed version of TensorFlow, not rely on outdated manuals.
Next, training is started with an indication of the function that returns a dataset of numbers from -1000 to 1000 (trainDatasetFunction), with the correct classification of these numbers by the sign of positive, negative or zero. Next, we feed in numbers that were not in the training dataset – random numbers from -9999999 to 9999999 (inputDatasetFunction) for their classification.
In the end, we run iterations on the number of input data (itertools.islice), print the result, run it and be surprised:
number: 4063470 classified as Positivenumber: 6006715 classified as Positivenumber: -5367127 classified as Negativenumber: -7834276 classified as Negative
To be honest, I’m still a little surprised that the classifier *understands* even those numbers that I didn’t teach it. I hope that in the future I’ll understand the topic of machine learning in more detail and there will be more tutorials.
GitLab:
https://gitlab.com/demensdeum/MachineLearning
Links:
https://developers.googleblog.com/2017/09/introducing-tensorflow-datasets.html
https://www.tensorflow.org/versions/master/api_docs/python/tf/estimator/DNNClassifier
