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

    • Tutorial
    • Translation

    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
  • Creating a mini-game with a drip effect and moving circles. Part 1

    • Tutorial
    • Translation

    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

    • Digest

    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

    • Tutorial

    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

    • Case
    • Translation

    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

    Ссылка на русскую версию / 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
  • PostgreSQL 17: Part 1 or Commitfest 2023-07

    • Translation
    image

    We continue to follow the news in the world of PostgreSQL. The PostgreSQL 16 Release Candidate 1 was rolled out on August 31. If all is well, PostgreSQL 16 will officially release on September 14.


    What has changed in the upcoming release after the April code freeze? What's getting into PostgreSQL 17 after the first commitfest? Read our latest review to find out!

    Read more →
  • React Custom Hook: useMediaQuery

    • Digest

    One of the key advantages of this custom hook is its simplicity and reusability. With just a few lines of code, you can effortlessly implement responsive behavior throughout your application. Whether you need to conditionally render components, apply specific styles, or trigger different functionality based on screen size, useMediaQuery has got you covered.

    Read more
  • Create a native Kotlin application with Spring Boot Native, Gradle, and GraalVM without Docker for MacOS and Windows

    • Tutorial

    In this tutorial, I want to talk about the practical experience of native compilation of a production application written in Kotlin with Spring Boot and Gradle using GraalVM. I’ll start right away with the pros and cons of the native compilation feature itself and where it can be useful, and then I’ll move directly to the build process for MacOS and Windows.

    At the end of the article, in the afterword block, I will talk in more detail about the project and why such a need arose, given quite a few limitations and pitfalls of supporting native compilation both from Spring Boot and from GraalVM.

    Read more →
  • React Custom Hook: useLongPress

    • Digest

    One of the key advantages of useLongPress is its simplicity. By utilizing this hook, developers can easily define a long-press action on any element in their React application. With just a few lines of code, the hook takes care of handling the intricacies of tracking the long-press duration and triggering the associated callback function.

    Read more
  • React Custom Hook: useGeolocation

    • Digest

    One of the key advantages of useGeolocation is its simplicity. By encapsulating the complex logic required for geolocation access and handling, this hook provides a clean and reusable solution. The hook automatically handles the loading state, updating it when geolocation data is being fetched, and sets the error state if any issues arise during the process.

    Read more
  • Russian speaking IT presales and passing interviews to the West

    • From sandbox

    Russian speaking IT presales and passing interviews to the West

    I'm Paul Karol an American and I've been living in Russia and working internationally with businesses for the last 10 years. My first client was a Gazprom high level director and we worked on international communication and connections with the West and China.

    I am the keynote speaker in many events and also give companywide training for companies that interact with other countries. I have been working deeply with The IT community of Russia for 6 years. My job is to make them pass their project interviews. Also I work with the presales and make sure that the company gets the projects that they want.

    I'm the expert on Russia, Chinese and the  Western cultural relations.

    First: if your company is just beginning to approach the Western market including America you want to have success in the beginning. If you're successful at passing the first few presale meetings or project interviews your reputation will be established. If you fail a few interviews or presales then you start to develop a reputation.

    @paulkarolgibrelstions4767
  • Writing an interpreter (virtual machine) for a simple byte-code + JIT compilation

    • Translation

    There are two articles on Russian, the author of which writes a virtual machine (interpreter) for executing a simple bytecode and then applies different optimizations to make this virtual machine faster. Besides that, there is a compiler of a simple C-like language into this bytecode. After reading this article and getting familiar with the compiler, I thought that it would be interesting to try writing a virtual machine for this language that would be able to apply JIT-compilation to this bytecode with the libjit library. This article describes the experience of doing that.

    I found several articles online that describe the usage of this library, but those that I saw, describe the compilation of concrete programs with libjit, while I was interested in compiling arbitrary bytecode. For people interested in further reading, there is an official titorial, a series of articles and a series of comparisons (in Russian).

    The implementation was done in C++ because we aren`t playing games here. All my code is in my repository. The "main" branch has just the interpreter of the PigletVM bytecode; "labels-with-fallbacks" has a partial JIT compilation implementation (that doesn`t support JUMP instructions), "full-jit" has fully working JIT-compilationl; "making-jit-code-faster" makes code generated by JIT work faster and "universal-base-vm*" branches merge the interpreter and JIT-compilation implementations, by implementing a base generalised executor, which can be used for different implementations of PigletVM (both the interpreter and libjit compilation)

    Read more
  • How to conduct UX brainstorming sessions effectively: tips and methods that work

    • Retrospective

    Brainstorming is a popular working method which is commonly used by UX design teams. It involves a group of designers meeting (whether offline or via video call) and generating as many ideas as possible to find the best solution to a specific problem or come up with creative design ideas. Brainstorming sessions are usually held at the start of a UX project so that designers could use the ideas they think are the best later in the process of product creation. These sessions can vary in duration and form depending on which problems need to be solved, how many people participate and how many ideas need to be generated. 

    Read more
  • React Custom Hook: useFetch

    • Digest

    One of the key advantages of useFetch is its simplicity. By abstracting away the fetch logic into a reusable hook, developers can quickly and effortlessly make HTTP requests and handle responses without repetitive boilerplate code. With just a few lines, useFetch handles the network request, parses the JSON response, and provides the resulting data.

    Read more
  • Handling multidisciplinary project development

    • Opinion

    Multidisciplinary project emerges when multiple teams with different expertise areas join to create a product. Despite the fact the product development is not something happining merely my a wish, product leads often perceive it as an easy walk. Usually this easy walk becomes a crash course. Let's uncover what leads to crash and what is necessary to succeed.

    Read more
  • ATM security analysis 3.0: PHDays 12 in review

    • Review

     Python, Java, C++, Delphi, PHP—these programming languages were used create a virtual crypto ATM machine to be tested by the participants of the $NATCH contest at Positive Hack Days 12. The entire code was written by ChatGPT and proved to be exceptionally good. This time, we had reviewed the contest concept and decided to use a report system. In addition to standard tasks (kiosk bypass, privilege escalation, and AppLocker bypass), this year's participants faced new unusual tasks. Read on below to find out which ones.

    Read more