Pull to refresh

Development

Show first
Rating limit
Level of difficulty

Pixel image rotation

Level of difficultyEasy
Reading time13 min
Views1.2K

Brief problem formulation

The program accepts as input the absolute path to the image in the bmp extension and the path where you save the result of the work. Then, it rotates the image by 90 degrees counterclockwise. Afterwards, the program saves the new image.

The program is executed on C.

Read more
Total votes 7: ↑5 and ↓2+3
Comments0

How we built a Cyber Immune product using an open source library: stages, pitfalls, solutions

Reading time11 min
Views658
Do you remember how, even before the pandemic set in, companies were striving to provide secure perimeter access for their telecommuters? Especially if super sensitive data was involved such as accounting information or corporate documents. The solutions were complex, bulky and expensive. Can you imagine just how critical it has become now?!

image

My name is Sergey Yakovlev, and I'm the head of the Kaspersky Thin Client project based on our proprietary operating system, KasperskyOS. A thin client is one of the main components of a virtual desktop infrastructure, which is a remote desktop access system. In this article, I will use such a client as an example of how you can build a secure (yet commercially viable!) product. I will cover the stages, the stumbling blocks, the problems and solutions. Let's go!
Read more →
Total votes 1: ↑1 and ↓0+1
Comments0

PostgreSQL 16: Part 5 or CommitFest 2023-03

Level of difficultyMedium
Reading time28 min
Views1K

The end of the March Commitfest concludes the acceptance of patches for PostgreSQL 16. Let’s take a look at some exciting new updates it introduced.

I hope that this review together with the previous articles in the series (2022-072022-092022-112023-01) will give you a coherent idea of the new features of PostgreSQL 16.

Read more
Total votes 10: ↑10 and ↓0+10
Comments0

«Promising Public Transportation for Large and Medium-Sized Cities» — the main idea in a brief summary

Level of difficultyEasy
Reading time9 min
Views1.4K

(source)

Translation provided by ChatGPT, link to the original article.

I recently published a series of articles titled 'As Cheap as a Bus, as Convenient as a Taxi...':

Link to Part 1: «Preliminary Analysis» (ру / eng )
Link to Part 2: «Experiments on a Torus» (ру / eng )
Link to Part 3: «Practically Significant Solutions» (ру / eng )

dedicated to making public transportation in large cities completely seamless, without the need for transfers. In the last article of the series, I extensively described a microbus movement scheme that allows them to operate almost like taxis while accommodating 5-10 passengers at once. Such a transportation system would enable city residents to travel from any intersection to another without any transfers, comparable in time to a personal car journey, and at a cost similar to a regular city bus ticket. However, the feedback from readers indicated that I chose an extremely ineffective way to convey the information, resulting in a failure to effectively communicate the essence of the matter.

I must admit that the previous three articles were written in a way that allowed readers to apply the acquired knowledge in practice or continue the research I started on their own. Unfortunately, my desire to 'teach' resulted in nearly 100 pages of complex mathematical text, which is clearly excessive for readers who simply wanted to familiarize themselves with the idea. Here, I will attempt to rectify this mistake and briefly, yet simply, explain the bus taxi technology.
Read more →
Total votes 6: ↑6 and ↓0+6
Comments0

Blinking into Morse code

Level of difficultyEasy
Reading time10 min
Views1.7K

Explaining main algorithm.

For a while I’ve been thinking of writing a scientific article. I wanted it to have certain utility.

Morse code is binary: it takes only two values – either dot (short) or hyphen (long). I figured out that short (s) can stand for two-eye blinking whilst long (l) can indicate left-eye blinking. Another question emerged: how to understand when does one-symbol recording stop?

Empty space between two symbols can be presented by right-eye blinking – r. If I input singly symbol of short (dot) and long (hyphen), I will blink my right eye once to indicate the space between two symbols.

To separate independent words, one has to blink her right eye twice and get rr.

Hence, I have collected an ordered set of symbols – r, l, s, - that can be converted into a full-fledged text. Once I accomplish the transformation, I get an answer.

Read more
Total votes 6: ↑6 and ↓0+6
Comments2

Feature Engineering: Techniques and Best Practices for Data Scientists

Reading time8 min
Views1.8K

The most important stage in the data science process is feature engineering, which entails turning raw data into useful features that might enhance the performance of machine learning models. It calls for creativity, data-driven thinking, and domain expertise. Data scientists can improve the prediction capability of their models and find hidden patterns in the data by choosing, combining, and inventing relevant features. Handling missing data, scaling features, encoding categorical variables, constructing interaction terms, and other procedures are examples of feature engineering techniques. The best practises involve investigating the data, testing and improving features iteratively, and applying domain knowledge to draw out important information. The accuracy and effectiveness of machine learning models are significantly influenced by effective feature engineering.

Read more
Rating0
Comments0

Technical Game Design. Configs, balance and content in the example of PC strategy

