Quantum computing & machine learning. Data Science Łódź #16 review

Our growing interest in data science and big data led us to attend the Data Science Łódź #16 meetup. While machine learning with the use of quantum computers still technically counts as data processing, it’s on a level mankind has not seen before.

Read on and learn the key concepts in the field of quantum machine learning (QML).

Komputer kwantowy IBM Q
Quantum computer IBM Q. Connie Zhou/IBM (Flickr).

Maciej Adamiak of SoftwareMill and Adam Mickiewicz University in his informative presentation titled “Quantum-assisted machine learning” demonstrated a machine learning algorithm that combines the operating principles of a classical computer with those of a quantum computer. He also showed examples of Python source code written to run on a quantum computer. It ran on IBM cloud services with the help of a number of libraries.

We were surprised by the high substantive level of the meetup. Not only the speaker, but also the members of the audience were very knowledgeable – both in the broad field of data science and the cutting edge subject of quantum machine learning.

As a summary of the talk, we’re going to describe the basic concepts and a couple interesting facts on the current state of the field of quantum computing.

Qubits – units of information in quantum computers

One gigabyte of data stored using binary bits can be represented by as little as 30 qubits (the fundamental units used in a quantum computer). Machines operating on qubits can perform multiple computations at the same time, unlike classical computers. This doesn’t mean their broad use could be affordable anytime soon.

It is anticipated that quantum computers need a few more years to beat classical computers in computing power. The few existing machines can only process about 30 qubits.

Faster algorithms thanks to quantum entanglement

Quantum computers produce results in a shorter amount of time. Let’s assume we have an algorithm of O(n) complexity – for instance, an algorithm that processes every element of an n-element vector. With a quantum computer, a definitive result can be produced after checking just a few elements (with constant O(1) complexity). This is due to the “entanglement” of the elements of the vector in a quantum computer, analogous to the quantum entanglement of two particles.

Randomness in a quantum computer

A quantum computer is capable of producing true randomness, while traditional computers always need some form of seed. With quantum computers, a qubit can be put in a state of superposition in which the probability of it being a value of either 1 or 0 is split equally. This leads to a true (i.e. originating from quantum nature) non-deterministic result.

Difficulties of quantum computations

As of now, using a quantum computer comes with a number of hurdles. For a start, one needs to get familiar with the complicated knowledge of describing algorithms in a quantum computer. Executing computations with the current technology requires extreme carefulness and scrupulousness. For instance, it’s vital that the number of quantum gates is kept at a minimum, otherwise the result may get distorted by noise, up to a point of becoming random.

Availability of quantum computers

There are no commercially available quantum computers and probably won’t appear for quite some time. IBM offers a cloud based solution that allows the use of a quantum computer connected to a classical system. The IBM Q machine is located in a specially constructed facility, because it must operate in complete isolation from external factors. It is contained in a cube-shaped glass box with an edge of 2.7 meters, with the temperature brought down close to absolute zero (-273 C). It must be protected from any fluctuations in temperature, as well as from factors such as loud sounds, vibrations, or radiation. The slightest change of physical conditions affecting the machine can cause the qubits to lose their essential properties.

Python program running on a quantum computer (Jupyter tool)
Python program running on a quantum computer, shown using the Jupyter tool.

Machine learning and data science have become a part of many IT projects. There will be more and more attempts to make use of quantum computers to perform the calculations.

Today’s experiments with building a bridge between the quantum world and traditional computing are well described by this quote from Terry Pratchett, mentioned by Maciej Adamiak:

“In fact, the mere act of opening the box will determine the state of the cat, although in this case there were three determinate states the cat could be in: these being Alive, Dead, and Bloody Furious”

Terry Pratchett

From: Dawid, Sidnet | To: jQuery + Tczew Animal Shelter

In their everyday work, our developers work from various locations. But it is Dawid’s home town that is the longest distance away from our office in Warsaw. Dawid Jancen, a resident of Tczew, has been involved in programming frontend and single-page applications (SPA) for nearly 5 years.

When asked to choose the open-source and charitable projects that we will support this month, he indicated the ones that have already received our donations several times per his request. As such, Dawid chose to support the creators of the jQuery library for the 3rd time, and the inhabitants of the Tczew animal shelter for the 4th time.

jQuery

jQuery is a JavaScript library which is very helpful in building the frontend of web applications. It is open-source software, available under the MIT licence, which is currently being developed by the JS Foundation. Of the 10 million most popular websites, 73% utilise this library, including Wikipedia, Twitter and LinkedIn. As for us, we have used jQuery in many projects, notably in the sales and service management system developed for UK2.

What does the jQuery library provide us with?

  • Plug-ins. A plethora of free add-ons to use in interfaces, forms or AJAX mechanisms.
  • Animations. Ready-to-implement effects that make the user interface more attractive. This is the primary reason why the jQuery library is so popular with web designers.
  • Less coding. In accordance with the slogan: “write less, do more”, jQuery can do a lot with just short lines of code.
  • Cross-browser compatibility. The library works in all popular web browsers. Adapting the code to each one of them individually is not required.

