Pull to refresh

All streams

Show first
Rating limit
Level of difficulty

2. Information Theory + ML. Mutual Information

Reading time11 min
Views1.2K

In Part 1, we became familiar with the concept of entropy.

In this part, we will delve into the concept of Mutual Information, which opens doors to error-resistant coding, compression algorithms, and offers a fresh perspective on regression and Machine Learning tasks.

It is an essential component that will pave the way, in the next section, for tackling Machine Learning problems as tasks of extracting mutual information between features and the predicted variable.

Here, there will be three interesting and crucial visualizations.

The first one will visualize entropy for two random variables and their mutual information.
The second one will shed light on the very concept of dependency between two random variables, emphasizing that zero correlation does not imply independence.
The third one will demonstrate that the bandwidth of an information channel has a straightforward geometric interpretation through the convexity measure of the entropy function.

In the meantime, we will prove a simplified version of the Shannon-Hartley theorem regarding the maximum bandwidth of a noisy channel. Let's dive in!

Read more

The art of prioritization in product management

Level of difficultyMedium
Reading time7 min
Views6.6K

Product management runs on choices. What to develop next, what to put on hold, and what to discard altogether. Getting these choices right steers products toward success. It's more than just a list; it's understanding needs, managing resources, and aligning with the company vision. Prioritization is, without a doubt, a major skill for any product manager.

For most of us, the daily challenge is juggling plenty of tasks, features, and stakeholder requests. But not all demands carry the same weight. It's easy to get swayed by the loudest voice in the room or the most recent email in the inbox, but these aren't necessarily what the product or the users need most urgently.

To get it right in product management, we need the right tools and approaches. Let's see what it takes to nail prioritization.

Key challenges in prioritization

As I noted before, in product management, facing various and often unpredictable challenges is part of the job. However, deciding which tasks to prioritize can be especially confusing, and here are a few factors to consider.

1. Changing customer demands: Customers are the heart of any product, and their needs and desires can evolve rapidly. One day, a feature might be all the rage; the next, it's old news. For instance, a messaging app might find its users clamoring for dark mode due to its increasing popularity across platforms. Adapting to these shifting demands requires constant observation and a readiness to pivot.

2. Evolving market trends: The broader market can influence product decisions as much as individual user feedback. If there's a sudden surge in voice-activated technologies, products that don't incorporate voice features might find themselves left behind. Staying attuned to the market means continuous research and the agility to tweak your product roadmap accordingly.

Read more

React Custom Hook: useStateWithValidation

Level of difficultyMedium
Reading time2 min
Views1.6K

One of the key advantages of this custom hook is its flexibility. You can pass any validation function that suits your specific requirements. Whether it's checking the length of a string, ensuring a numeric value falls within a certain range, or performing more complex validations, useStateWithValidation has got you covered.

Read more

The anatomy of a pre-sale meeting to the USA

Reading time5 min
Views803

My name is Paul Karol and I work connecting Russian IT with their customers in the United States. Please find on Hbar my previous article for a complete explanation of my credentials.

Today we're going to look at a presale meeting that was not successful and we will explain exactly how the Russian company lost this business. Please take a look at this photograph.

Going into this presale meeting the client (large American chain store) had worked with the software for a little more than a month and we're pretty happy with the result. From all indications they were going to buy the software this day. The sales manager had a good relationship with the American managers of the company. There was lots of buying sign that was known to the Russian company prior to this presale meeting. Suffice to say that they believe that they would have an easy sale today.

There was some very specific things that the Russians did that cost them this business.

We will be using this as a case study and we will discuss exactly everything that they did as a mistake and how to not do these same mistakes for your company.

First we must do some brain work. A thought experiment, if you will. What do you believe are the concerns of an American company doing business with Russian IT developers today. The current situation between the countries does make it more difficult but the same exact concerns are still there from before maybe slightly more amplified and there may be one more concern that wasn't there prior to the difficulties in Ukraine.

