JavaCC 21 is a continuation of work on the venerable JavaCC parser generator, originally developed at Sun Microsystems in the 1990’s and released under a liberal open source license in 2003. It is currently the most advanced version of JavaCC. It has many feature enhancements (with more to come soon) and also generates much more modern, readable Java code. Also, certain key bugs have finally been fixed. (N.B. The “21” in JavaCC 21 is not a version number. It is simply part of the project name and means that this is a JavaCC for the 21st century!)
Aspect-Oriented Programming (AOP) by source-level weaving

Aspect-oriented programming is a very appealing concept for simplifying your codebase, creating clean code, improving modularity, structure of code and minimizing copy-paste errors.
Today, in most cases, weaving aspect's advices is implemented at the bytecode level, i.e. after compilation, a certain tool «weave» an additional byte code with the support of the required logic.
Our approach (as well as the approach of some other tools) is modifying the source code to implement aspect logic. With introduction of the .NET Compiler Platform (aka Roslyn), it is quite easy to achieve this goal, and the result gives certain advantages over the modification of the byte code itself.
Flutter: The Best Cross-Platform Framework For App Development with Top Flutter Companies

The obsession of being an entrepreneur is increasing these days, and with the rapidly evolving market, it has become daunting for all-level enterprises and businesses to have both websites and mobile applications to survive in this cut-throat competitive market. The days are left far behind when the businesses with only high revenue used to have space in Google’s Playstore and Apple’s App Store.
Research shows that there are 2.8 million apps available in the Google play store, and around 2.2 million apps exist in the Apple app store. This clearly reflects that mobile app development has become an urgent need for the business of all domains either they are of large or small size.
Top 10 eCommerce Platforms to Boost Business Productivity in 2021

An eCommerce platform empowers startups, SMEs, and large enterprises to manage multiple online business processes such as website, marketing, sales, and operations.
The top eCommerce platforms handle online business tasks efficiently, and this finally helps enterprises in expanding their productivity.
Leading Full Stack Development Companies to Check Out in 2020
What is full-stack development?
Full-stack development services refer to the development of both client-side and server-side interfaces of any application. In technical terms, these are the front-end and back-end, respectively.
A client-side-only developer typically is responsible for what users see and can interact within an application or a website. They use a specific set of languages, including HTML and CSS. They also use particular frameworks and libraries that include AngularJS, Bootstrap and ReactJS. On the other hand, a back-end developer typically focuses on how the website works and is built. The primary languages are Python, JavaScript and C++ among others.
To hire a full-stack web developer is to get someone who is well-versed in both front-end and back-end development and has the skills and technological prowess to step in at any stage of a project.
What qualities does the ideal full-stack developer possess?
If you’re looking to hire a remote full-stack web developer or a full-time one, consider looking out for these qualities:
- Mastery over front-end technologies
- Knowledge of at least one server-side programming language
- Concrete understanding of DBMS technology
- UI/UX design skills
- Experience in handling servers
- Knowledge of Git and version control systems
- In-depth understanding of web services or API
- Awareness of security concerns and frameworks
- Understanding of algorithms and data structure
Why it is important to apply static analysis for open libraries that you add to your project

Modern applications are built from third-party libraries like a wall from bricks. Their usage is the only option to complete the project in a reasonable time, spending a sensible budget, so it's a usual practice. However, taking all the bricks indiscriminately may not be such a good idea. If there are several options, it is useful to take time to analyze open libraries in order to choose the best one.
Machine learning in browser: ways to cook up a model

With ML projects still on the rise we are yet to see integrated solutions in almost every device around us. The need for processing power, memory and experimentation has led to machine learning and DL frameworks targeting desktop computers first. However once trained, a model may be executed in a more constrained environment on a smartphone or on an IoT device. A particularly interesting environment to run the model on is browser. Browser-based solutions may be used on a wide range of devices, desktop and mobile, online and offline. The topic of this post is how to prepare a model for the in-browser usage.
This post presents an end-to-end implementations of a model creation in Python and Node.js. The end goal is to create a model and to use it in a browser. I'll use TensorFlow and TensorFlow.js as main frameworks. One could train a model in Python and convert it to JS. Alternative is to train a model directly in javascript, hence omitting the conversion step.
I have more experience in Python and use it in my everyday work. I occasionally use javascript, but have very little experience in the contemporary front-end development. My hope from this post that python developers with little JS experience could use it to kick start their JS usage.
Why code reviews are good, but not enough

Code reviews are definitely necessary and useful. It's a way to impart knowledge, educate, control a task, improve code quality and formatting, fix bugs. Moreover, you can notice high-level errors related to the architecture and algorithms used. So it's a must-have practice, except that people get tired quickly. Therefore, static analysis perfectly complements reviews and helps to detect a variety of inconspicuous errors and typos. Let's look at a decent example on this topic.
Crime, Race and Lethal Force in the USA — Part 3

