All streams
Search
Write a publication
Pull to refresh

All streams

Show first
Period
Level of difficulty

Disposable pattern (Disposable Design Principle) pt.1

Reading time9 min
Views3.4K


Disposable pattern (Disposable Design Principle)


I guess almost any programmer who uses .NET will now say this pattern is a piece of cake. That it is the best-known pattern used on the platform. However, even the simplest and well-known problem domain will have secret areas which you have never looked at. So, let’s describe the whole thing from the beginning for the first-timers and all the rest (so that each of you could remember the basics). Don’t skip these paragraphs — I am watching you!


If I ask what is IDisposable, you will surely say that it is


public interface IDisposable
{
    void Dispose();
}

What is the purpose of the interface? I mean, why do we need to clear up memory at all if we have a smart Garbage Collector that clears the memory instead of us, so we even don’t have to think about it. However, there are some small details.


This chapter was translated from Russian jointly by author and by professional translators. You can help us with translation from Russian or English into any other language, primarily into Chinese or German.

Also, if you want thank us, the best way you can do that is to give us a star on github or to fork repository github/sidristij/dotnetbook.
Read more →

Following in the Footsteps of Calculators: Qalculate

Reading time7 min
Views1.5K

Previously we did code reviews of large mathematical packages, for example, Scilab and Octave, whereby calculators remained aloof as small utilities, in which it is difficult to make errors due to their small codebase. We were wrong that we haven't paid attention to them. The case with posting the source code of the Windows calculator showed that actually everyone was interested in discussing types of errors hiding in it. Moreover, the number of errors there was more than enough to write an article about that. My colleagues and I, we decided to explore the code of a number of popular calculators, and it turned out that the code of the Windows calculator was not that bad (spoiler).
Read more →

Writing a wasm loader for Ghidra. Part 1: Problem statement and setting up environment

Reading time7 min
Views12K

This week, NSA (National Security Agency) all of a sudden made a gift to humanity, opening sources of their software reverse engineering framework. Community of the reverse engineers and security experts with great enthusiasm started to explore the new toy. According to the feedback, it’s really amazing tool, able to compete with existing solutions, such as IDA Pro, R2 and JEB. The tool is called Ghidra and professional resources are full of impressions from researchers. Actually, they had a good reason: not every day government organizations provide access to their internal tools. Myself as a professional reverse engineer and malware analyst couldn’t pass by as well. I decided to spend a weekend or two and get a first impression of the tool. I had played a bit with disassembly and decided to check extensibility of the tool. In this series of articles, I'll explain the development of Ghidra add-on, which loads custom format, used to solve CTF task. As it’s a large framework and I've chosen quite complicated task, I’ll break the article into several parts.

By the end of this part I hope to setup development environment and build minimal module, which will be able to recognize format of the WebAssembly file and will suggest the right disassembler to process it.
Read more →

How to Discover MongoDB and Elasticsearch Open Databases

Reading time3 min
Views17K

Some time ago among security researchers, it was very “fashionable” to find improperly configured AWS cloud storages with various kinds of confidential information. At that time, I even published a small note about how Amazon S3 open cloud storage is discovered.


However, time passes and the focus in research has shifted to the search for unsecured and exposed public domain databases. More than half of the known cases of large data leaks over the past year are leaks from open databases.



Today we will try to figure out how such databases are discovered by security researchers...

Read more →

Most common misconceptions in popular physics

Reading time5 min
Views3.4K
Somewhere in an alternative Universe, based on MWI, I became a genius in physics. But in our Universe, I just read professional publications in physics, trying to keep myself up to date, meanwhile working as pizza delivery guy as DBA. Because of a slightly deeper knowledge of the subject it is almost impossible for me to watch the Discovery channel and other popular TV shows and the YouTube videos. I see nothing but oversimplifications, lies, and half-truths and can’t enjoy the shows.

I decided to compile a list of the most popular misconceptions. And the winner is...., or course, this one:

The Big Bang


