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]

From: Sebastian, Sidnet | To: Redmine + Korabiewice Animal Shelter

As part of dog-assisted therapy day in Poland, we wish to repay our four-legged friends for their beneficial impact on our lives. As with every other month, we also show our support for an open source project chosen by our staff. This time around the project was selected by our colleague – Sebastian Stasiak. Sebastian works at our office in Rawa Mazowiecka, and we jokingly refer to him as our “memeager” due to his undying love for memes.

Redmine

Redmine is a flexible, open source project management system. Its list of users includes US and Japanese government agencies, as well as the developers of the Ruby programming language (which actually is the language used to write the Redmine application in the first place). We have been using Redmine for internal and customer projects for 9 years.

Some of Redmine’s notable features include:

  • creating a hierarchy of projects and tasks,
  • assigning roles and privileges in a flexible manner,
  • integration with source code repositories,
  • monitoring of working time,
  • ability to add new, specific functions.

“Redmine itself already has an impressive array of functions. However, its greatest asset is undoubtedly the possibility of further expansion. At Sidnet, our team uses features like additional plugins that allow us to run projects in accordance with the Agile philosophy. We have built some of these extensions by ourselves from scratch”, said Sebastian.

Korabiewice Animal Shelter

This is a shelter for animals of all species, and has been operating as part of the Viva! Foundation since 2012. Currently, the shelter is home to several hundred different animals – not only dogs and cats but also cows, goats and even foxes. Apart from donations, the shelter is financed solely by the Foundation. Volunteers working at the shelter help in feeding and healing the animals. They also build safe and comfortable boxes, houses, kennels and paddocks for them. In addition, the volunteers also assist in physical and virtual adoptions.

“I am well-acquainted with this shelter and I know that they require constant support. I used to work there as a volunteer and walk the dogs. One of them was particularly memorable. He weighed around 40 kilograms and would always act up on the way from his enclosure to the paddock, but immediately turned into a mild and playful puppy the moment he passed through the shelter’s gate. Later on, he found a new home at the seaside”, Sebastian recalled.

WarsawJS Meetup #58 from the perspective of Sidnet

In the last few months, I have been regularly attending the WarsawJS meetups for professionals and enthusiasts of JavaScript. Today I’d like to share my brief (personal and subjective) review of yesterday’s talks.

“Bootcamps from the perspective of a trainer and a developer”

Michał Michalczuk took on the topic of bootcamps and their effectiveness based on statistics. I appreciated that he had a critical view on the whole idea, even though he himself is a bootcamp organizer.

Michał raised a few valid points: that not everyone is good material to become a programmer, that not all bootcamps in Poland are created equal, and that bootcamps should not be seen as a substitute for a degree in computer science. His opinion was that bootcamps are valuable as means of quick introduction to the field and just the first step of many to follow. I am in complete agreement.

„Building high performance apps with Titanium”

Rene Pot is a representative of Appcelerator, a company based in the US, who for the past decade have been developing the Titanium app framework. He named several advantages of the framework, comparing it with more popular solutions with a similar purpose, like React Native and Flutter. There was a live coding demo, showcasing how easy it is to build mobile apps on Titanium.

What piqued my curiosity was what business model allowed the company to make a profit on a fully open-sourced product. It turned out what helps them keep their lights on are enterprise clients. Still, the company remains committed to the spirit of open source and makes all solutions available to the general public on GitHub.

I found this presentation a bit exotic, because I don’t know of any applications (whether big or small) built with this framework. Rene himself admitted that he hasn’t found any Titanium-based applications on the Polish market.

„Call me irresponsible if I ever crash on null or undefined in JavaScript or TypeScript”

A short but packed talk from Rafał Pocztarski on the subject of good coding practices to avoid common pitfalls — application errors and crashes.

What every JavaScript developer should keep in mind:

  • Validate API responses. If we blindly assume the API would always return data in the proper format, we are taking a risk. Developers should always check and validate the data.
  • Expect the unexpected. Always consider the edge cases.
  • Eliminate bugs as early as possible. Common errors such as type error or null pointer exception can be avoided with the help of solutions like TypeScript, TSLint, Flow, or TravisCI.

From: Wojtek, Sidnet | To: Gentoo Linux + Marcin Sztrubel (Avalon Foundation beneficiary)