This is the concluding part of my article devoted to a statistical analysis of police shootings and criminality among the white and the black population of the United States. In the first part, we talked about the research background, goals, assumptions, and source data; in the second part, we investigated the national use-of-force and crime data and tracked their connection with race.
InterSystems IRIS – the All-Purpose Universal Platform for Real-Time AI/ML
Challenges of real-time AI/ML computations
We will start from the examples that we faced as Data Science practice at InterSystems:
- A “high-load” customer portal is integrated with an online recommendation system. The plan is to reconfigure promo campaigns at the level of the entire retail network (we will assume that instead of a “flat” promo campaign master there will be used a “segment-tactic” matrix). What will happen to the recommender mechanisms? What will happen to data feeds and updates into the recommender mechanisms (the volume of input data having increased 25000 times)? What will happen to recommendation rule generation setup (the need to reduce 1000 times the recommendation rule filtering threshold due to a thousandfold increase of the volume and “assortment” of the rules generated)?
- An equipment health monitoring system uses “manual” data sample feeds. Now it is connected to a SCADA system that transmits thousands of process parameter readings each second. What will happen to the monitoring system (will it be able to handle equipment health monitoring on a second-by-second basis)? What will happen once the input data receives a new bloc of several hundreds of columns with data sensor readings recently implemented in the SCADA system (will it be necessary, and for how long, to shut down the monitoring system to integrate the new sensor data in the analysis)?
- A complex of AI/ML mechanisms (recommendation, monitoring, forecasting) depend on each other’s results. How many man-hours will it take every month to adapt those AI/ML mechanisms’ functioning to changes in the input data? What is the overall “delay” in supporting business decision making by the AI/ML mechanisms (the refresh frequency of supporting information against the feed frequency of new input data)?
How I’m creating a digital mini-guitar

In this article, I’ll try to describe roughly how I’m creating a device, from the idea to realization of the usable prototype.
My name is Dmitriy Dudarev. I develop electronics, and really enjoy creating different portable devices. I also enjoy music. Half a year ago, I borrowed acoustic guitar from my friend, so that I could learn to play it from lessons on Youtube and tablatures. It was a hard work. Maybe, I did something wrong, or tried not so hard, or fine motor skills prevented multiplication in my predecessors’ community. In any case, I couldn’t achieve anything but sounds of raspy strings. My resentment was strengthened by constant string detune. And others didn’t really enjoy much listening my uneven Nothing else matters for thousand times.
But, going through all these tortures, I haven’t forgotten the main rule of electronics engineer. If something exists, you can put microcontroller there. Or, at least, make a portable electronic modification.
Crime, Race and Lethal Force in the USA — Part 2

In the previous part of this article, I talked about the research background, goals, assumptions, source data, and used tools. Today, without further ado, let's say together…
Crime, Race and Lethal Force in the USA — Part 1

Do the police in the US really shoot black people more often than white people? Is use of lethal force connected with race? How is crime related to race? What are the odds of getting shot by the police if you are white and if you are black? We're taking public data and python with pandas to shed some light on these questions, propaganda and politics set far aside.
Modern Google-level STT Models Released
We are proud to announce that we have built from ground up and released our high-quality (i.e. on par with premium Google models) speech-to-text Models for the following languages:
- English;
- German;
- Spanish;
You can find all of our models in our repository together with examples, quality and performance benchmarks. Also we invested some time into making our models as accessible as possible — you can try our examples as well as PyTorch, ONNX, TensorFlow checkpoints. You can also load our model via TorchHub.
Molto-2 — a USB programmable multi-profile TOTP hardware token

About a year ago, we released Token2 Molto-1, the world's first programmable multi-profile hardware token. While Molto-1 is still the only solution of its kind currently available on the market, we will be soon releasing a new variation of a multi-profile hardware token, in a different form-factor and with a different set of features available.
While Molto-1 has its advantages, there were some shortcomings that we wanted to address, for example, it can only hold up to ten TOTP profiles, which is not enough for many users. Also, using NFC to program the device does not look very convenient for some users. There were also requests to have a backlight for the screen of the token, so it can be used in the dark. With Molto-2 we tried to address this and a few other concerns. So, we hereby present our new device model, Token2 Molto-2 with the following specifications:
TOKEN2 MOLTO-2 multi-profile programmable TOTP hardware token:
▣ RFC 6238 compliant
▣ supports up to 50 accounts/profiles
▣ USB-programmable with a Windows app
▣ RTC battery life: 8 years
▣ LCD screen battery: 3-4 months (rechargeable)
The table below shows the comparison between Molto-1 and Molto-2
How to write Palindrome Polyglot Quines

I offer a solution to one beautiful task — writing code that outputs its text is valid for interpreters and compilers of different languages and is correctly executed when reversing its sources.
Not so long ago I learned about code that can be both interpreted in PHP and compiled to Java: PhpJava.java. As it turned out, this idea is not new: code which is valid for several compilers or interpreters is called a polyglot. It is possible to write such code because of the peculiarities of processing strings and comments in different interpreters or compilers.
Transatlantic privacy is over
In July 2020, the European Court of Justice invalidated an exchange of the personal data between the European Union and the United States. The times of the Safe Harbor and the Privacy Shield are over. Now what?
The 2020 National Internet Segment Reliability Research

The National Internet Segment Reliability Research explains how the outage of a single Autonomous System might affect the connectivity of the impacted region with the rest of the world. Most of the time, the most critical AS in the region is the dominant ISP on the market, but not always.
As the number of alternate routes between AS’s increases (and do not forget that the Internet stands for “interconnected network” — and each network is an AS), so does the fault-tolerance and stability of the Internet across the globe. Although some paths are from the beginning more important than others, establishing as many alternate routes as possible is the only viable way to ensure an adequately robust network.
The global connectivity of any given AS, regardless of whether it is an international giant or regional player, depends on the quantity and quality of its path to Tier-1 ISPs.
Usually, Tier-1 implies an international company offering global IP transit service over connections with other Tier-1 providers. Nevertheless, there is no guarantee that such connectivity will be maintained all the time. For many ISPs at all “tiers”, losing connection to just one Tier-1 peer would likely render them unreachable from some parts of the world.
How Data-Driven Insights Help In Better Decision Making
Why Should You Analyze Your Competitors When Planning an SEO Campaign?

Before offering any options of cooperation to our new client, we conducted a free preliminary analysis of competitors' strategies, as well as a review of search demand. We managed to surprise the client already at this stage.