Arbeiten im technischen Support brachte zusätzlich zu allen Aufgaben die Pflicht mit sich, die Kommunikationskanäle zu überwachen. Dies wurde über den Grafana-Dienst realisiert, der die erforderlichen Metriken aus Zabbix bezog. Da die Art der Arbeit jedoch bedeutete, dass man nicht immer an seinem Arbeitsplatz sitzt, kam mir die Idee, dies ein wenig zu automatisieren und Benachrichtigungen auf das Telefon oder zum Beispiel in einen Messenger zu erhalten, falls ein Kommunikationskanal ausfällt. Allerdings hatte ich keinen Zugriff auf das Zabbix-System und auch keinen erweiterten Zugriff auf Grafana.
LeetCode 2790 (Hard). Maximum Number of Groups With Increasing Length. Solution of the day. O(N logN). Math
Simple Swift Math Solution.
Time complexity: O(N logN).
time complexity of this solution is dominated by the sorting step, making it O(N logN), where N is the length of the input array usageLimits. The rest of the operations involve simple arithmetic and comparisons, which take linear time. Therefore, the overall time complexity of the function is O(NlogN).
Only 10 lines of code.
Against the backdrop of a sharp decline in venture investments in various traditional industries (this is clearly related to the global economic situation), but against the backdrop of certain upheavals in the crypto industry, the question arises of a driver that can become one of the «pillars» of the development of a decentralized industry.
Today, it becomes quite obvious that the situation with web3 technology is becoming similar to the situation with programmatic advertising 10-12 years ago. When programmatic-ads just started, the major market players were not very optimistic - it was much easier for them to follow the well-known paths with chains of publishers and agencies. However, once programmatic got rid of the «childhood diseases» and became simple in use, effective in attracting customers, it has taken a dominant position in the modern advertising market - providing precise targeting and cost reduction. The situation with web3 is similar - all publishers ideally want to have systems for lifetime tracking of customer achievements (that is, Soul Bound tokens in web3), theoretically stable decentralized data storage systems that cannot be broken through a simple server attack, real users’ ownership for his content, as well as simple cross-border payment systems that have built-in algorithms for calculating all duties and taxes. Sounds like a perfect world, but even Amazon doesn't do that yet. Why?
The problem is the web3 entry point, which is difficult for users. As soon as they start talking about opening a crypto wallet, about 12 phrases as a backup, most users interrupt the onboarding process and immediately leave the site. This is obvious - over the decades of the development of the digital market, users have become accustomed to facilitating and simplifying systems for interacting with the site. One-click registration, effective convenient UI, visibility and the «metro principle», where the client is led by the hand – this is modern digital progress. And here some 12 phrases are offered, incomprehensible tokens - and, most importantly, why? So, it turns out that a self-sufficient audience of geeks or really advanced users revolves around web3, which is growing weakly.
In this guide, I'm going to walk you through how to create a simple e-commerce app using SwiftUI and Firebase. The app will include basic functionalities such as product listing, shopping cart, and user authentication.
Before we get started, you should have the following installed:
When developing functional digital products, especially at the preliminary stages (from MVP to alpha versions) many teams use the «technology first» principle. This means a minimum of user convenience, a maximum of engineering competence. When evaluating the potential of a product, further efforts are already in the direction of creating ergonomic visitor paths, design and more. However, here lies the catch - since not two clients or a prospective investor can evaluate the entire user route, touch it with their hands and make sure that the system works, you can lose both clients and partners.
Avoid duplicate content
Many online merchants face a common challenge with multiple product variations, leading to duplicate content issues. When similar products have slightly different URLs like "?=sortby" or "?p=2", search engines may view them as duplicates, impacting your website's credibility and search rankings. To tackle this:
I wrote a small e-book about terrible tips for C++ developers. Actually, it describes bad programming practices and explains why it's better to avoid them. However, every chapter of this mini-book starts with a terrible tip — just for fun.
By the way, these tips may seem artificial but believe me, they are based on the real experience. In other words, the described terrible tips occur in developers' lives — that's why it's worth discussing them. First of all, this book will be useful for junior developers. But more skilled C++ developers can also find interesting and useful tips.
Even though it's a mini-book, it clearly does not fit into the Habr format. Too many words. So, I decided to write here the review. Here is the link to find the full version of the mini-book: 60 terrible tips for a C++ developer.
If you still hesitate whether to read it or not, below you will find a list of terrible tips that will be discussed in the mini-book.
View the terrible tips:
The article describes the interactive Schnorr identification protocol (hereinafter referred to as the Schnorr protocol) and formulates the problem of compatibility of this protocol with the instant digital signature (IDS) mode. This post shows how to modify the Schnorr protocol to provide such compatibility.
There is such an interesting data transfer protocol - APRS. A lot has already been told about him on the Internet. There will be no in-depth theoretical material here. This article will describe how to create your own "pocket" AFSK modulator. In the following articles there will be instructions for going on the air and for creating a simple demodulator. Which will allow you to accept APRS packages and display information on the display right on the street. Everything will be implemented for Flipper Zero. If you don't have this gadget yet, then don't worry and try everything on the great and terrible Arduino. It is very interesting to transmit information at a distance "with your own hands".
Faced with situation when had to map STRING VALUE coming from database TO ENUM. The problem happens when value stored in database differs from enum name. And here we need a workaround to make a mapping. I will describe main points on how I was able to realise it.
I develop robots, and I'm often asked, "How to make a robot?" and "Where do you find information and what resources do you use?"
If you don't know where to start and want to create your own robot, this article is for you. In it, I will try to explain the process and also share the first steps you should take.
In this article, we dive into the world of custom React hooks and explore the incredible potential they hold for supercharging your work projects. With over 20 carefully crafted hooks at your disposal, I personally utilize these hooks in my own work projects, and now I'm excited to share them with you. From enhancing functionality to streamlining workflows, these custom hooks are designed to empower developers and deliver user-friendly experiences. Join us on this journey as we unleash the power of these 20+ hooks and unlock new levels of productivity and innovation in your React projects.
gookit/goutil An extended library of Go's common functionality. Contains: number, string, slice/array, Map, struct, reflection, text, file, error, time and date, test, CLI, command run, system information, formatting, common information acquisition, etc.
LeetCode 2612 (Hard). Minimum Reverse Operations.
The algorithm follows a breadth-first search (BFS) approach to determine the minimum number of reverse operations needed to bring the 1 to each position in the array.
To speed up the algorithm, we mark banned positions with -2 instead of using set lookups. This optimization reduces the constant coefficient and improves the speed of the algorithm, but it may still result in a time limit exceeded (TLE) error.
For each visited position, there are potentially O(k) target positions that can be reached through reverse operations. To avoid the multiplicative cost of iterating over all these potential positions, we update the nextNode2s array. This array initially points forward by 2, but we update it dynamically to point beyond all the target positions considered for each visited position. This optimization helps improve the efficiency of the algorithm and avoids unnecessary computations.
The Role of the Technical Writer in the AI Revolution: Bridging the Gap between Technology and Communication
AI technologies offer unprecedented opportunities for innovation, efficiency, and growth in such industries as advanced machine learning algorithms or intelligent automation systems. However, to harness the power of AI, effective communication becomes paramount.
The growing impact of AI in modern business is undeniable. Organizations leverage AI to automate processes, gain insights from vast amounts of data, personalize customer experiences, and make informed decisions. Yet, the complex nature of AI technology often creates a significant gap between AI capabilities and the understanding of its users.
Here the role of a technical writer becomes crucial. Technical writers act as a bridge between AI technology and its users, ensuring that complex concepts have a clear, concise, and user-friendly manner of speaking. They are the main participants in making AI accessible to a broader audience, facilitating adoption, and maximizing its potential.
Effective communication is essential to reduce the gap between AI technology and its users. While AI systems may be sophisticated and comprehensive, their impact can be weak without proper understanding and utilization. Technical writers contribute to the success of AI implementations by translating complex AI concepts into easily digestible documentation, user manuals, tutorials, and other communication channels.
Furthermore, technical writers understand the importance of tailoring information for different audiences. They communicate with non-technical stakeholders, including executives, decision-makers, and end-users, who may lack extensive technical expertise. Using the AI capabilities, benefits, and potential limitations, technical writers empower these stakeholders to make informed decisions and embrace AI solutions.
Generative AI is creating waves in the way we work, significantly revolutionizing the software development process. AI tools are appearing in various phases of software development, such as design, development, and testing. However, there aren't many tools specifically focused on software business analysis tasks.
But with a little creative thinking, we can put "one-size-fits-all" applications like ChatGPT to good use. It can definitely speed up execution of many typical tasks and free up analysts to focus on the more challenging, strategic aspects of the job.
I believe that every programmer has at least once heard about ChatGPT and its marvelous abilities to process, calculate and create huge amounts of data; if not, go check out this Wikipedia article - https://en.wikipedia.org/wiki/ChatGPT.
Can you imagine that some 50 years ago people could not even believe that there may be something artificial surpassing humans in so many areas? Nowadays, we have this marvel at the distance of a few tabs on a phone screen or a keyboard; however, there is still a sadly large number of people who do not fully—if at all— utilize all the perks of ChatGPT in their lines of work. This is mostly related either to people's reluctance to learn new technologies or the fear of losing coding skills they have previously gained—which is not the case with using ChatGPT properly.
In this article I want to give you some of the most useful uses of ChatGPT for your coding work. Remember, there is nothing shameful in using the AI, since this the development and further implementation of it in our day-to-day life is inevitable, so we should start adapting to it as early as we can to take the full advantage of this "magical" technology. Let's get started.