All streams
Search
Write a publication
Pull to refresh

Development

Show first
Period
Level of difficulty

.NET: Tools for working with multi-threading and asynchrony – Part 1

Reading time18 min
Views20K
I have originally posted this article in CodingSight blog
The second part of the article is available here

The need to do things in an asynchronous way – that is, dividing big tasks between multiple working units – was present long before the appearance of computers. However, when they did appear, this need became even more obvious. It is now 2019, and I’m writing this article on a laptop powered by an 8-core Intel Core CPU which, in addition to this, is simultaneously working on hundreds of processes, with the number of threads being even larger. Next to me, there lies a slightly outdated smartphone which I bought a couple of years ago – and it also houses an 8-core processor. Specialized web resources contain a wide variety of articles praising this year’s flagship smartphones equipped with 16-core CPUs. For less then $20 per hour, MS Azure can give you access to a 128-core virtual machine with 2 TB RAM. But, unfortunately, you cannot get the most out of this power unless you know how to control interaction between threads.
Read more →

Even more secret Telegrams

Reading time6 min
Views5K

We used to think of Telegram as a reliable and secure transmission medium for messages of any sort. But under the hood it has a rather common combination of a- and symmetric encryptions. Where’s fun in that? And why would anyone trust their private messages to a third-party anyway?
Spy vs Spy by Antonio Prohías
TL;DR — inventing a private covert channel through users blacklisting each other.

Read more →

Memoization Forget-Me-Bomb

Reading time10 min
Views1.1K


Have you heard about memoization? It's a super simple thing, by the way,– just memoize which result you have got from a first function call, and use it instead of calling it the second time - don't call real stuff without reason, don't waste your time.


Skipping some intensive operations is a very common optimization technique. Every time you might not do something — don’t do it. Try to use cache — memcache, file cache, local cache — any cache! A must-have for backend systems and a crucial part of any backend system of past and present.

Got the idea? Forget it!

How to write the home address right?

Reading time16 min
Views1.4K

How Tax Service, OpenStreetMap, and InterSystems IRIS
could help developers get clean addresses


image
Pieter Brueghel the Younger, Paying the Tax (The Tax Collector), 1640

In my previous article, we just skimmed the surface of objects. Let's continue our reconnaissance. Today's topic is a tough one. It's not quite BIG DATA, but it's still the data not easy to work with: we're talking about fairly large amounts of data. It won't all fit into RAM at once, and some of it won't even fit on the drive (not due to lack of space, but because there's a lot of junk). The name of our subject is FIAS DB: the Federal Information Address System database — the databases of addresses in Russia. The archive is 5.5 GB. And it's a compressed XML file. After extraction, it will be a full 53 GB (set aside 110 GB for extraction). And when you start to parse and convert it, that 110 GB won't be enough. There won't be enough RAM either.
Read more →

WavesKit — PHP framework for working with Waves Platform

Reading time3 min
Views2.3K

I like PHP for development speed and excellent portability. It's great to have such a tool in your pocket, always ready to solve problems.


For me it was quite sad that there was no Waves Platform SDK for PHP when i first met this nice blockchain. Well, I had to write such kit.

Read more →

How to quickly prepare for a job interview with questions on algorithms and technologies

Level of difficultyMedium
Reading time6 min
Views3.2K
Greetings to all readers of Habr! My name is Yuriy, I have been teaching high technologies, Oracle, Microsoft and others for more than 20 years, as well as creating, developing and supporting loaded information systems for various business customers. Today I would like to tell you about the current direction: interviews on data processing technologies. The Russian variant of this post you can find here.

It doesn't really make sense for an employer to ask the applicant about traditional programming technologies. That is why I'm going to tell you how to prepare for an interview in only one narrow area related to information processing languages, namely, the processing of long integers(long arithmetic) and the identification of information properties of real world objects, which are described in long integers.
Read more →

Digital Forensics Tips&Tricks: How to Connect an Encase Image to the Virtual Machine

Reading time1 min
Views14K
I pretty often meet the question: how to attach an Encase image (.e01) to the virtual machine as a primary bootable disk? Sometimes a digital forensics experts need to boot up the image of the researching machine. It's not so hard actually, but this task has it's hidden stones which ones must be counted.

For this case I'll use a VMware Workstation for Windows and VirtualBox for Linux as a virtualization platforms.

Windows Part

1. Open FTK Imager and mount the .e01 image as a physical (only) device in Writable mode


Read more →

Security Week 2540: подробности supply-chain-атаки Shai-Hulud

Reading time4 min
Views36

Важным событием позапрошлой недели стало масштабное заражение npm-пакетов червем Shai-Hulud. Эта вредоносная программа нацелена на разработчиков открытого ПО. Она ставит под угрозу данные для доступа к облачным сервисам, выкладывает в общий доступ приватные репозитории. Данная вредоносная операция может быть квалифицирована как атака на цепочку поставок: взлом популярного npm-пакета приводит к компрометации множества других программных решений. На прошлой неделе специалисты «Лаборатории Касперского» подробно разобрали схему работы зловреда Shai-Hulud. Также с высокой вероятностью был определен «нулевой пациент» — первый зараженный пакет в репозитории npm.

Атака начинается с загрузки зараженного пакета из репозитория npm. После установки автоматически запускается вредоносный скрипт размером более 3 мегабайт с названием bundle.js. Он содержит набор легитимных модулей для работы с облачными сервисами Amazon и Google Cloud Platform, инструменты для взаимодействия с GitHub API, а также имеет функциональность для работы с TruffleHog, свободно распространяемой утилитой для поиска ссылок на конфиденциальные источники данных.