Read more

React Custom Hook: useStateWithHistory

Level of difficultyMedium
Reading time3 min
Views2K

In this article series, we embark on a journey through the realm of custom React hooks, discovering their immense potential for elevating your development projects. Our focus today is on the "useStateWithHistory" hook, one of the many carefully crafted hooks available in the collection of React custom hooks.

Read more

React + Three.js. Creating your own 3D shooter. Part 1

Level of difficultyMedium
Reading time30 min
Views8.3K

Hello, dear users of the IT world!

In the era of active development of web technologies and interactive applications, 3D-graphics is becoming more and more relevant and in demand. But how to create a 3D application without losing the advantages of web development? In this article, we will look at how to combine the power of Three.js with the flexibility of React to create your own game right in the browser.

This article will introduce you to the React Three Fiber library and teach you how to create interactive 3D games.

Read more

React Custom Hook: useScript

Level of difficultyMedium
Reading time2 min
Views2.8K

useScript can be used in various scenarios. For instance, you can load external libraries like jQuery, enabling you to harness its powerful functionalities without adding bulk to your bundle. Additionally, you can load analytics scripts, social media widgets, or any other script necessary for your application's dynamic behavior.

Read more

1. Information theory + ML. Entropy

Reading time10 min
Views1.2K

I've long wanted to create educational materials on the topic of Information Theory + Machine Learning. I found some old drafts and decided to polish them up here, on Habr.

Information Theory and Machine Learning seem to me like an interesting pair of fields, the deep connection between which is often unknown to ML engineers, and whose synergy has not yet been fully revealed.

Let's start with basic concepts like Entropy, Information in a message, Mutual Information, and channel capacity. Next, there will be materials on the similarity between tasks of maximizing Mutual Information and minimizing Loss in regression problems. Then there will be a section on Information Geometry: Fisher metric, geodesics, gradient methods, and their connection to Gaussian processes (moving along the gradient using SGD is moving along the geodesic with noise).

It's also necessary to touch upon AIC, Information Bottleneck, and discuss how information flows in neural networks – Mutual Information between layers (Information Theory of Deep Learning, Naftali Tishby), and much more. It's not certain that I'll be able to cover everything listed, but I'll try to get started.

Read more

React Custom Hook: useRenderCount

Level of difficultyMedium
Reading time2 min
Views1.5K

One of the major advantages of using useRenderCount is its simplicity. By abstracting the logic into a reusable hook, you can easily integrate it into any component without cluttering your codebase. Additionally, it provides a clear and concise way to monitor render behavior, which can be crucial for performance optimization and debugging.

Read more

React Custom Hook: usePrevious

Level of difficultyMedium
Reading time2 min
Views8.3K

This custom hook can be a game-changer in various scenarios. For instance, you can utilize usePrevious to compare and visualize changes in data, track state transitions, or implement undo/redo functionality. Additionally, it can be valuable in form handling, animations, and any situation where having access to the previous value is crucial for your application's logic.

Read more

LeetCode, Hard++ (Acceptance 24%, Latest): 2867. Count Valid Paths in a Tree. DFS. O(n). Swift

Level of difficultyHard
Reading time2 min
Views1.7K

The intuition is to employ a depth-first search (DFS) approach through the tree.

During each step in the traversal, we perform the following key calculations:

1. Determine the path that ends at the current node.

2. Compute two different subtree paths that traverse the current node.

3. Maintain an array that keeps track of the cases where paths contain either 0 or 1 prime number.

This method allows us to efficiently count the valid paths in the tree while considering the presence of prime numbers.

Read more

Creating a mini-game with drip effect and moving circles. Part 2. Final

Level of difficultyEasy
Reading time8 min
Views881

Hello, dear users of the IT world!

In modern web development there are many ways to make your website interesting and attractive to users. And even using simple techniques you can achieve great results!

I suggest you to create a mini-game from scratch yourself. And then, you can use it to liven up and add interactivity to any web page.

