• $mol_func_sandbox: hack me if you might!.

    • Translation

    Hello, I'm Jin, and I… want to play a game with you. Its rules are very simple, but breaking them… will lead you to victory. Feel like a hacker getting out of the JavaScript sandbox in order to read cookies, mine bitcoins, make a deface, or something else interesting.



    https://sandbox.js.hyoo.ru/


    And then I'll tell you how the sandbox works and give you some ideas for hacking.

    Read more →
  • How I create browser applications inside browsers

    • Translation

    GitJS


    In 2013 Canonical tried to crowdfund Ubuntu Edge smartphone. Its main feature could be the ability to use the smartphone as a full-fledged PС. Unfortunatly, the crowdfunding campaign did not accumulate enough money, so a dream of having a universal device remained to be the dream.


    I've been searching for universality, too, on the software side, not the hardware one. Today I can confidently say I found the necessary combination: Git and JavaScript.


    As you know, I have already described the benefits of browser applications (nCKOB static site generator) and the benefits of using Git instead of yet another back-end with API (GitBudget to track personal spendings). Once GitBudget was out, I spent the remaining 2020 to build a system allowing one to create browser applications right inside browsers. GitJS is the name of that system.

    Read more →
  • Ant Design Component Customization and Bundle Optimization

      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
    • 7 Best Practices Every Budding React.JS Developer Must Follow to Excel

        image

        With the advancement in web technology, the entire globe is sliding towards the online tech sphere. The globe around us is going tech-centric day by day and thus the demand for front-end designers and developers also.

        Whatever, be the purpose, people just google things and get their desired result. This is all because of the increase in the evolution of web and mobile app development. While we all know that to be a Web developer, you need to have basic skills of HTML, CSS, and JavaScript, but, with time React.js emerged into the technology stack of the web development field and outdated JavaScript.

        A Report by JS reflects that 64.8% of the web developers prefer to use the React.JS framework and would love to use it again and again in the future. It has even beaten other categories of frameworks that are Vue.js with 28.8% votes and Angular with 23.9% votes. This is the reason why the demand for React.JS development companies is at an all-time high.

        image

        With React, it becomes painless to build an interactive user interface. It efficiently updates and renders the right components when changes are made.

        Before you use React.js as web technology, let’s have a look at the practices that every React.js developer should follow to write better react codes for their application.
        Read more →
      • How to display a gazillion of metrics and keep your sanity


          Large scale equals distributed. Distributed equals inevitable complexity. Complexity at runtime equals extensive monitoring. At Hazelcast, doing distributed systems well is our bread and butter. It means we have no choice but to be huge fans of collecting all kinds of metrics to stay on guard of the data our users trust us with.


          In Management Center 4.2020.08, we drastically changed the model of how we transfer the metric data from the cluster members to the Management Center, how we store it, and how we display it. In this post, we are going to talk about the latter bit of the triad.


          We will discuss what to do when you want to display all the data at once, but your users have a limited number of monitors and only one pair of eyes. We will speculate about what users actually want to see when they look at a chart of a monitoring web app. We will go over different approaches to filter the data, and how an average, a median, and a definite integral play their key roles.


          Cross-posted from hazelcast.com

          Read more →
        • 7 Ultimate Programming languages For Mobile App Development

            "image"

            Do you know that 21% of people open an app 50+ times per day? Yes, you heard that right. With the rapid development of technology, the mobile app now made many things possible, which was previously unthinkable.

            And that's why there is an incredible increase in the number of mobile users. According to a recent mobile app development stat, the number of mobile users worldwide is projected to increase to 6.95 billion by the end of 2020.

            In the last couple of years, the mobile app development industry has grown manifold, changing how businesses function around the world. If you are planning to jump into mobile app development, then choosing the right programming language will be the most significant challenge.

            There are more than 600 programming languages, and each one has its own perks and popularity. Are you pondering which language would be best for developing a stunning app?

            Several factors come to mind when making this choice, but the most important one is the language's demand. Here in this blog, I have listed the best programming language for mobile apps in terms of popularity and demand. Let's start!
            Read more →
          • Ads
            AdBlock has stolen the banner, but banners are not teeth — they will be back

            More
          • 11 Years Of Node.JS: Timeline & Significant Contributions

              image

              Do you know Node.js has turned 11 on 27th May 2020? Can’t believe we have stepped into a new decade of this technology? Okay! Let me tell you the truth and story behind it with this article.

              JavaScript has come a long way with its constant bombardment of open-source frameworks. We all have embraced its journey, and Node.js is one of its prevalent and predominant innovations that knocked this tech arena on May 27th, 2009. So, technically and mathematically, both Node.js is 11 years old now.
              Read more →
            • [Dribbble Challenge] — Coffee Ordering Animation

              Tutorial level: Beginner/Junior


              Motivation


              Sometimes, when we surf dribbble, uplabs and similar design clouds, we often find many concepts or prototypes with animations, micro interactions, application flow and so on.
              I often find illustrations of mobile apps that are good and interesting, but of course they are still in the form of concept, so therefore, why don't we try to apply them as an interface for applications that we will build next.


              Original concept


              In the Dribbble Challenge we will try to build an interface for Coffee Ordering, as I found on Dribble.



              GIF here

              Read more →
            • Most Popular JS Frameworks Overview

                JavaScript is a multi-paradigm language. It supports event-driven, functional, and imperative, including object-oriented and prototype-based, programming styles. JavaScript was initially used only for client side. These days JavaScript is used as a server-side programming language as well. To summarize in just one simple sentence — JavaScript is the language of the web.

                Read more →
              • Why we love and choose Ruby instead of Node.js?

                  Choosing between Node.js and Ruby on Rails, when choosing a development platform, is a core decision. That affects how the project unfolds over time, and how much server resources will be needed. Both languages can support web applications of high complexity, but each has its advantages and disadvantages. Knowledge of these pros and cons will help to choose the best solution for the proposed project. Let's analyze in more detail and tell you about our choice and experience.

                  Read more →
                • WebGL tutorial: image processing

                  In this tutorial you will learn how to use WebGL for image processing. We will cover basic stuff like initialization, texture loading, and simple fragment shaders. I will try to cover all aspects of interaction with WebGL but you should have decent understanding of vanila javascript. If you want more in depth explanations, there is a good book called "Learn WebGL", check it out.

                  Read more →
                • Why I keep track of spendings in a personal app made with Git+JS

                  • Translation

                  Hi, folks, let me share my experience of creating an application to keep track of my spendings. Specifically, let me do it by answering the following questions:


                  1. Why keep track of spendings in an application?
                  2. Why did I create the application as a personal project?
                  3. Why does the project use Git+JS?

                  1. Why keep track of spendings in an application?


                  I, like many people out there, wanted to become rich and successful. To become rich, one is often advised to run a personal budget, that's what I started to do several years ago. I'd like to point out that running my personal budget hasn't made me rich and successful, and I increased income simply by moving to Moscow.

                  Read more →
                • Why we fell in love with Vue.js?

                    Implementation a web UI is faced with more and more complex tasks that require the use of more and more complex tools. The trend of leaving the MVC application architecture, as well as the desire of developers to use separate libraries for each layer of tasks, led to changes, against which the Vue.JS framework appeared and became popular. Let's try to understand why Vue.JS appeared and what problems it carefully solves.

                    Read more →
                  • About integration tests

                      [Previously] I was talking about combinatorial complexity of integration tests in multicomponent systems, so let me remind. Let's build a simple system with only 3 components inside. It can be three independent modules and we want to provide some communication between them (message passing good enough for the purpose of the example) So we have 3! = 6 possible configuration to test. Before going deeper lets see how Quicksort fights a combinatorial complexity.

                      [Quicksort] reduces complexity on each pass of a given input. So far so good. Let's imagine example with 10 elements. How many possible permutations do we have? you are right: 10! ~= 3,6 * 10^6. So on the first pass the complexity will be reduced: 5!*5!, on the next pass it will be further reduced till 2!*3!*2!*3!… after logn times we will have 1!*1!*1!...1! = 1 possible position, and our given input is sorted. Gotcha. (attentive reader can mention about worst case scenario of quicksort, but lets discuss it someday) Coming back to our example…
                      Read more →
                    • About Testing

                        Let's talk about Testing, about unit and integration tests which everyone here, i hope, likes to write.

                        Despite of lots of benefits, tests have two fundamental problems: there is no architecture at all (quality), nobody knows what is the meaning of the quantity.

                        Tests have a cost. Lets imagine dialog between manager and developer:
                        — John, how many hours does it take to implement?
                        — Approximately one week: 1,5 day for task and 3,5 days to write tests

                        So why people write tests? Let's try to build a mental model: we delivered a component, our beta testers found a bug, we wrote tests scenario. So, next time we try to deliver the same component, we already know about bad scenario and have automation to check it. So far so good. Next, we are trying to predict future bugs by writing lot's of tests and cover bad scenarios. Next, we deliver better components, users are happy. Profit. (Despite of all pros, the solution is not scalable — with every new component we will face a reality).
                        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 →
                      • What does «clean code» mean in 2020?


                          «Clean Code» and a clean cat

                          There is nothing developers enjoy better than arguing about clean code: Dan Abramov, for example, has recently fueled the hype with his blog post, «Goodbye, Clean Code».

                          However, “clean code” per se doesn’t even have a clear definition. The main book on the subject is Clean Code, where Robert «Uncle Bob» Martin states that there are perhaps as many definitions as there are programmers. But he doesn’t walk away from the fact with a conclusion that there’s no reason to discuss clean code, rather — compare several definitions and highlight general ideas. Therefore he cites the views of several outstanding programmers on what clean code is.

                          So we have also become interested in what people in 2020 think of clean code. Have the views changed since the publication of the book? Do opinions vary in different IT fields (maybe backend developers perceive the idea of clean code differently from testers)?

                          This spring, Uncle Bob comes to St. Petersburg to give talks at our three conferences: they are about .NET development, testing and JavaScript. Therefore, we’ve asked speakers from each of those conferences to share their opinion on clean code so we could compare the opinions of the industry experts in 2020.

                          We've already published the results in Russian, and here's the English version. Since the topic is known to provoke discussions, feel free to give your own definition or argue about those already given!

                          UPD: When we posted this article, Uncle Bob had our conferences in his schedule. Unfortunately, the situation has changed. We updated this post on March 12, to avoid any misunderstanding.

                          Read more →
                        • Quick Sort Algorithm in JavaSript (pivot as the first element + pivot as the random element)

                          • Tutorial

                          Introduction


                          Quick Sort is one of the most famous and effective Sorting Algorithms. The comprehension of how it works will undoubtedly help you in your JavaScript learning. Also, questions on algorithms are popular in job interviews, so there is a big chance you will be asked to describe how Quick Sort works.

                          I’m sure that I convinced you that Quick Sort is important. Let’s start!


                          Read more →