“jQuery was the first library that I learned to use when I first started my adventure with JavaScript. It has been around for 13 years and, in that time, a very active community has formed around it. This makes it easy to find solutions even in the case of the most unusual problems” – said Dawid.

Tczew animal shelter

It is a dog and cat shelter that has been run by OTOZ Animals since 2007. Its activities include organising animal adoptions, educating people and protecting its inhabitants. In June, the shelter opened a brand new space, specifically dedicated to old dogs.

“Several of my friends were involved in the shelter’s activities. That is why I know for a fact that the Tczew animal shelter constantly needs donations to properly take care of the animals” – Dawid explained.

However, the activities of The Polish National Society for the Protection of Animals – OTOZ Animals – include much more than taking care of stray animals. The Society also conducts thousands of interventions every year and organises educational meetings at schools, as well as annual nationwide campaigns that encourage people to adopt animals. In addition, it supports protest actions against animal abuse.

15 years of Sidnet: team values and anniversary celebration photos

From small jobs on RentACoder.com for $15 to 15 years in business. From freelancing to a full-blown business. Through years of experience, ups and downs, achievements and happy coincidences.

We have just celebrated the 15th anniversary. Our thoughts? People and projects changed over the years, but a few basic principles have remained engraved in the very core of Sidnet.

1. Running a business is a team endeavor

Maximum productivity with minimum procedures. Over the years, we have learned and tried many methods and techniques of work, but never took any of them as gospel that we would follow blindly.

With 20+ people in the team, we keep our hierarchy flat, allowing everyone to have real impact on how we organize our work, how we communicate, and what tools we use. One person’s voice can make a change that leads to improving the company as a whole.

2. Communication over co-location

Our programmers work from Warsaw, Lublin, Tczew, Rzeszów, Toruń. All the time we stay connected, even though almost all of our work is done remotely. We manage projects in an effective manner thanks to collaboration and communication tools. In real life, we meet at company presentations, when visiting our clients, and on weekly board game sessions.

We stay honest, both when communicating among ourselves, as well as with our clients. We are upfront about risks and are not afraid of admitting to a failure. We make sure to keep it easy to track the progress of our work – through daily stand-ups, reports, and code repositories.

3. Giving back to open source

We put our trust in open source software before it was cool, using it for both our own needs and to build solutions for our clients. We often tweak and modify existing software to better suit our needs. We also make our code available on GitHub for others to use and contribute to.

Every month, we express our gratitude to the open source community by donating to projects, especially those with no commercial backing. Since 2012, we made 90 donations to numerous projects, including Redmine, Matrix, Laravel, Django czy Jenkins, to name just a few.

4. Helping those in need

There is more to life than technology, and with that in mind through the past 7 years we have made 88 donations to foundations, hospices, animal shelters, and individuals in need.

This willingness to help others has also lead to long-term relationships with some of the recipients of our donations. As a web development partner of the “little brothers of the Poor” Association, we take care of their website and build landing pages for their numerous initiatives. The Sarcoma Association has also entrusted us with their website, as well as the registration site for their annual running event Onkobieg.


How we celebrated the anniversary? There were presentations, bowling, billiards, slot machines, food, drinks, and conversations filled with laughter lasting way into the night.

Have a look at a few more photos from our celebratory dinner:

From: Marcin, Sidnet | To: Mobile Detect + Kuba Ułanowicz (Foundation for Children beneficiary)

There is nothing like supporting the development of a smartphone-related tool on World Mobile-Free Day! Yet, there is nothing that we can do about it this time as the open source and non-profit projects that will receive our support were chosen by our web and mobile developer, Marcin Tabaka – also known as Tabs.

Mobile Detect

Mobile Detect has been in development since 2009. It is a tool that detects the types of devices on which users browse a website. It is fully server-based and as such, the content recipient does not experience any drawbacks related to additional data transfer.

Mobile Detect can recognise the following characteristics of a device:

  • type: computer, tablet, mobile phone,
  • name and version of the operating system,
  • name and version of the web browser.

As a result, the tool facilitates the process of optimising a website for devices such as tablets and smartphones.

“The developers of Mobile Detect face a truly daunting task, given the fact that dozens of new mobile devices appear on the market each month. Since they maintain such a useful tool that we use in many projects, including the Kujawski Fooder website, I feel like they deserve our support” – said Tabs.

Kuba Ułanowicz (Foundation for Children beneficiary)

Kuba is a beneficiary of the Foundation for Children “Help on Time” who suffers from autism. Kuba requires pharmacotherapy and daily specialised exercises – speech therapy, psychological therapy, as well as kinesiotherapy and sensory integration. Apart from difficulties with socialising, the boy also suffers from a chronic motor tic disorder, kidney problems and serious haematological issues, which indicate that he may also be suffering from the von Willebrand disease.

“This is the third time that I have recommended Kuba as a person in need of help as part of the Sidnet donation action. His aunt is a friend of mine. Today, the boy is almost 11 years old and is currently undergoing a process of diagnosis concerning his motor tics, which may actually be symptoms of Tourette syndrome or PANDAS syndrome” – said our programmer.

