— Glitchy couch! — Anton exclaimed, yet another time crushing down his fingers by heavy coach he and Sergey were pulling for 14 storeys already.
— ‘Glitchy’? — Sergey asked — have you been coder in the past too?
They’ve been working almost a week together, but Sergey would have never suspected he was coder in the past. Lean and muscular Anton did not look the part at all.
— I had to in my student years, — Anton answered, abashed.
— Relax! One of us. Layout, three years and JS for every browser out there, — Sergey perked up, pushed the couch and pressed it a bit forcefully on Anton.
Programming *
The art of creating computer programs
How to exchange a secret key over an insecure network (EC-Diffie-Hellman algorithm)
Let’s say you want to send an encrypted message to your friend in order to avoid it being intercepted and read by a third party. You generate a random secret key and encrypt the message with it. Let’s say you use AES. But how do you let your friend know the key to decrypt it?
In this article, we will explore how the Elliptic-Curve Diffie-Hellman algorithm works under the hood. The article includes the implementation of this algorithm from scratch, written in Python.
Mocking RESP API in 20 minutes via Yakbak
Imagine this: you are an ordinary frontend developer. When you open your mailbox you found a message — tomorrow DevOps team will make an optimization with Kubernetes. You are experienced developer and you know that environment operation test might go sideways. Test environment is crucial for your job as frontend developer and you don’t want to miss a whole day on a job, so there are two possible solutions present:
- Setup all microservices on your laptop
- Prepare mocks for API
I will describe how to mock REST API request via Yakbak.
Python Junior Plus, or the beginner's Roadmap to becoming a Python programmer
Hello! My name is Mikhail Emelyanov, I am embedded software engineer, and I was inspired to write this little roadmap on the capabilities of Python language by a certain commonality among the existing Python tutorials found on the web.
The usual suggestions to study, say, “Algorithms and Data Structures” or “Databases” are especially jarring. You can spend years studying these topics, and even after decades you'd still be able to find something you didn't know yet even without ever venturing outside the scope of Algorithms!
Using video game analogies, we can say that novice programmers often stand on the shore of the lake of boiling lava with an island with the ever-coveted jobs in the center, while the islands in between, which you have to jump on, gradually increasing your skills in successive mini-quests, are either missing, or arranged haphazardly, or their fairly smooth sequence breaks off, never having managed to get you any farther from the shore. Let's try to build a path of hint islands, a number of which, although not without effort, will finally allow us to reach our goal.
Understanding the Differences Between Kafka and RabbitMQ: in Simple Terms
Software message brokers became the standard for creating complex systems. However not all IT specialists understand how these instruments work. Pavel Malygin, Lead System Analyst at Innotech, dives into the topic of message brokers and explains how they are used.
Synchronous Request-Response using REST and Apache Kafka
At first glance making REST and Apache Kafka compatible seems quite a challenge. However Innotech team nailed the task. Kirill Voronkin, Lead Developer at Innotech, shared the details on transforming unsynchronized queries into synchronized.
Elliptic curves and ECDSA: everything to know to sign a transaction in Bitcoin from scratch
This is the complete crash course on the Elliptic Curves Cryptography used in Bitcoin and other blockchains. With code samples and a live demo from scratch.
How to be an effective engineer?
This question comes up for a lot of us as we trying to advance our career and reach new heights. At the moment when I was challenged by it, I came across a wonderful book by Edmond Lau "Effective Engineer".
As always going through the book, I write new thoughts down. And today I want to share the compilation of things that I have found useful from the book. This is by no means an ad for the book, but I think it has some really interesting approaches for us to explore together.
Idiomatic Event Loop in C++
Sometimes programming with mutexes gets too complicated and messy. Maybe you need to meet a new friend — the Event Loop pattern.
Lexical Analysis in 11l
The task of the lexical analyzer is to split the source code of the program into tokens.
So for example the code
print(1 + 2)
will be tokenized asprint
, (
, 1
, +
, 2
and )
PHDays 11: bootkit infection, sanitizers for the Linux kernel, the new face of OSINT, and phishing on official websites
Positive Hack Days 11 will begin in a matter of weeks. This international forum on practical security will be held on May 18–19 in Moscow.
As per tradition, PHDays will have three big tracks dedicated to countering attacks (defensive), protection through attack (offensive), and the impact of cybersecurity on business. It is our pleasure to present the first talks.
Audio API Quick Start Guide: Playing and Recording Sound on Linux, Windows, FreeBSD and macOS
Hearing is one of the few basic senses that we humans have along with the other our abilities to see, smell, taste and touch. If we couldn't hear, the world as we know it would be less interesting and colorful to us. It would be a total silence - a scary thing, even to imagine. And speaking makes our life so much fun, because what else can be better than talking to our friends and family? Also, we're able to listen to our favorite music wherever we are, thanks to computers and headphones. With the help of tiny microphones integrated into our phones and laptops we are now able to talk to the people around the world from any place with an Internet connection. But computer hardware alone isn't enough - it is computer software that really defines the way how and when the hardware should operate. Operating Systems provide the means for that to the apps that want to use computer's audio capabilities. In real use-cases audio data usually goes the long way from one end to another, being transformed and (un)compressed on-the-fly, attenuated, filtered, and so on. But in the end it all comes down to just 2 basic processes: playing the sound or recording it.
Today we're going to discuss how to make use of the API that popular OS provide: this is an essential knowledge if you want to create an app yourself which works with audio I/O. But there's just one problem standing on our way: there is no single API that all OS support. In fact, there are completely different API, different approaches, slightly different logic. We could just use some library which solves all those problems for us, but in that case we won't understand what's really going on under the hood - what's the point? But humans are built the way that we sometimes want to dig a little bit deeper, to learn a little bit more than what just lies on the surface. That's why we're going to learn the API that OS provide by default: ALSA (Linux), PulseAudio (Linux), WASAPI (Windows), OSS (FreeBSD), CoreAudio (macOS).
Riddles of the fast Fourier transform
• The method of phase-magnitude interpolation (PMI)
• Accurate measure of frequency, magnitude and phase of signal harmonics
• Detection of resonances
The Fast Fourier Transform (FFT) algorithm is an important tool for analyzing and processing signals of various nature.
It allows to reconstruct magnitude and phase spectrum of a signal into the frequency domain by magnitude sample into the time domain, while the method is computationally optimized with modest memory consumption.
Although there is not losing of any information about the signal during the conversion process (calculations are reversible up to rounding), the algorithm has some peculiarities, which hinder high-precision analysis and fine processing of results further.
The article presents an effective way to overcome such "inconvenient" features of the algorithm.
Why does my app send network requests when I open an SVG file?
You decided to make an app that works with SVG. Encouraged by the enthusiasm, you collected libraries and successfully made the application. But suddenly you find that the app is sending strange network requests. And data is leaking from the host-machine. How so?
Vulnerabilities due to XML files processing: XXE in C# applications in theory and in practice
How can simple XML files processing turn into a security weakness? How can a blog deployed on your machine cause a data leak? Today we'll find answers to these questions, learn what XXE is and how it looks like.
Introduction to Engineering
This is a set of chapters for young engineers. We give practical advice and discuss goals, challenges and approaches used in modern software engineering.
Along with classical foundations this article contains original ideas of conceptualizing engineer's work with emphasis on bringing order to the situation and finding an insight. Engineering is approached as work in uncertainty with other people which requires special skills. Non-obvious complications regarding modern production in big companies are discussed.
This article is based on 15 years of experience in engineering and management in high-tech industries.
Comparing PHP-FPM, NGINX Unit, and Laravel Octane
Comparing PHP-FPM, NGINX Unit, and Laravel Octane - what to choose for developing microservices.
Virtual function calls in constructors and destructors (C++)
In different programming languages, the behavior of virtual functions differs when it comes to constructors and destructors. Incorrect use of virtual functions is a classic mistake. Developers often use virtual functions incorrectly. In this article, we discuss this classic mistake.
Structured Logging and Interpolated Strings in C# 10
Structured logging is gaining more and more popularity in the developers' community. In this article I'd like to demonstrate how we can use structured logging with the Microsoft.Extensions.Logging package and show the idea how we can extend it using the new features of C# 10.
Authors' contribution
alizar 4434.2olegchir 3450.6ru_vds 3301.6haqreu 2916.0tangro 2672.2nmivan 2585.0MaxRokatansky 2424.8kesn 2353.0DmitrySpb79 2296.0grigoryvp 2212.2