Using jq to manipulate JSON in command line

Sometimes during the testing of REST API with curl in the command line, we need to process JSON from the response to present it in readable format or check a specific key or value. I used jq utility for that purpose and didn’t pay too much attention to how powerful it can be:

curl https://mysuperapi.com/superendpoint | jq

Recently, I found this article showed many cool examples of using jq. For example, to get a list of all sensors from this JSON:

[
    {
        "name": "Station1",
        "location": "Centerville",
        "sensors": ["temperature", "humidity"]
    },
    {
        "name": "Station5",
        "location": "Anytown",
        "sensors": ["temperature", "humidity", "rainfall", "wind_speed"]
    }
]

the following command can be used:

curl https://mysuperapi.com/superendpoint | jq -r '.[] .sensors[]'

The result will be like this:

temperature
humidity
temperature
humidity
rainfall
wind_speed

Codemotion online tech conference – October 20-22, 2020

The multitrack tech conference made by developers for developers Codemotion will take a place online October 20-22, 2020. Topics to be covered are:

  • Software architecture and security
  • Frontend and design
  • AI and machine learning
  • Effective developers and teams

They are two types of tickets – free and 90 EUR. The paid one includes workshops, QA sessions, the ability to watch a recorded stream a week after the event.

Dropbox migrated from Nginx to Envoy

Recently I came across an interesting article – “How we migrated Dropbox from Nginx to Envoy”. There are a few reasons for such complex and unobvious transformation:

Nginx served us well for almost a decade. But it didn’t adapt to our current development best-practices:
– Our internal and (private) external APIs are gradually migrating from REST to gRPC which requires all sorts of transcoding features from proxies.
– Protocol buffers became de facto standard for service definitions and configurations.
– All software, regardless of the language, is built and tested with Bazel.
– Heavy involvement of our engineers on essential infrastructure projects in the open source community.

If you want to get more details and discuss this topic with its author Oleg Guba do not miss the biggest Russian conference Highload 2020, November 9-10, 2020 in Scolkovo.

How to Build Your First SaaS

I remember the time when I was a part of the team to provide our web-based applications as service (SaaS). We had ideas, of course, based on our previous experience in the web development area. But it was really difficult to start.

This time the situation is changed. Many web apps are SaaS-based now. And you can find not just short posts about SaaS but the articles for long reading. One of these is The SaaS Handbook – How to Build Your First Software-as-a-Service Product Step-By-Step.

The article describes a tech stack (it’s JS – Node.js + Preact – an alternative version of the React), structure, design, integrations with third-party services, and deploy and gives tips and ideas to build your version of the SaaS..

Move legacy PHP project to the modern Laravel ecosystem

Legacy projects can be a pain – you have to not just support an old code but add new features. And at some point this may become a nightmare. However, there are many ways to upgrade it without full re-development at one time. One possible solution is to move such projects to the modern Laravel ecosystem as it’s described in this article.

The idea behind of it is to wrap the old code to handle it by Laravel. Once it’ll be done, the old functionality will work as expected, while all new features will be added in Laravel. Additionally the old code can be refactored and moved under Laravel without a downtime or an interruption of the project. This solution will give a smooth transition from old system to the new one.

Also do not forget about tests – unit and integration, static analyzers like PHPStand and code style control with PHPCS. This will help you to catch possible bugs even before run your app.

Built and Launched a Product in 14 Hours

Many of us have pet projects we never finish. This article shows how to complete your project in 14 hours from idea to live product! Sure, your project can be more complicated and may take more time. In any case this article will be helpful in terms of services used by author as well as inspiration to bring your idea live.