• Diamond inheritance problem is not a problem, that's a tricky feature


    Before discussing the topic I’d like to start with a general suggestion not to use multiple inheritance and especially diamond unless you are strongly forced to. You may use e.g. composition or aggregation instead.

    Well, “Diamond inheritance problem” is some kind of steady expression which formed many years ago. You can easily find a lot of articles suggesting usage of “virtual public” to avoid the ambiguity and so on. For instance, https://en.wikipedia.org/wiki/Multiple_inheritance


     That is not wrong as for the problem stated but anyway it is quite one-side statement.
     Below you can find:

    • difference in memory allocation and initialization order between public and public virtual inheritance (examples 1, 2),
    • examples of practical usage of both public and public virtual inheritance (examples 3, 4).
    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 →
  • Are Your File Transfer Integrations GDPR Compliant?

    The onslaught of data security breaches today is relentless, with thousands of major breaches each year and 50 percent more breaches in 2019 vs. 2018, according to a report by Risk Based Security. The costs for each breach have burgeoned as well, with the average cost of a data breach at about $3.92 million.

    Securing data from breaches not only spares bottom line and publicity, it's now also a basic legal requirement to comply with rapidly growing data privacy laws.

    While organizations have long had to comply with industry-specific standards, such as HIPAA in healthcare and the Payment Card Industry Data Security Standard (PCI DSS), you now also face new consumer privacy regulations. Including:

    Read more →
  • Traps and pitfalls in modernization of enterprise application using «supersonic subatomic java»

    This is a post about first steps and first pitfalls in modernization of old enterprise application using "supersonic subatomic java" quarkus as it is positioned by RedHat.

    Initial setup

    In the end of 2019 I was invited to work in a project in our company, where an old monolithic application should be split into micro-services. Basic reasoning behind this decision was, that framework which is used in application is near to it's end-of-life. The application should be rewritten in any case. If it should be rewritten in any case, why not to split it into micro-services?

    Since last 10 years, I was working mostly with java and we had in the project specialists with java knowledge, we have decided to give java-based frameworks a try for back-end functionality.
    OK, let's use spring-cloud for that purpose, was our first thought. But then, we have had a look onto quarkus, which has been released in the end of 2019. We have decided to give it a try, keeping in mind building of native applications using GraalVM.

    Native applications from our perspective could give us following benefits:

    • shorten start time of container
    • reduce resource consumption of container and application

    We were aware about possible drawbacks of this solution:

    • no experience in our team with quarkus framework
    • significantly less amount of available feedback from community, since this is very young framework
    Read more →
  • Safe-enough linux server, a quick security tuning

    The case: You fire up a professionally prepared Linux image at a cloud platform provider (Amazon, DO, Google, Azure, etc.) and it will run a kind of production level service moderately exposed to hacking attacks (non-targeted, non-advanced threats).

    What would be the standard quick security related tuning to configure before you install the meat?

    release: 2005, Ubuntu + CentOS (supposed to work with Amazon Linux, Fedora, Debian, RHEL as well)


    Read more →
  • The World’s Top 12 Quantum Computing Research Universities

    In just a few years, quantum computing and quantum information theory has gone from a fringe subject offered in small classes at odd hours in the corner of the physics building annex to a full complement of classes in well-funded programs being held at quantum centers and institutes at leading universities.

    The question now for many would-be quantum computer students is not, “Are there universities that even offer classes in quantum computing,” but, rather, “Which universities are leaders at quantum computing research.”

    We’ll look at some of the best right now:

    The Institute for Quantum Computing — University of Waterloo

    The University of Waterloo can proudly declare that, while many universities avoided offering quantum computing classes like cat adoption agencies avoided adoption applications from the Schrodinger family, this Canadian university went all in.

    And it paid off.
    Read more →
  • Programatic content marketing in the B2B segment

    Good content makes customers loyal, forms a positive brand image, and raises sales in the long term. But it only works if content reaches its target audience. To bring together prospective clients and relevant messages content marketing platforms are used. Learn how they can improve campaigns of marketing agencies, media buyers, and companies.

    Read more →
  • «Build it & Break it»: How some algorithms generate captcha, while others crack it

    Hello, Habr! Let's me present you a translation of an article "«Ломай меня полностью!» Как одни алгоритмы генерируют капчу, а другие её взламывают", author miroslavmirm.

    Doesn't matter what kind of intelligence you have — be it artificial or natural — after this detailed analysis no captcha will be an obstacle. At the end of the article, you can find the simplest and most effective workaround solution.

    CAPTCHA is a completely automated public Turing test to tell computers and humans apart by automatically setting up specific tasks that are difficult for computers but simple for human. This technology has become the security standard used to prevent automatic voting, registration, spam, brute-force attacks on websites, etc.
    Read more →
  • No-code: yesterday, today, tomorrow

    No-code movement is a new approach to website and app development. It doesn't require technical knowledge. Does no-code movement have something in common with old image boards, guest books and creation of MySpace or Facebook? Yes, it does. And here is why.

    No-code is a reflection of social tendencies made in technologies. To understand it, we need to discover the history from the beginning of the World Wide Web.
    Read more →