StackOverflow: Developer Survey Results 2019

This year’s results for StackOverflow Developer Survey are in. This is probably the largest survey of IT professionals, with nearly 90,000 participating this year.

As always, there are plenty of insightful findings and correlations in the results. But one that I was somewhat glad to see was the attitude towards Blockchain technology.

While the mainstream media continues to confuse Blockchain with cryptocurrencies, technical people do understand the difference. And the majority (29.2% + 26.2% = 55.4%) of the survey respondents think it is useful for a variety of things outside of the cryptocurrency.

And with all the hype around cryptocurrencies and Blockchain, the majority of the organizations are not working with the technology just yet. Furthermore, of those that do work with Blockchain, the majority is NOT using it for the cryptocurrency.

That is pretty close to my mental picture of what’s going on.

Chrome Extensions: PHP Console and JavaScript Errors Notifier

Here are a couple of handy Google Chrome extensions that I came across the other day.

PHP Console

PHP Console can display PHP errors and var dumps in the Google Chrome Developer Console and notification popups. It can also execute PHP code remotely, with the help of this server side library.

JavaScript Errors Notifier

JavaScript Errors Notifier lets you know of any JavaScript errors either with an icon highlight, or with a popup window. This makes things a lot easier to notice.

You Don’t Need jQuery

You Don’t Need jQuery is a GitHub repository with a collection of code snippets that show how to do the most common jQuery bits in native JavaScript. The collection covers a whole range of subjects, like:

  • Query selector
  • CSS and style
  • DOM manipulation
  • AJAX
  • Events
  • Promises
  • Animations
  • … and more.

All examples should work just fine in all modern browsers.

Additionally, have a look at the You Might Not Need jQuery website.

Unix History Repository

Evolution of unix-history-repo (Gource Visualization) video shows how the UNIX operating system was born and how it matured over time. The video is based on this GitHub repository, which combines the following:

The project has achieved its major goal with the establishment of a continuous timeline from 1970 until today. The repository contains:
– snapshots of PDP-7, V1, V2, V3, V4, V5, V6, and V7 Research Edition,
– Unix/32V,
– all available BSD releases,
– the CSRG SCCS history,
– two releases of 386BSD,
– the 386BSD patchkit,
– the FreeBSD 1.0 to 1.1.5 CVS history,
– an import of the FreeBSD repository starting from its initial imports that led to FreeBSD 2.0, and
– the current FreeBSD repository.
The files appear to be added in the repository in chronological order according to their modification time, and large parts of the source code have been attributed to their actual authors.

This is mind-blowing! So much work, so many people, so little recognition. The world wouldn’t be the same without all that, and yet the masses think that Steve Jobs or Bill Gates were the greatest computer geniuses in the history of mankind. Sad…

But the video is beautiful. It desperately needs some music though.

Programmer migration patterns

Programmer migration patterns” is an interesting attempt to identify where programmers start and how move from one programming language to another. This is not precise science, obviously. But I have to say that I mostly agree with the findings.

The first language that I learned (back in school) was BASIC, which then gave me some legs with Visual Basic later in college. Also in college, I’ve learned assembler, C, and Pascal, which guided me to some amateur and professional development with Delphi.

Soon after that I discovered Linux, which meant shell scripting. I played with awk, but I didn’t have to dive deep, as Perl was already available. Perl was probably my first true programming language, which I learned outside of school and college, and which I have been using for years to build all kinds of things. I still love Perl dearly, but the last few years I have been mostly using PHP, with some occasional Python.

JavaScript, however, is where I draw the line. I’ve been scarred by JavaScript back in the 90s, so I can’t force myself to go back. And then again, I don’t really have to. I’ll leave JavaScript, TypeScript, and node.js for the younger generations.

Let the source be with you!

Searching DynamoDB: An indexer sidecar for Elasticsearch

One thing that I like about the modern world is that large technology companies are a lot more open than they were in the previous century. Many of them contribute to the Open Source ecosystem and frequently share their wisdom on how to use and not to use a particular technology.

Have a look at the recent post from Bitbucket blog: Searching DynamoDB: An indexer sidecar for Elasticsearch, for example.

It’s not your usual marketing nonsense about introducing a new needless service or self-praising review of a product. It’s a rather deep dive into a technical topic that has been getting a lot of attention for the last few years – NoSQL databases. Not only the blog post itself is interesting, but it provides plenty of useful links to other resources. Like this one, which covers database partitioning in depth. Or this one, which lists some of the best practices for designing and using partition keys effectively.

I wish more companies shared their technical insights like this.

API Platform – REST and GraphQL framework to build modern API-driven projects

API Platform is a framework for building API-driven projects. I came across this via this blog post that covers the recent release of v2.4. The list of features and components is quite extensive:

  • Read and write support for MongoDB
  • Read support for Elasticsearch
  • Message queues support via a number of brokers, including Amazon SQS
  • Server Push support for HTTP/2
  • Full compatibility with OpenAPI v3 (Swagger)
  • Automated admin interface and project documentation
  • A variety of components from the Symfony framework

I’m pretty sure that I’ll be taking this for a spin in the nearest future!

Logging best practices

Logging, I think, is one of the least debated subjects in the software development. Everyone does it at least to some degree. Everyone agrees that good logs are important. But beyond that, there’s enough debate on what are the best practices, tools, and options. We need more of blog posts like this one and slides like these.

htrace.sh – HTTP/HTTPS troubleshooting and profiling tool

htrace.sh is a handy command-line tool for HTTP/HTTPS troubleshooting and profiling. It also integrates with a number of other security tools, like nmap, SSL Labs, subfinder, etc.

The JavaScript Developer’s Reading List

The JavaScript Developer’s Reading List” is yet another hand-picked collection of books and resources for web developers in general and JavaScript programmers in particular. The selection is mostly focused around React and GraphQL, but there are plenty of more generic resources about JavaScript, software development, and Computer Science.