Pull to refresh

Development

Show first
Rating limit
Level of difficulty

Possible solution to the problem of references in programming languages

Level of difficultyMedium
Reading time4 min
Views34


Every programmer is familiar with the concept of "reference." This term usually refers to a small object whose main task is to provide access to another object physically located elsewhere. Because of this, references are convenient to use, they are easily copied, and they make it very easy to access the object to which the reference points, allowing access to the same data from different parts of the program.


Unfortunately, manual memory management, or more precisely, manual memory control, is the most common cause of various errors and vulnerabilities in software. All attempts at automatic memory management through various managers are hampered by the need to control the creation and deletion of objects, as well as periodically run garbage collection, which negatively affects application performance.


However, references in one form or another are supported in all programming languages, although the term often implies not completely equivalent terms. For example, the word "reference" can be understood as a reference as an address in memory (as in C++) and a reference as a pointer to an object (as in Python or Java).


Although there are programming languages that try to solve these problems through the concept of "ownership" (Rust, Argentum, or NewLang). The possible solution to these and other existing problems with references will be discussed further.

Read more →
Rating0
Comments0

Enabling Cross-Process Dialogue with C# Sockets

Level of difficultyMedium
Reading time4 min
Views28

In the ever-evolving landscape of software development, communication between processes has been a fundamental requirement since the inception of computer networking. As technology advanced, the need for efficient and reliable inter-process communication (IPC) mechanisms became increasingly crucial. One such mechanism that has stood the test of time is the socket.
Sockets trace their origins back to the early days of computer networking in the 1970s. The concept was first introduced in the Unix operating system by researchers at the University of California, Berkeley, as part of their work on the ARPANET project, which eventually evolved into the modern internet. Sockets were designed to provide a standardized interface for network communication, allowing processes to exchange data across different machines and networks.
Initially, sockets were primarily used for network programming tasks, such as building client-server applications and facilitating communication between distributed systems. However, their versatility soon became apparent, and sockets found their way into various domains, including inter-process communication (IPC) within a single machine.
Over the years, sockets have undergone numerous enhancements and standardizations, with the Berkeley Software Distribution (BSD) sockets becoming the de facto standard for network programming. This standard was later adopted by other operating systems, including Microsoft Windows, ensuring cross-platform compatibility and enabling widespread adoption.
In the world of software development, communication between processes is a common requirement, whether it’s a client-server architecture, distributed systems, or inter-process communication (IPC). Sockets provide a powerful mechanism for processes to exchange data efficiently and reliably. This article explores a simple implementation of a TCP client-server communication using sockets in C#, showcasing the versatility and robustness of this time-tested technology.

Read more
Rating0
Comments0

Unlocking Selenium Testing for Flutter's Web Apps

Level of difficultyMedium
Reading time3 min
Views106

Navigating the intricacies of UI testing in the world of Flutter web applications can be a daunting task. If you've ever found yourself scratching your head, wondering how to apply your Selenium expertise to a Flutter-rendered interface, this article is for you. We're going to explore a method that bridges the gap between Flutter's unique rendering process and the robust testing capabilities of Selenium. Whether you're a seasoned tester or just starting out, the insights shared here will equip you with the knowledge to streamline your testing process and enhance the quality of your Flutter web apps. So, grab a cup of coffee, settle in, and let's unravel the mysteries of UI testing for Flutter web applications together.

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

Structure of Linux driver for single-board computer

Level of difficultyEasy
Reading time5 min
Views406

Hello my name is Dmitry. Recently I wrote article "Building firmware for Orange PI i96 (Orange PI 2g-iot) from scratch" . If you haven't read it yat, I highly recommend. And there I noticed that in order to build firware on current kernel, I have to rewrite drivers wirh new archetecture "Device tree". In this article I have revelate how I do it.

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

The new code as the side effect

Level of difficultyMedium
Reading time4 min
Views739

The new code as the side effect

If we use the reducer function for form data handling It has an infinite list of returned values, which expands when the next development iteration updates the interface defining the form and implements a new field. So the reducer pattern is procedure code, not a functional

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

How to speed up Trendwatching with AI

Level of difficultyMedium
Reading time4 min
Views377

Problem

Trendwatching is a powerful tool for driving strategic innovations. It helps to discover new teсhnologies, business models and products, that may be used for idea generation and technology transfer. It is a powerful tool for product managers, business stream managers, top managers and "strategists" and is mostly used on a regular basis.

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

Gatsby and its Greatness

Level of difficultyEasy
Reading time6 min
Views372

In the internet’s early days, blogging was straightforward. A server with PHP and MySQL allowed you to share your thoughts globally. Even FTP access with an index.html file sufficed.

However, as the web evolved, so did blogging requirements. Non-programmers needed user-friendly web interfaces, faster loading times, and seamless daily publishing. Platforms like Reddit, WordPress, and Tumblr emerged, but they faced a common issue: website ownership.

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

How to understand when proxies are lying

Level of difficultyEasy
Reading time3 min
Views421

How to understand when proxies are lying: verification of physical locations of network proxies using an active geolocation algorithm

People all over the world use commercial proxies to hide their true location or identity. This can be done to solve various tasks, including accessing blocked information or ensuring privacy.

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

Could async/await magic create thread, or it is always: “There is no thread”?

Level of difficultyMedium
Reading time4 min
Views516

When we are told “There is no thread” we can easily come to an opinion that it is impossible at ALL that asynchronous operation could create thread, but it would be wrong opinion. Simple code example proves the opposite.

Those who are easy to treat the sentence as the universal rule are easy to understand. They would like to simplify the subject and to cut amount of theory they should study and remember. Besides to many it is new level of knowledge to discover there is other layer of classes to manage async-operations behavior beside the Tasks and and SynchronizationContext is only one among them.

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