Level of difficultyMedium
Reading time13 min
Views1.2K

One of the common tasks that both beginners and experienced game designers face is describing a large amount of content to pass its parameters to the engine. This is not an easy task, given that it is very difficult to find materials on the technical aspects of game design. Well, let’s figure out how to transfer data to the engine.

Read more
Total votes 2: ↑2 and ↓0+2
Comments1

Monitoring CPU/RAM/disk metrics with OpenTelemetry and Uptrace

Level of difficultyEasy
Reading time4 min
Views6.6K

OpenTeleletry Collector is an open source data collection pipeline that allows you to monitor CPU, RAM, disk, network metrics, and many more.

Collector itself does not include built-in storage or analysis capabilities, but you can export the data to Uptrace and ClickHouse, using them as a replacement for Grafana and Prometheus.

When compared to Prometheus, ClickHouse can offer small on-disk data size and better query performance when analyzing millions of timeseries.

Read more
Total votes 6: ↑6 and ↓0+6
Comments4

How Java works with fonts

Level of difficultyEasy
Reading time3 min
Views2.4K

Hello!

In this article, I will try to briefly describe how Java Virtual Machine works with fonts. Once I needed to change the font used by the JVM and, surprisingly, found only pieces of legacy information about this. I spent a little time investigating the problem and now want to share this information with anybody who could find it useful. Feel free to leave any comments :)

Read more
Rating0
Comments1

Business Process Management Part 2. How to

Level of difficultyEasy
Reading time12 min
Views10K

This article is written in a how-to style. It is based on my personal experience and opinions, so it may omit some steps that are common in BPM practice but that I have not encountered in my work. The topic is broad, and each section deserves a separate article. Therefore, if you are interested in a specific topic, please comment, and I will prepare a more detailed description.

Read more
Total votes 3: ↑2 and ↓1+1
Comments3

Exploring a possible implementation of non-blocking IO by writing a server on pure syscalls

Reading time11 min
Views2.2K

How do people usually write a server if they don't really care about performance? A program starts, then starts accepting incoming connections from clients and starts a new thread for each client, which is engaged in servicing this client. If you use framework, like Spring or Flask or Poco there, then it does something like this inside itself - the only difference is the threads can be reused, that is, taken from a certain pool. It's all quite convenient, but not too effective (and Spring is bad). Most likely, your threads serving clients do not live long and most of the time they are waiting either to receive data from the client or to send it to the client - that is, they are waiting for some system calls to return. Creating an OS thread is quite an expensive operation, as is context switching between OS threads. If you want to be able to serve a lot of customers efficiently, you need to come up with something else. For example, callbacks, but they are pretty inconvenient (though there are different opinions on this).

Another option is to use non-blocking I/O in combination with some kind of implementation of user-space threads (fibers). In this article I will show you how to write all this with your own hands.

Read more
Total votes 1: ↑1 and ↓0+1
Comments2

Machine Learning for price optimization

Level of difficultyMedium
Reading time27 min
Views5.8K

This is a translated and adopted article I wrote for the Aha'22 (30 May 2022) conference. It describes an approach to a marketplace prices optimisation. Here I've outlined some important definitions and tried to define the scopes and roles of ML, algorithms, and humans in optimal pricing. Although the article covers rather basic things, still, you can find out some new formulas and ideas, because these basics are somewhat "well-known only in a very closed clubs", and besides, the real gem found here is the detailed recipe for ML engineers how to build optimal pricing systems.

Read more
Total votes 3: ↑3 and ↓0+3
Comments0

TRIZ: The Problem-Solving Methodology for Product Managers

Level of difficultyEasy
Reading time11 min
Views2.2K

Background

As a product manager with over a decade of experience, I'm always looking for new ways to enhance my skills and help other product managers advance in their careers. One area that many companies focus on during the job interview process is analytical and creative problem-solving. And as product managers, we encounter these types of challenges on a daily basis. It's important to stay sharp and continuously develop our problem-solving abilities. That's why I made it a habit to practice a logic puzzle every day. But I also wondered if there was a common approach to solving these puzzles. That's when I discovered TRIZ – the Theory of Inventive Problem Solving. In this article, I'll provide an overview of what TRIZ is and how it can be applied in product management. Then, I'll apply TRIZ principles to solve a series of logical puzzles, showcasing the power and effectiveness of this methodology. So whether you're an experienced product manager looking to enhance your skills or someone who enjoys a good brain teaser, read on to discover the power of TRIZ!

If you find TRIZ to be a useful tool for problem-solving and innovation, there are many resources available to help you delve deeper into the methodology. The TRIZ Journal, for example, offers enough information on TRIZ, including case studies, articles, and other resources. You can also find books and online courses that provide a more in-depth look at TRIZ and how it can be applied in different industries and contexts. So if you're interested in learning more, there are plenty of opportunities to expand your knowledge and apply TRIZ to your work.

Read more
Total votes 2: ↑2 and ↓0+2
Comments13