Read more

React Custom Hook: useOnScreen

Level of difficultyMedium
Reading time2 min
Views3.4K

One of the key advantages of useOnScreen is its simplicity. With just a few lines of code, you can detect if an element is visible and respond accordingly. This can be immensely useful in scenarios where you want to trigger animations, lazy load images, or load additional content as the user scrolls.

Read more

Creating a mini-game with a drip effect and moving circles. Part 1

Level of difficultyEasy
Reading time7 min
Views1.1K

Hello, dear users of the IT world!

In modern web development there are many ways to make your website interesting and attractive to users. And even using simple techniques you can achieve great results!

I suggest you to create a mini-game from scratch yourself. And then, you can use it to liven up and add interactivity to any web page.

Read more

React Custom Hook: useOnlineStatus

Level of difficultyMedium
Reading time2 min
Views1.9K

One of the main advantages of "useOnlineStatus" is its simplicity. By importing and using this hook in your component, you can effortlessly access the online status of the user. The hook internally uses the "navigator.onLine" property to determine the initial online status and dynamically updates it whenever the user's connectivity changes.

Read more

MSSQL: Table Rebuild and Reorg in highload 24/7 Environments

Level of difficultyMedium
Reading time14 min
Views3.2K

How do you deal with index fragmentation if your SQL server is working in high load environment with 24/7 workload without any maintenance window? What are the best practices for index rebuild and index reorganize? What is better? What is possible if you have only Standard Edition on some servers? But first, let's debunk few myths.

Myth 1. We use SSD (or super duper storage), so we should not care about the fragmentation. False. Index rebuild compactifies a table, with compression it makes it sometimes several times smaller, improving the cache hits ratio and overall performance (this happens even without compression).

Myth 2. Index rebuild shorten SSD lifespan. False. One extra write cycle is nothing for the modern SSDs. If your tempdb is on SSD/NVMe, it is under much harder stress than data disks.

Myth 3. On Enterprise Edition there is a good option: ONLINE=ON, so I just create a script with all tables and go ahead. False. There are tons of potential problems created by INDEX REBUILD even with ONLINE and RESUMABLE ON - so never run index rebuilds without controlling the process.

Finally, we will tackle the REBUILD vs REORGANIZE subject and what is possible to achieve if you have only Standard Edition.

Read more

Detection of meterpreter sessions in Windows OS

Level of difficultyEasy
Reading time4 min
Views1.7K

Introduction

Hello Habr! This is a translation of my first article, which was born due to the fact that I once played with the types of meterpreter payload from the Metasploit Framework and decided to find a way to detect it in the Windows OS family.

Analysis

I will try to present everything in an accessible and compact way without delving into all the work. To begin with, I decided to create the nth number of useful loads (windows/meterpreter/reverse_tcp, shell/bind_tcp, shell_hidden_bind_tcp, vncinject/reverse_tcp, cmd/windows/reverse_powershell) to analyze what will happen in the system after their injection.

Read more

Exploring FIFO principles using an HDL training tool

Level of difficultyMedium
Reading time1 min
Views755

Ссылка на русскую версию / link to Russian version

FIFO is a key concept in hardware design. Understanding of FIFO is necessary for understanding the valid/ready protocol, which in turn is necessary for organisation of flow-control within a design.

Unfortunately, there are very few books on this topic, and to be fair, microarchitectural concepts are quite difficult to master from books, since understanding of these concepts are coming with practice. In other words it is more about developing hardware intuition.

The idea of the HDL training tool is that it can help develop a hardware intuition, providing the opportunity to explore ready-made scenarios in a step-by-step interactive way. The tool also provides detailed visualization of a simulated scenario.

Since the tool is a front-end for the HDL simulator, the real, synthesized SystemVerilog is executed on the simulator itself, which can be viewed and even modified.

So, the video of exploring FIFO on the training tool is here:

Watch the video and continue reading