The Foundation for Children “Help on Time” provides assistance to more than 35 thousand children, primarily young patients who suffer from cerebral palsy, heart defects, Down syndrome, autism, epilepsy, retinopathy, cancer, and muscular dystrophy. Established in 1998, the Foundation is actively working on implementing a national aid program called “Help on Time”, which was initiated by a renowned Polish heart surgeon, professor Zbigniew Religa.

WarsawJS Meetup #59 from the perspective of Sidnet

Live coding, magic tricks you can do with your IDE, a recap of clean coding practices, and clearing up the confusion between authentication and authorization. Here’s a subjective review of Wednesday’s WarsawJS Meetup.

„Intro to Authentication and Authorization with JWT and PassportJS”

Like the title suggests, this talk was a good introduction to the topic of authentication and authorization. It helped in understanding the difference between these two terms, which are often confused – especially by beginners.

Artur Klajnerok demonstrated and explained an example of “Basic Auth” in a front-end Single-Page Application, powered by a node.js backend built upon the Express framework. To authenticate users, he made use of the PassportJS library.

The talk concluded with a simple example illustrating the use of JSON Web Token (JWT). Having years of experience dealing with authorization and authentication, I wished this was the beginning of the talk rather than the end 😉

„The Importance of Clean Code”

Tetiana Platonova reminded the attendees what constitutes clean code – based on the guidelines presented in the book “Clean Code: A Handbook of Agile Software Craftsmanship”.

In the limited time of the talk, Tetiana managed to cover the following of Uncle Bob’s (Robert Martin’s) concepts:

  • Variable and method naming
    Key point: Use descriptive names with verbs for methods and nouns for classes.
  • Code structure
    Key point: Keep your structure well-organized, avoid too many (more than two) levels of indentation, Don’t Repeat Yourself by factoring out common code into separate methods.
  • Commenting
    Key point: Avoid commenting what your code is doing – it should be readable enough to communicate that on its own.

Clean code is a huge topic and it’s no surprise that, in a short time, Tetiana was only able to present the basics.

This talk could be an eye-opener for junior developers, while for more experienced programmers like myself it was a good recap of the ideas in the book. It doesn’t hurt to revisit Uncle Bob’s guidelines every now and then, either in his book or by watching the videos available online.

„Use your IDE like the pros”

One of rare examples of live coding that could not fail 😉

In addition to a number of rather well-known tricks, Wojciech Przechodzeń shared several ideas of unconventional usage of the multiple cursors feature. I was surprised to see it used to extract e-mail addresses from a large JSON file. I knew my IDE supported multiple cursors, but would not think you could do something like that.

Thanks for this demonstration, well done!


Confusing concepts of authentication and authorization, classic concepts of clean coding, and advanced usage of your IDE. This meetup had some good content for all JavaScript enthusiasts, no matter the skill level.

Latest project: refreshed online registration for the running event

For the past few years, with each edition of the Onkobieg (“Oncorun”) charity run, we updated the official website of the event. This year our challenge was to rebuild the registration process and make it more user-friendly, as well as more accessible for people with disabilities. And since the event is run by a non-profit organization, we had to accomplish this on tight budget constraints.

Now that the new registration site for the 12th edition of Oncorun is live, we are happy to share a few of the ideas that we put into action to improve usability and accessibility.

Refreshed home page of Onkobieg (“Oncorun”).

Usability enhancements:

  • Progress indicator
    In the previous version of the registration interface, there was no clear overview of the required steps displayed to the user. Including a progress tracker gives the user an idea of what to expect on the way to the starting kit.
  • More readable form hints
    Form prompts have been reworded to be more specific – for instance, “Fill in this field” has been replaced with “Enter your e-mail”. The Call To Action buttons also got new labels to better communicate their purpose – e.g., “Print your registration card” was changed to “Download your printable registration card”.
  • Form design tweaks
    Some unnecessary field decorations have been removed, and a clear indication of required and optional information has been added. Repeating the password is no longer needed.
  • Approachable terms and conditions
    Large portions of legal information have been replaced with shorter introductions, expandable with a “Read more” option. All terms can now be accepted with a single “Check all” option.
  • Suggested donation
    Registration for Oncorun is free, but participants are encouraged to make a donation. Highlighting one donation amount as the suggested one makes it easier for the user to take action.

Accessibility improvements:

  • Better readability
    Blocks of text have been made narrower, with greater spacing between lines and paragraphs. We also abandoned justified style in favor of left-aligned text.
  • High-contrast version
    We added a high-contrast view mode based on black and yellow.

“A breath of inspiration and fresh ideas. Thanks a lot for a job well done!”

Szymon Bubiłek
Member of the Board
Sarcoma Association (Stowarzyszenie Sarcoma)

Oncorun – Together for Health! (Onkobieg – Razem po zdrowie!) is the oldest oncology-themed charity running event in Poland, organized since 2008 by the Sarcoma Association (Stowarzyszenie Sarcoma). Its aim is to collect donations for persons suffering from oncological diseases and support them in their fight for recovery and a better life.

12th edition of Oncorun will take place on 8th of September 2019 in Warsaw.

Register now: https://onkobieg.pl/rejestracja-uzytkownika [in Polish]