Read more

OpenAI's Codex CLI Agent: The Complete VS Code Setup Guide

Level of difficultyEasy
Reading time3 min
Views5.3K

This tutorial will guide you through the process of integrating OpenAI’s powerful Codex coding agent directly into your Visual Studio Code environment. This tool functions as an AI pair programmer, capable of understanding complex prompts to execute commands, write code, run tests, and even build entire applications from scratch.

Read more

Comparison of CAPTCHA‑Solving Services: A Peek Under the Hood and a Look at the Numbers

Level of difficultyEasy
Reading time14 min
Views1.2K

CAPTCHA protocols are designed to tell bots from humans, yet in the worlds of automation and testing there is often a need to bypass them. Dedicated CAPTCHA‑solving services take over this task, combining algorithms with human labor.

In this article we present an in‑depth comparison of four popular platforms — 2Captcha, SolveCaptcha, DeathByCaptcha, and AntiCaptcha. We will examine not only pricing and the types of CAPTCHAs supported, but also internal architecture, API integrations, speed and stability, plus the quirks of using each service.

The technical community will find a deep dive here — from API and SDK structure to real‑world use cases. Below you will see a table comparing key characteristics, lists of pros and cons, and a discussion of which service best fits particular automation tasks.

Read more

Getting to know PPEM 2

Level of difficultyEasy
Reading time7 min
Views456

Postgres Pro recently announced the release of Enterprise Manager 2, commonly known as PPEM.

In short, PPEM is an administration tool designed for managing and monitoring Postgres databases. Its primary goal is to assist DBAs in their daily tasks and automate routine operations. In this article, I'll take a closer look at what PPEM has to offer. My name is Alexey, and I'm part of the PPEM development team.

Read more

On reordering expressions in Postgres

Level of difficultyEasy
Reading time4 min
Views573

Today, I want to talk about one of those sneaky tricks that can help speed up query execution. Specifically, this is about reordering conditions in WHERE clauses, JOINs, HAVING clauses, and so on.

The idea is simple: if a condition in an AND chain turns out to be false, or if one in an OR chain turns out to be true, there's no need to evaluate the rest. That means saved CPU cycles — and sometimes, a lot of them. Let’s break this down.

Read more

Automated management of extended statistics in PostgreSQL

Level of difficultyMedium
Reading time6 min
Views667

Here I describe the results of developing a PostgreSQL extension I built just out of curiosity. Its purpose is to automatically manage extended column statistics. The idea came to me while finishing work on another "smart" query-driven product for improving PostgreSQL planning quality. I realized that the current architecture of PostgreSQL isn’t quite ready for fully autonomous operation — automatic detection of bad plans and adaptive optimizer tuning. So why not try the other way around and build an autonomous data-driven assistant?

Read more

Postgres Pro OpenTelemetry сollector

Level of difficultyMedium
Reading time4 min
Views708

Hi everyone, I’m Alexey. I’m a big fan of observability, and in this post, I want to share something I’ve been working on — the pgpro-otel-collector.

TL;DRpgpro-otel-collector is an OpenTelemetry collector (aka monitoring agent) tailored for gathering Postgres metrics and logs — brought to you by PostgresPro.

Read more

Designing profitable software: architecture principles for business success

Level of difficultyMedium
Reading time5 min
Views1.5K

This article presents a business-driven approach to software architecture, focusing on maximizing profitability through technical decisions. It advocates for:

Distributed, stateless services with immutable models for scalability

Isolated third-party integrations without disrupting core logic

Simple, modular design 

Best for:

✔ Tech leads designing scalable systems
✔ Managers optimizing dev efficiency
✔ Stakeholders evaluating ROI on architecture

Read more

How to catch and optimize problematic queries in PostgreSQL

Level of difficultyMedium
Reading time8 min
Views985

If you work with PostgreSQL, you've likely run into performance issues at some point — especially as your database grows. Things may have been running smoothly at first, but as your client database expanded, queries started slowing down. Sound familiar? Here's a guide to help you identify and fix problematic queries, so you can get your PostgreSQL database running at peak performance again.

Read more

The Armenia Opportunity: EDA, ASIC, FPGA + connections with USA, China and Russia

Reading time9 min
Views2K

Armenia is a lucky country. Back in the 1990s somebody lobbied Synopsys, the #1 leader in the Electronic Design Automation market, to create a division there. It was joined by Mentor Graphics / Siemens EDA, another EDA leader, then NVidia. Synopsys Armenia became the largest Synopsys division outside the US Silicon Valley and Boston, although the Taiwanese may tell you otherwise. Since Synopsys and Mentor make software used by chip designers in Apple, Samsung, AMD and all other electronic companies, Armenia has an unfair advantage over all their neighbors in Caucasus and Central Asia.

In addition, Armenia has friendly relations with Russia, and most Armenians speak Russian as well. This has facilitated the move of many Russian companies to Armenia, for example, a RISC-V semiconductor IP provider Syntacore. Finally, as we can see from the recent conference EDA Connect, Armenia is attracting the attention of electronic and EDA companies from China.

EDA Connect featured not only academic and industrial papers but also a hackathon on FPGA design, attended by local students from Yerevan State University, the American University of Armenia, the Russian-Armenian University, the French University in Armenia and others.

Read more