Pull to refresh

Development

Show first
Rating limit
Level of difficulty

Upsetting Opinions about Static Analyzers

Reading time2 min
Reach and readers1.4K
Static analysis tools have advanced far over the time they've been around. They no longer resemble the "linters" that were in active use 20 years ago. But some programmers still view them as extremely primitive tools. And that's very sad. It hurts to see the static analysis methodology in general and our PVS-Studio analyzer in particular treated that way.

Read more →

Database using ScriptableObjects with save/load system

Reading time5 min
Reach and readers13K

Introduction


Each game has data that game-designers work with. In RPG there is a database of items, in match-3 — the cost in the crystals of tools from the store, in action — hit points, for which medical kit heals.


There are many ways to store such data — someone stores it in tables, in XML or JSON files that edit with their own tools. Unity provides its own way — Scriptable Objects (SO), which I like because you don't have to write your own editor to visualize them, it's easy to make links to the game's assets and to each other, and with Addressables this data can be easily and conveniently stored off-game and updated separately.


In this article I would like to talk about my SODatabase library, with which you can conveniently create, edit and use in the game (edit and serialize) scriptable objects.

Read more →

Big Data Tools Update 11 Is Out

Reading time3 min
Reach and readers1.9K

EAP 11 of the Big Data Tools plugin for IntelliJ IDEA Ultimate, PyCharm, and DataGrip is available starting today. You can install it from the JetBrains Plugin Repository or inside your IDE.


Big Data Tools is a new JetBrains plugin that allows you to connect to Hadoop and Spark clusters and monitor nodes, applications, and jobs. It also brings support for editing and running Zeppelin notebooks inside IntelliJ IDEA and DataGrip, so you can create, edit, and run Zeppelin notebooks without ever having to leave your favorite IDE. The plugin offers smart navigation, code completion, inspections, quick-fixes, and refactoring inside notebooks.


Read more →

Agreements as Code: how to refactor IaC and save your sanity?

Reading time9 min
Reach and readers1.6K


Before we start, I'd like to get on the same page with you. So, could you please answer? How much time will it take to:


  • Create a new environment for testing?
  • Update java & OS in the docker image?
  • Grant access to servers?

There is the spoiler from the TechLeadConf. Unfortunately, it's in Russian


It will take longer than you expect. I will explain why.

Read more →

Compensation for Error Caused by Limited Gain-Bandwidth of Operational Amplifiers in Low-pass Filters

Reading time6 min
Reach and readers5.5K
Amateur vs Pro

An operational amplifier has the internal compensation circuit for stability which limits its working bandwidth. Frequency response of the compensated Op Amp has slope of −6 dB/octave or −20 dB/decade. Unity gain frequency defines the bandwidth where the Op Amp is able to amplify a signal. If we multiply the gain and frequency at any point, the result is the same, allowing us to use this parameter to select the appropriate Op Amp. It is called Gain-Bandwidth Product, GBW or GBP. The limited open-loop gain introduces a closed-loop gain and phase error.

But we want to optimize our circuits, right?
Read more →

How Is Flutter Helping Businesses In Getting Feature-Packed App At Affordable Prices

Reading time5 min
Reach and readers1.5K
image

With 2.7 million apps available in Google Play Store and 1.84 Million apps in Apple’s app store, it is clear that mobile app development has become an urgent need of the hour for businesses of all domains.

Did you know!



According to developer stats, it is predicted that there will be 7 billion million users by 2021 all across the globe.

image

Read more →

ZTools for Apache Zeppelin

Reading time8 min
Reach and readers1.5K



Zeppelin is a web-based notebook for data engineers that enables data-driven, interactive data analytics with Spark, Scala, and more.


The project recently reached version 0.9.0-preview2 and is being actively developed, but there are still many things to be implemented.


One such thing is an API for getting comprehensive information about what's going on inside the notebook. There is already an API that completely solves the problems of high-level notebook management, but it doesn’t help if you want to do anything more complex.

Read more →

Mysql 8.x Group Replication (Master-Slave) with Docker Compose

Reading time5 min
Reach and readers6.7K

This post is handling the following situation - how to setup up simple Mysql services with group replication being dockerized. In our case, we’ll take the latest Mysql (version 8.x.x)

FYI: all mentioned code (worked and tested manually) located here.

I will skip not interested steps like ‘what is Mysql, Docker and why we choose them, etc’. We want to set up possibly trouble proof DB. That’s our plan.

Read more →

Using Flex (Fast Lexical Analyzer Generator)

Reading time5 min
Reach and readers10K
Lexical analysis is the first stage of a compilation process. It's used for getting a token sequence from source code. It gets an input character sequence and finds out what the token is in the start position, whether it's a language keyword, an identifier, a constant (also called a literal), or, maybe, some error. A lexical analyzer (also known as tokenizer) sends a stream of tokens further, into a parser, which builds an AST (abstract syntax tree).

It's possible to write a lexer from scratch, but much more convenient to use any lexer generator. If we define some parsing rules, corresponding to an input language syntax, we get a complete lexical analyzer (tokenizer), which can extract tokens from an input program text and pass them to a parser.

One of such generators is Flex. In this article, we'll examine how it works in general, and observe some nontrivial nuances of developing a lexer with Flex.
Read more →

Checking WildFly, a JavaEE Application Server

Reading time9 min
Reach and readers750
image1.png

WildFly (formerly known as JBoss Application Server) is an open-source JavaEE application server developed and first released by JBoss in February, 2008. The primary goal of the project is to provide a set of tools usually required for enterprise Java applications. And since the server is used for developing enterprise applications, it is especially important to minimize the number of bugs and potential vulnerabilities in its code. Today, WildFly is being developed by the large company Red Hat, and they keep the code quality at a pretty high level. That said, our analyzer was still able to find a number of programming mistakes in the project.
Read more →

JavaCC 21 Parser Generator

Reading time4 min
Reach and readers2.9K

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!)

Read more →

Aspect-Oriented Programming (AOP) by source-level weaving

Reading time39 min
Reach and readers2.1K
image

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.
Read more →

Flutter: The Best Cross-Platform Framework For App Development with Top Flutter Companies

Reading time6 min
Reach and readers3.2K
image

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.
Read more →

Top 10 eCommerce Platforms to Boost Business Productivity in 2021

Reading time7 min
Reach and readers3.8K

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.

Read more

Leading Full Stack Development Companies to Check Out in 2020

Reading time4 min
Reach and readers2.6K
Given the diverse range of responsibilities and technologies out there today, it is no wonder companies choose to employ full stack development services to achieve end goals without hiring multiple people and struggling to attain streamlined workflows.

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
Read more →

Why it is important to apply static analysis for open libraries that you add to your project

Reading time7 min
Reach and readers932
PVS-Studio and Awesome header-only C++ libraries

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.
Read more →

Machine learning in browser: ways to cook up a model

Reading time12 min
Reach and readers2.5K

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.

Read more

Why code reviews are good, but not enough

Reading time3 min
Reach and readers990
image1.png

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.
Read more →