• SQL Server & Concurrency Control

    • Tutorial

    What is a Transaction?

    The standard definition of Transaction state that “Every Query batch that runs in a SQL server is a Transaction.”, this means any query you run on a SQL server will be considered as a Transaction it could either be a simple SELECT query or any UPDATE or ALTER query.

    If you run a query without mentioning the BEGIN TRAN keyword then it would be considered as an Implicit transition.

    If you run a query which starts with BEGIN TRAN and ends with COMMIT or ROLLBACK then it would be considered as Explicit Transaction.

    Read more →
  • Lessons learned from working remotely for 3 years or how to save your bacon and sanity

      You must find out your work-life balance because without that you will burn out. It happens because work is like gas. If you don't control it then work fill all available time little by little. I.e. I used to work 11 hours per day from home. Hopefully, I understood that it had been a bad idea. Let me share some pieces of advice:

      1. Find out a work-life balance.
      2. Do exercises.
      3. Eat healthy food.
      4. Create a schedule & follow it.
      5. Improve microclimate at home.
      Read more →
    • How to develop and publish a smart-contract in the Telegram Open Network (TON)

        What is this article about?

        In this article, I will tell about my participation in the first (out of two so far) Telegram blockchain contest. I didn't win any prize. However, decided to combine and share the unique experience from the start to finish line, so my observations could help anyone who is interested.

        Since I didn't want to write some abstract code, instead make something useful. I created instant lottery smart-contract and website which shows smart-contract data directly from Telegram Open Network (TON) avoiding transitional storage.

        The article will be particularly useful for those, who want to write their first smart-contract in TON but has difficulties where to start.

        Using the lottery smart-contract as an example, I will show the path from the environment set up till publication of the smart-contract and its interaction. Moreover, I will create a website that will show smart-contract data.

        Read more →
      • Implementing Fault-Tolerance PostgreSQL Cluster with Patroni

          I'm a DevOps Teamlead at Miro. Our service is a high-load one: it is used by 4 million users worldwide, daily active users - 168,000. Our servers are hosted by Amazon and located in a single Ireland region. We have more than 200 active servers, with almost 70 of them being database servers.

          The service's backend is a monolith stateful Java application that maintains a persistent WebSocket connection for each client. When several users collaborate using the same whiteboard, they see changes on the whiteboard in real-time. That's because we write every change to a database, resulting in ~20,000 requests per second to the databases. During peak hours, the data is written to Redis at ~80,000–100,000 RPS.

          I am going to speak about why it is important to us to maintain PostgreSQL high availability, what methods we've applied to solve the problem, and what results we've achieved so far.

          Read more →
        • WAL in PostgreSQL: 2. Write-Ahead Log

          • Translation
          Last time we got acquainted with the structure of an important component of the shared memory — the buffer cache. A risk of losing information from RAM is the main reason why we need techniques to recover data after failure. Now we will discuss these techniques.

          The log

          Sadly, there's no such thing as miracles: to survive the loss of information in RAM, everything needed must be duly saved to disk (or other nonvolatile media).

          Therefore, the following was done. Along with changing data, the log of these changes is maintained. When we change something on a page in the buffer cache, we create a record of this change in the log. The record contains the minimum information sufficient to redo the change if the need arises.

          For this to work, the log record must obligatory get to disk before the changed page gets there. And this explains the name: write-ahead log (WAL).

          In case of failure, the data on disk appear to be inconsistent: some pages were written earlier, and others later. But WAL remains, which we can read and redo the operations that were performed before the failure but their result was late to reach the disk.
          Read more →
        • OpenToonz: inside and out

            Picture 1

            Almost four years have passed since the PVS-Studio team checked the OpenToonz source code. This project is a very powerful tool for creating two-dimensional animation. Since the last check, with its help, such animated works as Mary and the Witch Flower, Batman-Ninja, Promare and others were created. As large studios continue using Toonz, why not check the quality of the source code again?
            Read more →
          • AdBlock has stolen the banner, but banners are not teeth — they will be back

          • Signpost: When Breakpoints are not Enough

            • Tutorial

            Instruments for Apple's Xcode is a tool for performance analysis of an iOS application. In 2018 Apple introduced Custom Instruments — an opportunity to expand the standard set of instruments for application profiling. When existing tools are not enough, you can create new ones yourself — it will collect, analyze and display the data the way you need.

            Read more →
          • Content Marketing Culture: Why Cultural Influence Trumps Fighting For Social Media Traffic, Likes and Followers

              Every new business needs an online platform, some turf to call your own. So, you invest time and money to build it. Finally, after months of negotiations and revisions, you deploy it. At first, you’re happy, but weeks go by and your shiny new website is still not attracting customers. In an effort to protect your investment, you start spending more money on PR trying to get people to notice you. But it doesn’t work the same way it did before.

              Bad news is — press release is dead. Good news — there are ways around that. Once you understand how we got here and why the old tricks don’t work anymore, you’ll be able to adjust and rise to the top.

              Read more →
            • How To Make An App Like Uber… And Exceed User’s Expectations?

                When we think about Uber, what immediately comes to our mind is cabs. We assume Uber to be an amazing transportation company. While there is no question that Uber revolutionized transportation, Uber is, in essence, a technology-based disruptor. What Uber did is to make use of the latest technology in breaking what was considered normal at that point in time.

                Uber did not change the way cabs were driven – it was the same drivers and the same gasoline engines, and electric motors in some cases! However, what Uber did was to change the way the driver connected with a passenger who actually needed transportation.

                Striking at the root of a process has its own benefits. It helps you diversify your portfolio of services and that too, in a very effective and efficient way. This is precisely what Uber did. They realized that what they have hacked is not transportation but technology. This is what enabled them to create a simple taxi app that started with operations in New York. In 2010, a year after it was introduced in New York, it also started serving San Francisco.

                Uber came with better quality cars and aptly named it UberX and this service started in 2012. With the growing demand for carpooling and ridesharing, Uber started off with UberPOOL in 2014. Uber made sure it took into consideration the convenience and the competition. In 2014, Uber created Uber Moto which enables users to request motorcycle taxis. To take on the competition by players like Ola in India, they came up with the concept of Uber auto that delivers auto rickshaws to customers at their location.
                Read more →
              • Why Enterprise Chat Apps isn’t built on Server-side Database like Hangouts, Slack, & Hip chat?

                One of the most significant tools for any organization to smoothen their collaborative world is only through a real-time chat application whether the conversation takes place on mobile or desktop. Hangouts, Slack and Hipchat have been in action for businesses to establish a decent conversation between their internal employees and clients right from small-scale to enterprises.

                Those big players come into play where there requires team collaboration. The big players are built on a server-side database where the messages shared from one device to another is stored in their server database. Ultimately, this results in storing a huge amount of data within the server-side database (Cloud-database).

                The consumption of cloud storage will be pretty high. The client-side database is more efficient where the messages relayed is stored in the client device. The messages will be queued to minimize the consumption of data in the server.
                Read more →
              • Technology Stack To Follow in 2020 For Startups

                  JavaScript, CSS, and HTML are some of the main technologies that help you to build robust app solutions. So, if you are looking to build smart web applications for your business, then I advise you to jump to my idea of cross-platform and open-source development frameworks right away.

                  Here is the list of the tech stacks for app developers to use in 2020.
                  Read more →
                • Queue Implementation in JavaScript / Algorithm and Data Structure

                  What do you imagine when you hear the word "Queue"? If you are not familiar with Programming you maybe think about the queue in shop or hospital. But if you are a programmer you associate it 99% with Data Structures and Algorithms. Whoever you are, today we will discuss how to implement Queue Data Structure in JavaScript and what are its differences with a simple Array. Let's get started!

                  Read more →
                • SLAE — SecurityTube Linux Assembly Exam

                    SecurityTube Linux Assembly Exam (SLAE) — is a final part of course:
                    This course focuses on teaching the basics of 32-bit assembly language for the Intel Architecture (IA-32) family of processors on the Linux platform and applying it to Infosec and can be useful for security engineers, penetrations testers and everyone who wants to understand how to write simple shellcodes.
                    This blog post have been created for completing requirements of the Security Tube Linux Assembly Expert certification.
                    Exam consists of 7 tasks:
                    1. TCP Bind Shell
                    2. Reverse TCP Shell
                    3. Egghunter
                    4. Custom encoder
                    5. Analysis of 3 msfvenom generated shellcodes with GDB/ndisasm/libemu
                    6. Modifying 3 shellcodes from shell-storm
                    7. Creating custom encryptor
                    Read more →
                  • The Worst Mistakes In Mobile App Development


                      Alright, so you have just planned to hire developers for a Mobile App which could potentially steer your business ahead. The reasons for your decision would be quite obvious on the surface. Mobile App development is a core part of today’s businesses. It provides a near-perfect platform to serve customers through the portable devices they own.

                      But it’s easy to be a sheep! If you really try to understand this market, you’ll realize that more than half of the apps fail to earn revenue, and a significant amount of them barely cross 1,000 downloads. As per a Gartner report, it was found that barely 0.01 percent apps will find financial success by the year 2018.
                      Read more →
                    • How to use Google docs offline with the new Microsoft Edge

                      • Translation
                      New MS Edge is a promising Chrome flavour since Microsoft is really concerned with laptop battery life: most tests and benchmarks run against the «stock» browser in «stock» configuration. However, until recently it was hard for me to switch completely due to no «offline» support for Google office suite: doc, spreadsheet and slides. Fortunately, with the recent introduction of chrome extensions support it's now possible to put them offline with a few tricks!
                      Read more →
                    • GoROBO: an educational initiative from the ITMO University startup accelerator

                        GoROBO is an ITMO University project through and through: one of the co-owners graduated our mechatronics MA program, and two other employees are current postgrad students.

                        Let’s talk about the educational environment they want to create, why they chose to build such an unusual startup, and what awaits GoROBO clubs in the future.

                        Read more →
                      • Legacy Languages still Pretty Hard to Beat


                        Evolution and development have always been the integral parts of every sector you come across. Same is the case with programming languages. Numerous up gradations and invention of entirely new languages have divided the world of programming into legacy and modern. But no matter what, legacy programming still makes the foundation of many software, web applications and AI based techniques.
                        Read more →
                      • Turns out internet businesses are sustainable during pandemics. Why? Home Office DNA

                          “In 1665, Cambridge University closed because of the plague. Issac Newton decided to work from home. He discovered calculus & the laws of motion.”

                          We live in a truly remarkable moment. With the year 2020 and the COVID-19 outbreak employees all over the world are staying home for quarantine, trying their best to sustain the normal flow of life, which means continue working. And this is something new compared to all the previous infectious pandemics humanity has survived through — this time we have the Internet.

                          Read more →