Friday, August 20, 2021

Hello PWA!

 About 20 years after the advent of the World Wide Web Google presented a new concept of web application: the PWA. This young cousin of the classic web applications has more capabilities than an ordinary website, but its access to features originally reserved to native applications is limited by the host OS.

The "cross platform and cross browser" characterization is not realistic for any kind of software application, not even for static websites. And more power comes with more responsibility: the PWA programmer has to elaborate a cache management strategy, has to get familiar with IndexedDB or one of its wrappers, has to keep in mind that LocalStorage and SessionStorage cannot be accessed by the ServiceWorker, and implementing certain features on Apple devices is not a walk in the park, or it's not possible at all.

Developing and maintaining a PWA is more demanding than working with a web application - that's why I've avoided so far to try out this genre. Now, after learning more about the subject matter I  understand that the automated services offered for converting websites into PWAs might generate app icons, splash screens, error pages, a manifest, and some broilerplate code for the ServiceWorker - which eventually won't error out from start, but JS code development and refactoring are needed to get it right.

The evolution of browsers and operating systems is going against hybrid apps - programmers using Ionic or similar tools are pushed to diversify their knowledge bases. The general tendency of the software giants to improve support for PWAs, and the spreading of PWAs as website replacements are pushing web developers to get familiar with this technology.

PWAs have been designed to enhance the user experience, and the designer's vision has met the user's real needs.


Sunday, June 13, 2021

Installing Jupyter Notebook with PIP

After spending years with online office solutions I've felt nostalgic for some desktop number crunching, and I've managed to install Jupyter Notebook on my old desktop with 32-bit Windows 10 and Python 3.8.

It took me some rounds of Internet research to troubleshoot the issues I've gotten during the process, but  doing a couple of ML home-works does not require the latest and greatest client machine. 

For interested visitors: below are the steps.

1. Update your PIP (the package manager is updated frequently, and getting the latest version might prevent certain issues).

pip install --upgrade pip

2. Install "wheel" in order to prevent a possible failure in step (3).

pip install wheel

3. Install the Jupyter Notebook module.

pip install notebook

4. Check the installation, (if you've gotten nonfatal errors during the installation process, the software might work as expected).

jupyter --version

5. Start the notebook server - your notebooks will run in the browser, this is the server module, and its command window indicates its status (be patient until the "home page" gets displayed in a browser tab).

jupyter notebook

6.  The "home page" is a folder view of your local machine, from there you can manage your notebooks, and shut down the notebook server.

7. Adding modules (libraries) to your notebook server, for example "numpy":

A. Create a new notebook or open an existing one.

B. Add a cell, and type in the following command:

%pip install numpy

C. Execute the command (run the cell content) - be patient, the log is displayed only at the end of the installation process.

Execute step (7) whenever you need to add a module, which is not recognized by your Jupiter Notebook installation. For example:

%pip install matplotlib

%pip install pandas

%pip install seaborn

%pip install sklearn

Enjoy the journey!


Saturday, April 24, 2021

Cables Into the Cloud

 The first undersee telegraph cable was laid in 1850 between England and France, and then TAT-1, the first transatlantic telephone cable with repeaters was inaugurated in 1956. It took more than a century to develop an economically feasible technical solution for preserving the signal quality.

Nowadays 99% of the intercontinental communication traffic is carried over by submarine cable systems, including 95%-98% of the global Internet traffic. Taking into account that most datacenters are located in buildings, "the cloud" is about sets of terrestrial systems dependent on a multi-vendor undersee cable infrastructure.

Starting with 2008 portable modular datacenters have been offered by IBM, Google, and Sun (pods built into standard shipping containers), and in 2020 Microsoft announced a successful experiment with an underwater pod, but all those still depend on the undersee cables.

Google and Facebook are the biggest investors in undersee communication cables - it's estimated that they own about 29% of the intercontinental cables, followed by Amazon and Microsoft with significantly less percentages.

In 2019 AWS and IBM Cloud announced plans to deploy satellite-based connectivity, but there is a long way to go until that technology will be able to take off the pressure of the underwater network.

The quantum technology is in its early childhood, currently used in cryptography as an alternative to resolve the key exchange problem.

In an epoch dominated by economic and social challenges we can't take for granted that the underwater backbone of the high-speed Internet will stay untouched by bad guys, having alternatives is of key importance. 

Going multi-cloud looks way better from strategic point of view, and on the job market there is already an increasing demand for network infrastructure and security specialists.


Sunday, January 24, 2021

The Catch-22 of Certifications

 There are countless options for enhancing your CV, from proctored certification exams to diplomas for completing MOOCs. Some employers are considering your strengths, determination, and achievements within your economic context, others are looking only to your papers.

It's understandable that in construction, transportation, medical or other highly regulated areas maintaining the required study points is a must, but in several countries the certification mania is a cultural thing.

The globalization has increased the demand for internationally recognized skill assessments - numerous multinational companies and startups have been considering the certified task force more attractive for their staffing needs.

As always, the market demand has brought onto the scene the good, the bad and the ugly: from middle priced exams and expensive weekend trainings to a question bank selling industry flourishing in the grey area.

Developed analytic and synthetic thinking, spontaneous reasoning, experience, good time management and prioritization skills, focusing on problem solving under pressure are all needed for getting highly qualified jobs done well. A bank of multiple choice questions elaborated by seasoned practitioners  may mock more or less common situations, but  real-life experience is key for growing professionally.

Between others the Microsoft and ISTQB certification exams have only syllabuses, and the candidates are supposed to acquire significant practical experience and to do research for readings, trainings, study groups for covering the subject matters mentioned in their syllabuses. Then the intentionally tricky exam questions are trying to measure the candidate's skill level and preparedness to act in unexpected circumstances.

Their exams have been taken by millions and consequently they have been receiving a lot of criticism. For example most software developers are avoiding a closed book exam, because dealing with code written by others is essential for doing their jobs, and memorizing too much details is considered a bad thing - due to the millions of objects and features present in their tools.

While I agree with the developers, I consider that the other IT&C specialists many times need to act rapidly in unexpected situations, so memorizing intelligently a considerable amount of information is crucial for diagnosing and solving problems on time and on budget.

With regard to pricing I consider that Microsoft has a very good understanding of the globalized market. Their tiered pricing model is suitable to many countries, and their price level is rather inclusive than exclusive.

The bottom line is that answering correctly 70%, 80% or more of a set of quiz questions does not transform anybody in a skilled professional, and pushing juniors to take exams demanding diversified experience won't add value to the company.