Usually it is pictured like this:

image
Read more →

Submit to the Applied F# Challenge

Reading time2 min
Views928

This post was written by Lena Hall, a Senior Cloud Developer Advocate at Microsoft.


F# Software Foundation has recently announced their new initiative — Applied F# Challenge! We encourage you to participate and send your submissions about F# on Azure through the participation form.


Applied F# Challenge is a new initiative to encourage in-depth educational submissions to reveal more of the interesting, unique, and advanced applications of F#.

Read more →

Vue, Storybook, TypeScript—starting a new project with the best practices in mind

Reading time12 min
Views23K


(originally published on Medium)


I like writing React code. This might be an odd introduction to a story about Vue, but you need to understand my background to understand why I’m here discussing Vue.


I like writing React code and I hate reading it. JSX is a neat idea for assembling the pieces together fast, Material-UI is amazing solution for bootstrapping your next startup’s UI, computing CSS from JS constants allows you to be very flexible. Yet reading your old JSXs feels awful – even with scrupulous code review practices you might scratch your head not once as you try to figure the intricate nesting of the components.


I’ve heard many things about Vue—the not so new kid on the block—and I finally decided to get my feet wet; bringing in all my mental luggage of React and Polymer (and Angular, but let’s not talk about that).

Read more →

Starting point

Reading time3 min
Views1.2K
For a point of reference in the economy for a long time understood «the Wealth of Nations» by Adam Smith. In modern science, this point was transformed into GDP — Gross Domestic Product.

On the other hand, the benchmark in monetarism (Milton Friedman) and the Austrian School of Economics (Ludwig Heinrich Edler von Mises, Friedrich August von Hayek) is freedom. Economic and political freedom.

The third fashionable point at present is the concept of “The Happy Planet Index”.

Thus, there is no single point of reference.

Nevertheless, this point is easy enough to detect if you understand the basic principles of building a modern post-industrial democratic society. If you understand what is common in these models. Where is their common starting point.

The modern economic system, as well as the modern democratic system, were not created for themselves. They are made for people. And that means not a person for the state, but a state for a person. Laws are not to limit human freedoms, but to ensure respect for the rights and freedoms of each person, laws to increase the happiness and wealth of a person. Not GDP, but the wealth of each individual.

States are made up of people. No people — no state. Poor people are a poor state.

image

Wealth, happiness, human freedom — is the area of respect for his rights.

Thus, a common unifying point in economic and political reasoning and theories is in the field of human rights.
Read more →

Test me if you can. Do YML developers Dream of testing ansible?

Reading time3 min
Views3.6K

kitchen-ci schema


It is text version of the presentation 2018-04-25 at Saint-Petersburg Linux User Group. Configuration example locates at https://github.com/ultral/ansible-role-testing


I suppose that that you make configuration management, not bash. It means that you have to test it some how. Have you ever tested ansible roles? How do you do it?

Read more →

Android Robotics up to 2019: The real story; in 5 parts; part 1

Reading time23 min
Views4.9K
image

Quite a long time ago, seven years ago to be precise, i wrote a series of posts describing the state of android robotics in the world. At the time i was a high school student, with a keen interest in android robotics, who absorbed a bit of knowledge from English, Japanese, Chinese, Korean and Russian internetz and wanted to spill it somewhere.

While the posts were not too professional, and not to my standards of today, they were worthy enough to get stolen and even get translated by unapproved English Habrahabr mirrors, and to this day, appear in searches.

After those posts were written, Habrahabr got split. Removal of everyone outside of pure coding who were considered «not cake enough» to Geektimes felt like an insult and so i left the platform. Yet, the website was reunited last year, and much to a personal surprise, fairly recently an English version of Habrahabr was released.

During all these years i managed to be kicked from one university, finished another with a thick thesis on «Usage of Robotics in Disaster Conditions», lived in the Republic of Korea for half a year, and most importantly, not only expanded my knowledge of android robotics in such ways that the Robotics folder on the main hard drive is now more than 300GB in size, but also expanded the knowledge via journeying and personally meeting projects of the past and present, creating quite a decent archive on Youtube and met not only with the robots, but the engineers and scientists as well.

