#SidnetDonations: Staszek for LibreOffice and the “Pomagam” Foundation

For Staszek, September is debut month. After all, it was in September of last year that he joined our team. And now, for the first time ever, Staszek is choosing the recipients of our monthly donations. At Sidnet, Michał Staszewski – aka “Staszek”, deals with sales. In a nutshell, he ensures that the customer understands the technical team and the technical team understand the customer.

See which open-source and charity projects will be receiving our financial support this month, as per Staszek’s request.

LibreOffice

LibreOffice is an open-source office program suite. It is used by tens of millions of people around the world, including government agencies in France, Italy and Taiwan. It is available in 110 different languages. The programme is being developed by The Document Foundation – a non-profit organisation which supports its operations thanks to volunteers. It is distributed under the Mozilla Public License.

“I started using LibreOffice at school when I needed a free alternative to Microsoft Office. Several years have passed since then and I still use it in my daily work. What is more, I also found myself in a team that deliberately gives up commercial software and aims to support open-source solutions such as LibreOffice,” Staszek explained.

So why does Staszek like LibreOffice?

  • Feature-richness. LibreOffice is the most comprehensive open-source office program suite available. It includes such tools as Writer (text editor), Calc (spreadsheet), Impress (presentation editor), Draw (graphics editor), Base (database editor) and Math (mathematical formula editor).
  • A plethora of supported formats. LibreOffice supports files with various extensions, including Microsoft Office formats (.docx, .xlsx and .pptx). In addition, LibreOffice’s native and open format, .odf (OpenDocument Format), is designed to guarantee free access to data, forever and regardless of the choices of commercial solution creators in the future.
  • Extensions. The functionality of LibreOffice can also be extended with additional functionalities, which is often an advantage of open-source software. There are a number of free plugins available on the Internet, including dictionaries, document templates and tools that improve the file export processes.

The “Pomagam” Foundation

The “Pomagam” Foundation from Łódź helps children suffering from diseases, as well as those in orphanages. Staszek knows this foundation “first-hand”.

“When I lived in Łódź, I met the president of the foundation – Ewa. Thanks to her enthusiasm, I became interested in helping others, especially ill children. I helped her in organising collections and transport,” Staszek said.

Since 2006, the “Pomagam” Foundation has donated over one million zlotys to people in need. The foundation provides financial aid to support the treatment and rehabilitation of ill children. In addition, it provides financial and educational support for children in orphanages while striving to introduce some positive experiences in their lives, for example, educational and integration trips, sports activities, workshops with psychologists and dog-assisted therapy.

“I am getting married next August. Instead of flowers, I would like the guests to bring school supplies for the foundation’s students. It will be just in time for the start of the new school year,” Staszek said, further encouraging us to help others in need.

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.