Unveiling the Power of Matplotlib: A Visual Odyssey

Level of difficultyEasy
Reading time3 min
Views354

In the realm of data visualization, where insight meets aesthetics, Matplotlib stands as a towering beacon of versatility and creativity. As one of the most popular plotting libraries in Python, Matplotlib empowers data scientists, analysts, and enthusiasts alike to transform raw data into captivating visual narratives. Let us embark on a journey through the vibrant landscapes of Matplotlib, exploring its features, capabilities, and the artistry it inspires.

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

Stopwatch implementation on FPGA board

Reading time5 min
Views240

In this report we describe our implementation experience of a stopwatch system executing on an FPGA board. We programmed this device in the Quartus Prime II software environment by using Verilog hardware description language. The program is tailored to the Altera MAX 10 FPGA board, as well as uses a set of other peripheral devices for progress visualization purposes.

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

User-defined aggregation functions in Spark

Level of difficultyMedium
Reading time6 min
Views203

Below, we will discuss user-defined aggregation functions (UDAF) using org.apache.spark.sql.expressions.Aggregator, which can be used for aggregating groups of elements in a DataSet into a single value in any user-defined way.

Let’s start by examining an example from the official documentation that implements a simple aggregation

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

Use-Case Evolution Guide

Level of difficultyMedium
Reading time13 min
Views505

Modern product development demands more and more sophisticated designs. This in turn leads to the increased complexity of both demand and implementation. Business is flooding the architecture and development teams with the new and changed requirements. Development teams are struggling to understand what the business demand is and find the best product increment strategy. One of the widely adopted conversational methods is the Use-Cases. This guide is intended to shed light on the process of the requirements development and maturing.

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

Building firmware for Orange PI i96 (Orange PI 2g-iot) from scratch

Level of difficultyEasy
Reading time14 min
Views559

Hellow my name is Dmitry. Once I bought "Orange PI i96", but unfortunately producer not update it firmvere very long. Last firmwere kernel version is 3.10.62 but kernel current at time this article writing (russian version) is 6.5.1. And so I decide build my own firmware from scratch, and do it from sourse completely.

Read more
Total votes 9: ↑7 and ↓2+5
Comments6

RSS with types

Level of difficultyMedium
Reading time5 min
Views431

RSS 2.0 specification was published in 2009 and hasn't moved from that point. The popularity and website adoption of this standard are dropping. People stop using it as it can't compete with social networks owned by big companies, and publishers stop using it is not rewarding. Let's review, analyze, and suggest a possible alternative to RSS. We will go from a concept to a working prototype.

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

The results of 7 Verilog meetups + the goals and the steps going forward

Reading time5 min
Views641

Since the New Year we had 7 Verilog meetups at HackerDojo. We discussed the modern way of designing digital circuits using hardware description languages, the exercises on FPGA boards and the topic of microarchitecture. For the last two sessions we went over the most basic CPU core that can be used as a baseline for further exercises.

Now, in order to make progress toward the goal of creating new educational materials, it is essential for the regular participants to solve all the homework exercises (see the details in the post below) in parallel with studying the recommended materials.

The next steps are:

1) We are going to do weekly Zoom calls on Sundays, starting March 24, 2024 at 11 am California time (summer time). The link. During this call we are going to discuss the SystemVerilog Homework and the individual projects.

2) Once we develop more materials, we are going to organize a Show-and-Tell session in Hacker Dojo, for a wider audience. During the session several participants from the core team will present demos on various FPGA boards and explain to the curious how FPGA and ASIC work.

Read more
Total votes 5: ↑4 and ↓1+3
Comments0

Chasing a dream: How to become Adventure Builder and make giant spider robot with your own hands

Level of difficultyEasy
Reading time12 min
Views300

Have you ever wondered how difficult it is to turn something you have in mind into a real product? For example, would you be surprised to see someone controlling a huge iron robot spider that can turn on the spot and walk obediently to his pilot's directions?

To realize his idea, this persistent designer overcame many obstacles: he invented the mechanism himself, mastered the skills of aluminum welding, laser cutting, 3D printing, created a reduced prototype and built one. His project stands out even among the most interesting self-made devices you've read about.

Please sit back and relax while reading this rather lengthy article. During the scrolling through, you will learn about some remarkable inventor and his resourcefulness, irrepressible life energy and practical advice to help you realize your dreams, and someone, perhaps, will be pushed to tell about his own project.

Become the adventure builder
Total votes 3: ↑3 and ↓0+3
Comments0

How to Learn Python FREE in 8-Week: The 80/20 Learning Plan

Level of difficultyEasy
Reading time6 min
Views2.1K

I know it can be hard to learn a new programming language. In this article, I want to share my plan with you. It's a way to learn Python in eight weeks using videos, articles, and practice exercises. Exercises are very important because I think the best way to learn is by doing them.

I've created this learning plan for people who don't have much free time. You only need about 30-50 minutes a day and consistency. In my plan, I use the 80/20 principle, which will help you learn the most important things first and improve the rest through practice.

For those who read this article to the end, I have prepared a learning tracking sheet to help you track your progress.

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

Unveiling the Power of Data Science with Python

Level of difficultyEasy
Reading time3 min
Views338

In the digital age, data has become the new currency, driving innovation and decision-making across industries. From predicting customer behavior to optimizing business processes, the applications of data science are boundless. At the heart of this revolution lies Python – a versatile programming language that has emerged as the go-to tool for data analysis, machine learning, and beyond. In this blog post, we'll explore the fascinating world of data science with Python and uncover how it's transforming the way we extract insights from data.

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