Java 8 introduced two kinds of functional expressions: lambda expressions like s -> System.out.println(s)
and method references like System.out::println
. At first, developers were more enthusiastic about method references: they are often more compact, you don't need to think up the parameter name, and, as urban legends say, method references are somewhat more optimal than lambda expressions. Over time, however, the enthusiasm waned. One of the problems with method references is the difficulty in debugging.
All streams
- New
- Top
- All
- ≥0
- ≥10
- ≥25
- ≥50
- ≥100
MyBee — FreeBSD OS and hypervisor bhyve as private cloud
![](https://webcf.waybackmachine.org/web/20210724121420im_/https://habrastorage.org/getpro/habr/upload_files/701/853/c0c/701853c0ce9ede50b5fa766391903b1f.png)
This article is aimed to describe FreeBSD OS as a platform to launch cloud guest OSes with simple API capabilities, using MyBee and DevOPS I really like!
A Beautiful Error in the Implementation of the String Concatenation Function
We, the PVS-Studio static code analyzer developers, have a peculiar view on beauty. On the beauty of bugs. We like to find grace in errors, examine them, try to guess how they appeared. Today we have an interesting case when the concepts of length and size got mixed up in the code.
Mode on: Comparing the two best colorization AI's
![](https://webcf.waybackmachine.org/web/20210724121420im_/https://habrastorage.org/webt/ze/ib/sc/zeibsc2epko12s1t_rrfscecju0.png)
This article continues a series of notes about colorization. During today's experiment, we’ll be comparing a recent neural network with the good old Deoldify to gauge the rate at which the future is approaching.
This is a practical project, so we won’t pay extra attention to the underlying philosophy of the Transformer architecture. Besides, any attempt to explain the principles of its operation to a wide public in hand waving terms would become misguiding.
A lecturer: Mr. Petrov! How does a transformer work?
Petrov with a bass voice: Hum-m-m-m.
Google Colorizing Transformer vs Deoldify
Enums in C#: Hidden Pitfalls
C# has low barriers to entry and forgives a lot. Seriously, you may not understand how things work under the hood but still write code and remain easy-going about this. Though you still have to deal with different nuances over time. Today, we'll look at one of such subtle aspects — handling enumerations.
How to create LinkedIn-like reactions with Serverless Redis
![](https://webcf.waybackmachine.org/web/20210724121420im_/https://habrastorage.org/getpro/habr/upload_files/e8c/e7e/644/e8ce7e644f8041c550d6c4050480c393.jpeg)
As a side hustle, I teach tech recruiters web and software development technologies using plain English. It helps them with understanding job specs and resumes and it makes all of us, tech people, happier.
I run a weekly newsletter and often get feedback from recruiters via email or LinkedIn DMs.
I thought that I could try to collect feedback using the “Reactions” feature just like LinkedIn or Facebook does. It’s not as informative as personalised messages but is a simple feature that may incentivize more people to provide some general feedback.
Either way, it’s worth trying and as a software developer, I can’t wait to implement it.
This tutorial is about implementing a feature that will be used in real life on my project.
Practical uses of WebRTC Canvas streaming
![](https://webcf.waybackmachine.org/web/20210724121420im_/https://habrastorage.org/getpro/habr/upload_files/bda/c2a/959/bdac2a9594f1b4a1dc3cacb5e2bc2226.jpg)
In this article we will once again return to the tired topic of webinars and webinar hosting tools. And no, we're not about to code a whole new system for webinar hosting – there are already plenty of those. Instead, we will talk about connecting drawing software to the webinar, so that you could manually draw and broadcast the process.
Speed Dating with the CodeIgniter 4 on GitHub
![](https://webcf.waybackmachine.org/web/20210724121420im_/https://habrastorage.org/getpro/habr/upload_files/e4a/5ff/dfe/e4a5ffdfeda2e6bb466f78d35ef7559d.png)
Getting acquainted with the CodeIgniter 4 PHP framework is quite simple.
Spend the evening following the instructions in the «Build Your First Application» section. Since the documentation is written in a good, technically understandable language, it is even possible to get some aesthetic pleasure in the process of familiarizing yourself with this and other sections.
The feeling of airiness and consistency of the CodeIgniter 4 project will be present with you everywhere now.
What is so attractive about CodeIgniter 4?
Sending data from Arduino Nano 33 IoT to Raspberry Pi 4 using UDP
![](https://webcf.waybackmachine.org/web/20210724121420im_/https://habrastorage.org/getpro/habr/upload_files/892/0c1/02f/8920c102fee9d3bbf7e623f176970e24.jpg)
Goal: continuously send UDP packets from an Arduino Nano 33 IoT to a Raspberry Pi 4 to understand the reliability of this solution.
Guide to naming in code
![](https://webcf.waybackmachine.org/web/20210724121420im_/https://habrastorage.org/getpro/habr/upload_files/be4/aad/5d0/be4aad5d0c8c6a5e39c9f965d773a21f.png)
We present a guide to name entities in code based on putting naming in perspectives of semantic space, design, and readability.
The main idea is that naming should not be considered as creation of tags, but as a fundamental part of design process, which implies integral and consistent vocabulary to be used. We discuss naming process and naming formalism from these perspectives and we provide guidelines for practical use.
The work is based on 15 years of experience in engineering work, coding and development management in high-tech industries.
WebRTC in Docker. Struggling for resources
![](https://webcf.waybackmachine.org/web/20210724121420im_/https://habrastorage.org/getpro/habr/upload_files/0e4/426/fb3/0e4426fb3346d67987ce9ae7f8062ed1.jpg)
A few weeks ago we wrote an article about Docker and WebRTC servers and talked about the intricacies of launching containers. Our readers (rightly) questioned whether Docker was a suitable tool for production, for the following reasons:
An Unexpected Article About Our Unicorn: Who Is the PVS-Studio Mascot?
![](https://webcf.waybackmachine.org/web/20210724121420im_/https://habrastorage.org/getpro/habr/upload_files/6a8/11a/3ef/6a811a3ef920275da982cd16ee67df7a.png)
PVS-Studio has a mascot that became inseparable from the brand - a unicorn. Lately we've been getting many questions about our magic steed: why the unicorn, why has he changed so much, does he have hooves, how come he doesn't wear pants, and how do we draw him. The answers are finally here, in this very article.
Attention: there will be a lot of pictures. And I mean A LOT.
The benefits of offering VoIP to your customers under your own brand
![](https://webcf.waybackmachine.org/web/20210724121420im_/https://habrastorage.org/getpro/habr/upload_files/af0/b0a/48b/af0b0a48bc7a91f5e9c3bb6debd67d0a.jpeg)
The potential of VoIP to your customers is simply phenomenal. Businesses are experiencing the advantages of VoIP’s cost-efficiency and reliability and now you can pass these benefits onto your own customers very easily. Cloud telecommunication is sophisticated and easily integrated. Confidence in this technology is growing fast. There has never been a better time to start talking to your customers about adopting this solution. It will deliver huge business benefits for them and has the potential to increase business income and profitability.
REST hooks for WebRTC Click to Call. Implementation experience
![](https://webcf.waybackmachine.org/web/20210724121420im_/https://habrastorage.org/getpro/habr/upload_files/5d6/2d4/13f/5d62d413f7da7a7deaf0b4f67cf019a9.jpg)
The "Click to Call" button on the website is an "innovation" that has been around for about 10 years. The technologies under the hood have changed, but the principle remains the same: someone clicks on the button on the site page, then JavaScript launches and requests access to the microphone and establishes a connection to the server — WebRTC SIP gateway. Further, the first client-server leg is a browser gateway, the second leg can be arbitrarily long and through the SIP proxy chain can eventually connect to a mobile or landline phone. Thus, the browser turns, in a sense, into a softphone and becomes a full participant in VoIP telephony.
Measuring Traffic Rate by Means of U-models
![stream rate art](https://webcf.waybackmachine.org/web/20210724121420im_/https://habrastorage.org/webt/ko/ay/op/koayopm8caby70zokumllg3xzyk.jpeg)
Measuring of stream rate in an artist's impression.
In one of our previous publications, we talked about a way to measure event stream rate using a counter based on exponential decay. It turns out that the idea of such a counter has an interesting generalization. This paper by Artem Shvorin and Dmitry Kamaldinov, Qrator Labs, reveals it.
One Day in the Life of PVS-Studio Developer, or How I Debugged Diagnostic That Surpassed Three Programmers
![](https://webcf.waybackmachine.org/web/20210724121420im_/https://habrastorage.org/getpro/habr/upload_files/d14/f7e/300/d14f7e3002639ac0fb64950f9a813624.png)
Static analyzers' primary aim is to search for errors missed by developers. Recently, the PVS-Studio team again found an interesting example proving the power of static analysis.
AngouriMath 1.3 update
![](https://webcf.waybackmachine.org/web/20210724121420im_/https://habrastorage.org/getpro/habr/upload_files/169/36b/3fc/16936b3fcab2e2c445e0aa79261c96dd.png)
Four months of awesome work together with a few new contributors finally result in a new major release, which I'm happy to announce about.
Now we get completely new matrices, improved parser, a lot of new functions, almost rewritten interactive package (for working in Jupyter) and many more.
This article about a big update in a FOSS symbolic algebra library for .NET, I hope it may be interesting for someone!
Creating a NuGet package for a library with platform-specific API
![](https://webcf.waybackmachine.org/web/20210724121420im_/https://habrastorage.org/getpro/habr/upload_files/db2/809/d66/db2809d6656b3e781ad205d35af28167.png)
When creating a .NET library with a partially platform-specific API, we should think about how to pack it into a NuGet package so that the installed library will work in various scenarios (.NET Framework, .NET Core, self-contained application and so on). Unfortunately, it is difficult to find a step-by-step instruction on the web that describes how to perform this task. This article is intended to be such an instruction.
Network Infrastructure — how is it seen by hyperscalers
![](https://webcf.waybackmachine.org/web/20210724121420im_/https://habrastorage.org/getpro/habr/upload_files/e47/b08/0e1/e47b080e13193e5c128be53c681daf6a.png)
Network architecture at hyperscalers is a subject to constant innovation and is ever evolving to meet the demand. Network operators are constantly experimenting with solutions and finding new ways to keep it reliable and cost effective. Hyperscalers are periodically publishing their findings and innovations in a variety of scientific and technical groups.
The purpose of this article is to summarize the information about how hyperscalers design and manage networks. The goal here is to help connecting the dots, dissect and digest the data from a variety of sources including my personal experience working with hyperscalers.
DISCLAIMER: All information in this article is acquired from public resources. This article contains my own opinion which might not match and does not represent the opinion of my employer.
Data Phoenix Digest — 01.07.2021
![](https://webcf.waybackmachine.org/web/20210724121420im_/https://habrastorage.org/getpro/habr/upload_files/ab6/4ae/d90/ab64aed90dc26dd8eb57004210ec87d8.png)
We at Data Science Digest have always strived to ignite the fire of knowledge in the AI community. We’re proud to have helped thousands of people to learn something new and give you the tools to push ahead. And we’ve not been standing still, either.
Please meet Data Phoenix, a Data Science Digest rebranded and risen anew from our own flame. Our mission is to help everyone interested in Data Science and AI/ML to expand the frontiers of knowledge. More news, more updates, and webinars(!) are coming. Stay tuned!
The new issue of the new Data Phoenix Digest is here! AI that helps write code, EU’s ban on biometric surveillance, genetic algorithms for NLP, multivariate probabilistic regression with NGBoosting, alias-free GAN, MLOps toys, and more…
If you’re more used to getting updates every day, subscribe to our Telegram channel or follow us on social media: Twitter, Facebook.