While i am still nowhere to be a robotics engineer, (and in the daily life i attempt to be a traditional slice-of-life artist), i feel that my tiny gigabytes of knowledge might be worthy of sharing, and today on Habr i'm publishing the real story of Android Robotics from the beginning up to 2019.

ML.NET Tutorial — Get started in 10 minutes

Reading time3 min
Views5.5K
Last year we announced ML.NET, cross-platform and open ML system for .NET developers. During this time, it has evolved greatly and has gone through many versions. Today we are sharing a guide on how to create your first ml.net application in 10 minutes.

Читать дальше →

How to Painlessly Unite Art with Java, JavaScript, and Graphs or The Story Behind Creating an Interactive Theatre Produc

Reading time9 min
Views1.4K
Last year 2018, a theatre production series called Tale of the Century was launched in Estonia. Throughout the year, 22 local theatres presented their interpretations of the past hundred years of Estonian history to the audiences. In the draw, the Russian Theatre was assigned the topic of the future of Estonia.

What’s in Store for pg_probackup 3

Level of difficultyMedium
Reading time12 min
Views852

While pg_probackup 3 is still in the works and not yet available to the public, let’s dive into what’s new under the hood. There’s a lot to unpack — from a completely reimagined application architecture to long-awaited features and seamless integration with other tools. 

Read more

Argo CD vs Flux CD

Level of difficultyEasy
Reading time7 min
Views10K

За последнее время я вижу всё больше споров на тему двух популярных GitOps инструментов: Argo CD и Flux CD.

На самом деле я считаю такие споры необоснованными, потому что глубоко убеждён что внимания заслуживают оба инструмента и каждый из них хорош для решения своего круга задач.

В своей профессиональной деятельности я активно использую и тот и другой. Я хочу поделиться с вами своим мнением и кейсами использования. Надеюсь эта статья поможет вам выбрать наиболее подходящий инструмент под ваши нужды.

Read more

New botnet with lots of cameras and some routers

Reading time3 min
Views2.1K

DDoS attacks send ripples on the ocean of the Internet, produced by creations of various sizes - botnets. Some of them feed at the top of the ocean, but there also exists a category of huge, deep water monstrosities that are rare and dangerous enough they could be seen only once in a very long time.

November 2021 we encountered, and mitigated, several attacks from a botnet, that seems to be unrelated to one described and/or well-known, like variants of Mirai, Bashlite, Hajime or Brickerbot.

Although our findings are reminiscent of Mirai, we suppose this botnet is not based purely on propagating Linux malware, but a combination of brute forcing and exploiting already patched CVEs in unpatched devices to grow the size of it. Either way, to confirm how exactly this botnet operates, we need to have a sample device to analyze, which isn’t our area of expertise.

This time, we won’t give it a name. It is not 100% clear what we are looking at, what are the exact characteristics of it, and how big this thing actually is. But there are some numbers, and where possible, we have made additional reconnaissance in order to better understand what we’re dealing with.

But let us first show you the data we’ve gathered, and leave conclusions closer to the end of this post.

Read more

Ant Design Component Customization and Bundle Optimization

Reading time13 min
Views11K

I'm Ivan Kopenkov, a senior front-end developer at Mail.ru Cloud Solutions. In this article, I will tell you about the approaches we have used for the UI library components customization. You will also learn how to significantly decrease bundle size, cutting off all the unnecessary modules Ant Design takes there.

In our case, we are making wrappers for original Ant Design components inside the project, changing their appearance, and developing their logic. At the same time, we import both customized and original components right from the ant-design module. That saves tree shaking functionality and makes complex library components use our wrappers instead of original nested elements.

If you are already or about to use Ant Design, this article will provide you with a better and more effective way to do so. Even if you have chosen another UI library, you might be able to implement these ideas.

Read more