Is “geek” the first thing on your mind after hearing the word “programmer”? Well… in many cases, you probably would not be wrong to think that way. It would appear that in our team, the role of the most highly devoted technological zealot is played by Wojtek Siewierski, also known as Vifon. It is solely because of him that our company project management system, Redmine, is now known as Nerdmine. Thanks to his special toolbox, Vifon is always prepared to handle any and all technological emergencies and his PC with heavily customised settings would most likely prove practically unusable to anyone besides him, and him alone.

Which open source and non-profit projects will we support in May thanks to Wojtek’s choices?

Gentoo Linux

Gentoo is one of the most flexible Linux distributions. It is a blast for experienced and demanding users who like to constantly tinker with their operating systems and adjust every single detail to their personal preferences. Thanks to the specific nature of Gentoo (which is based on source code instead of binary packages), many functions can be automated. As such, Wojtek does not have to manually patch and modify the software provided to him by the system. This tedious and time-consuming process is now a thing of the past.

The core element of Gentoo is its package manager called Portage. It allows the user to customise practically any aspect of the programs and libraries that they wish to build, in a controlled and efficient manner. For example:
“In the case of some programs, it is impossible for the user to modify certain functions, e.g. shortcut keys. But with Gentoo, I build the source code on my own computer. As such, all it takes is for me to introduce a simple change in the code in order to be able to modify the shortcut keys even before installing the program itself”, said our programmer.

Marcin Sztrubel

Marcin is a beneficiary of the Avalon Foundation, which helps him collect funds to fight his progressing muscle atrophy. Without access to special rehabilitation therapy and expensive orthopaedic equipment, Marcin would never be able to enjoy life on his own. This is the second time that Vifon has asked us to donate money to Marcin.

“Marcin is a friend of my mother. He requires regular and costly rehabilitation. He has been using a wheelchair for quite a long time now, but he never gives up and is still valiantly fighting against his disease”, Wojtek said.

The Avalon Foundation is run by a disabled person and its goal is to help other disabled and chronically ill people in need. Since 2006, the Foundation has been supporting such persons by providing them with rehabilitation services and enabling them to be more independent, as well as removing barriers between them and the rest of society.

From: Leszek, Sidnet | To: Mozilla + A Piece of Heaven Foundation

In the Sidnet team, several key factions exist: macOS supporters, Linux lovers and Windows fans – and all of them are equally ready to fight for the honour of their beloved operating system. One of the representatives of the latter camp is Leszek Kalota, who chose projects to support this month. Even the biggest advocate of Windows, used to working with proprietary applications, still appreciates the value of open source software. Check who will receive our financial support in April thanks to Leszek.

Mozilla

The creator of the web browser, Firefox, which Leszek uses in his everyday work. Mozilla puts a lot of emphasis on the fight against rampant disinformation plaguing the Internet. In addition, it promotes digital skills and strives to maintain a high level of online discussions.Currently, Mozilla is developing the first browser specifically designed for software developers. Firefox Developer Edition is currently in the testing phase and it includes functions like:

  • a CSS Grid, which allows the user to visualize the grid, display associated area names or preview transformations,
  • a graphics editor, thanks to which the user is able to fine-tune animations, alignment and padding,
  • a Web Audio editor, which allows the user to work with the Web Audio API.

“The
tools created by Mozilla are designed for the benefit of Internet
users, not to make a profit. This is why they have my respect and why
I have been using their products, that is, the Firefox browser and
the Thunderbird e-mail program, for over 10 years”
– said our
programmer.

A Piece of Heaven (Kawałek nieba)

The Children and Ill People Help Foundation “A Piece of Heaven” assists in the treatment of malnourished, poor and traumatised children and provides them with the necessary support. When the patients are unable to find appropriate treatment options within Poland, the volunteers of the Foundation try to find clinics abroad that may be able to help. So far, the Foundation has changed the lives of thousands of people, including children with brain tumours, retinoblastoma, neuroblastoma or heart defects.

“Due to the chaos of everyday affairs, it is often quite easy to forget that for people who are seriously ill, things like medicine, surgery, rehabilitation or medical equipment may, in fact, be a metaphorical piece of heaven. I sincerely hope that thanks to our support, the sky will be crystal clear for someone, if only for a single day” – said Leszek.