Skip to main content


Showing posts from 2022

Natural Language Processing Demystified the title of a free, self-paced and comprehensive course that will  take you from beginner to expert in this topic. With 15 modules, it provides a solid grounding in NLP covering everything from the very basics to today's advanced models and techniques. Natural Language Processing or NLP is a subfield of Artificial Intelligence that makes computers understand natural languages like English. So what? why invest into learning NLP in the first place? full article on i-programmer:

An Easy Introduction To Generative Adversarial Networks

  We frequently report on breakthroughs in AI achieved by GANs - but exactly what is a GAN? Let Google provide the answer with this guide to GANs for beginners which comes  with great illustrations, step-by-step guidance and down-to-earth language. With an unimaginative title, plainly called  Generative Adversarial Networks , this course is part of a wider collection of advanced courses on machine learning by Google. The rest are: full article on i-programmer:

A New Era For Spring

 The new versions of both Spring Framework and Spring Boot come with new baseline requirements. They also have great new features. Let's look into them. First of all, what are these new baseline requirements? A jump to Java version 17 breaks all ties with the past. This means that since the majority of legacy Java apps are mostly in Java 8 and the newer ones being written at minimum in version 11+, there's going to be some migration pain if you want to consume all the new bells and whistles. While upgrading a Java 8 app to take advantage of the new Spring version might not be realistic, rewriting it or starting a new project from scratch by adopting the new framework is a sensible proposition.

WebFX - Java To JavaScript

 WebFX offers a new way to develop modern web-based Java applications with rich desktop-like GUIs. How is that possible? It is possible due to WebFX being a JavaFX application transpiler powered by GWT which can transpile a JavaFX application into a traditional self-contained pure JavaScript web app with no plugin or server required for its execution in the browser. That means that if you are responsible for a legacy JavaFX application or are developing under the revamped JavaFX as Openjfx you can now port your application to the web without having to rewrite it.

Take the Azure Cosmos DB Cloud Skills Challenge

  A free, self-paced course by Microsoft gives you the chance to  expand your knowledge of Azure Cosmos DB as well as earning a certification. Azure CosmosDB is Microsoft's mutli-model distributed database for supporting workloads at scale. As we examined in " Azure CosmosDB for PostgreSQL Reaches General Availability" , by adding support for PostgreSQL CosmosDB has broken free of the NoSQl model and spanned over to the Relational. This move has rendered Azure the first cloud provider to offer its own single database service that supports both relational and NoSQL workloads from PostgreSQL, MongoDB, and Apache Cassandra.

JetBrains Qodana Moves To The Cloud

  JetBrains' integrated code quality platform moves from locally hosted development environments to the cloud. Why is that great? Back in October 2021 when Qodana went public,  we reported  that the tool was not just a mere linter: While Qodana's job is to identify and suggests fixes for bugs, security vulnerabilities, duplications, imperfections, anomalous code, probable bugs, dead code, etc, it is also a complete Code Quality Platform with the aim of improving the overall code structure of a project by applying the best coding practices as well as providing integrations and visualizations of inspections and errors right in your favorite JetBrains IDE.

TLDR Explains Code Like I Am Five

  TLDR is a plugin for the popular Jetbrains IDEs that explains what a piece of code does in natural English. It's a big productivity boon for developers. TLDR, although based on OpenAI's Codex, the model that's also powering GitHub copilot, does not intend to help you write code or automate anything. Instead it attempts to decipher what a piece of code does by producing a narrative in natural English, saving hours when trying to read and comprehend it. As programmers, one skill that must be mastered is reading code. This is manifested in a variety of ways: A student trying to understand an assignment A beginner or senior trying to learn a new language Understanding code to refactor it Understanding code to use it for your own As part of a Code review or QA When inheriting an unknown or legacy codebase When the software house is handed in a code base which is the product of the outsourcing to a third party full article on i-programmer:

SadServers - A Playground for SREs, Admins And Devops Engineers

  SadServers is a playground where users can test their Linux troubleshooting skills on real Linux servers. Besides sharpening your troubleshooting skills, it is also suitable for practicing for SRE/DevOps interviews. Others call it the "LeetCode for Linux". As LeetCode, there's challenges classified under difficulty level, a collection of scenarios, a description of what’s wrong and a test to check if the issue has been solved, within an allocated time length. After that time the VM is terminated.

Google Partners Adoptium - What's The Deal?

  Another giant shows its support towards Java. The news is that Google has joined the Adoptium Working Group and is making Temurin available across Google Cloud Platform (GCP) products and services. So what's the deal?

A Compiler Writing Playground

  "Create Your Own Compiler" is an interactive tutorial that step by step shows how to write your own simple compiler that transforms JavaScript into Lisp. Along with it, we take a look at what a compiler actually is and the state of the art that is Roslyn. Compilers are important, but most people go day by day using their favorite programming language and tools without thinking too much about them, ignoring what happens under the covers.

Visual Studio Code Now Supports Virtual Threads

  The recently released Java 19 comes with the JEP 425 preview of Virtual Threads as part of Project Loom. VSCode was quick to adapt it. Virtual threads are heralded as the big game changer for Java - even as a replacement for Reactive programming. You get all the goods but not the complexity, with little change to the current API. In September's VSCode release, initial support for virtual threads in the Java debugger was enabled, while in October's edition that support has been improved. Note that you will need to install JDK 19 to use this feature.

CSharpRepl Brings REPL Superpowers To C#

  REPL, once an inherent property of the interpreted languages, has now found its way into compiled languages too. Tools like CSharpRepl for C# and Jshell for Java make it happen. A REPL is an interactive programming environment that takes single user inputs, executes them, and returns the result to the user; input (Read), execute the input (Evaluate), return the result to the user (Print), wait for the next input (Loop). So what's the deal with REPL? It's all about the immediate feedback loop you get; you can enter program elements one at a time, immediately see the result, and make adjustments as needed. You can evaluate anything;variables, code blocks, functions, even define full-fledged classes and use them in the REPL console, always getting instant feedback, or even use C#/Java as a scripting language for testing purposes and running short lived utility scripts.

It Was About Time To Find A Shared Vision Of The Perl Foundation

  The news is that "Yet Another Society" (aka YAS) of which The Perl Foundation is a registered "doing-business-as" is registering a new "doing-business-as" called "The Perl and Raku Foundation" (aka TPRF). This has caused some confusion. But what's the deal behind it? The initial and official post had been written as  "The Perl Foundation has been renamed to The Perl and Raku Foundation" . Fortunately, Elizabeth Mattijsen, a long standing and recognized member of both the Perl and Raku communities, has made it  clear  that the it is the YAS registered brand that has had the name change. As she states :

Python and .NET-An Ongoing Saga

  Microsoft's .NET Framework arrived with two languages, C# and Visual Basic. Then came the Iron Languages, .NET compatible implementations of Ruby and Python which Microsoft "let go of" in 2010. Nowadays Microsoft is again embracing Python. Here's an account of Python's still evolving relationship with .NET  This trip down memory lane was triggered by the  recent news  of the release of a new version of Python.NET which begged the question of what had become of Iron Python, one of Microsoft's dynamic Iron-languages on the .NET platform. First of all let's clear up the confusion arising out of having two versions of Python for .NET:  Python.NET  and  IronPython . While not as well known as IronPython, Python.NET predates it but had seen no updates in recent years and was still on the Python 2.x branch. Recently it emerged from apparent hibernation with the release of Python.NET 3.0.0, revitalizing what many assumed to be a dead project. https://www.i-progr

GraalVM's alignment With OpenJDK Signifies A New Era For Java-"in the battle for the Cloud"

 Oracle will be contributing GraalVM Community Edition Java Code to OpenJDK. There's a lot behind this simple statement. But before that, let's first look at what GraalVM actually does. The recent flurry of interest in GraalVM started with a tweet that sparked excitement inside the Java community. Oracle is contributing GraalVM Community Edition Java code to OpenJDK to more closely align the development of the GraalVM technologies with that of Java Two technologies at play here; the well established OpenJDK and the newcomer, GraalVM. At a very high level, GraalVM is a runtime split into two aspects; compile bytecode into native self-contained executables aka native images and run programs on the JVM in languages other than Java. Per the first aspect, Native image full article on i-programmer:

Azure CosmosDB for PostgreSQL Reaches General Availability

Microsoft's mutli-model distributed database for supporting workloads at scale. Now it has extended beyond NoSQL by adding support for PostgreSQL.  Azure thus becomes the first cloud provider to offer its own single database service that supports both relational and NoSQL workloads. So how do you use it with Postgres? full article on i-programmer:

Learn Machine Learning Algorithms From Scratch With Python

 Learn to implement 10 Machine Learning algorithms from scratch with just Python and NumPy. A library hides the implementation details and if you're really looking to understand what goes behind the covers and understand how things work, this course has you covered. This is a course by AssemblyAI where you don't rely on libraries like Pytorch or Tensorflow to implement the Machine learning algorithms but you implement them yourself from scratch with nothing but Python and NumPy. full article on i-programmer:

Take The ETH Zürich Big Data Course For Free

A great course on everything Big Data taught at ETH Zürich University by Professor Ghislain Fourny. The recorded lectures of fall 2021 are up on Youtube for everyone to enjoy. The notion behind Big Data that this course adopts is that : Information society has to turn data into information, information into knowledge, knowledge into value. This has become increasingly complex. Data comes in larger volumes, diverse shapes, from different sources. Data is more heterogeneous and less structured than forty years ago. Nevertheless, it still needs to be processed fast, with support for complex operations. The course revolves around the database technologies and the most important database design principles that lay the foundations of the Big Data universe. These are distributed storage, the syntax, models, validation, processing, indexing, and querying, all fitted to the Big Data model. Looking more into them we find that they are expanded into : full article on i-programmer: https://www.i-p

PostgreSQL 15 Released - What's New

 The long awaited release of the most popular advanced open source database is finally here carrying many bells and whistles. It includes performance improvements on managing workloads in both local and distributed deployments and enchantments that will also make the developers out there happy. Let's start with the highlight of the release, which arrived on October 13, the introduction of the MERGE statement. It's not just a more convenient way of doing SELECT followed by UPDATE/INSERT, an operation that would be transmitting the selected rows over the network and keeping the rows in-memory on the client side. With MERGE, you now keep the rows in-memory on the server without incurring the network penalty. full article on i-programmer:

Check your Java with Error Prone

 Error Prone is a new Java compiler plugin created by Google which checks your code for common errors at compile-time. Not does only Error Prone identify issues but suggests their fixes too by analyzing the code’s abstract syntax tree (AST). An example from the official documentation will make its use clear : full article on i-programmer:

Memorial University's Intro to Game Programming

 Sub-titled, "Make your own 2D game engine using C++ and ECS". This is a course for students interested in learning the fundamentals of game programming and game engine architecture. The full course taught by Professor David Churchill is being made available for free on YouTube. I say 'is being' and not 'has been' because it is ongoing with two lectures per week being recorded and posted online. As of writing this piece, the first 10 are available, of a total of 23. In it you learn game programming and more specifically how to make your own 2D game engine using C++ and ECS. But first of all what is ECS? ECS is an architecture for making Games and stands for Entity Component System: full article on i-programmer:

Scrape The Web With Crawlee

 Crawlee is an open source web scraping and browser automation library for Node.js designed for productivity. Made by Apify, the popular web scraping and automation platform. Crawlee is the successor to Apify SDK and escaped Apify's labs after 4 years in development. While the Apify SDK was always open source, the library's name caused users to think its features were restricted to the Apify platform, which was not true. For that reason, the Apify SDK was split into two libraries, Crawlee and Apify SDK. full article on i-programmer:

pgsqlite - Load SQLite databases into PostgresSQL

  pgsqlite is a pure python module and command line tool that makes it simple to import a SQLite database into Postgres, saving a ton of time and hassle in the process. SQLite is amazing. In "In Praise Of SQLite" I describe why that is so. One of those reasons was extensibility: in a sense extensibility is SQLite's biggest power; it adds unforeseen utility and value for its users, and we can witness many imaginative uses for it, provided by the community. I then gave a list of such extensions. But there's the other way too; not extending SQLite itself but extending third party products by means of SQLite. One such plugin is pgsqlite by Adam Fletcher of which allows for importing SQLite databases into Postgres seamlessly. full article on i-programmer: #python #community #database #sqlite #postgresql #postgres

The Java Logging Battleground Gets Two New Updates

 New releases of two popular APIs update Java's logging battleground. Battleground because there are two front runners. The two APIs in question are SLF4J 2.0.0 and Log4j 2.19.0. First of all, let's meet them both. SLF4J stands for Simple Logging Facade for Java and is an interface for various logging backend frameworks like java.util.logging, logback, log4j and log4j2 so that applications can use any of them interchangeably without changing code. However, despite SLF4J's portability and in order to work with it, each backend framework requires a specific config file, something that has raised question of whether SLF4J is actually that useful; if that is the case why not just go straight for an implementation like log4j directly, forgoing SLF4J completely? It's a valid argument, but the real value of SLF4J is for people producing libraries and you don't want to force a specific logging framework onto your clients. The SLF4J abstraction allows the consumer to choose

Tackle CMU's Intro To Database Systems For Free

 Carnegie Mellon is one of the top universities for computer science and offers a wide selection of database courses. Its 15-445/645 Intro To Database Systems is a project-oriented course that provides an introduction to the internal architecture of database systems.  Here's the opportunity to watch its recorded lectures of fall 2021 complete with homework and accompanying material. All available for free. full article on i-programmer:

Helidon For Microservices Flies High

 Helidon, the open source microservices framework by Oracle, has been updated to version 3. At the same time a new side project, Helidon Nima, introduces virtual thread support. Helidon sprang up back in 2018 from the lack of agility of Java/Jakarta EE in building microservices. Sure you could do that, but not in the most efficient way. Thus at Oracle they thought of a framework designed from the ground up for building microservices would be more efficient. In order to stay close to the Java EE spirit, Helidon was made to implement the Microprofile standard, widely used in Java EE environments. full article on i-programmer:

Eclipse Temurin OpenJDK Now Supported By Red Hat

 There's now yet another reason to opt for Eclipse's Temurin version of OpenJDK among the rest of the builds - LTS support provided by Red Hat. There are so many builds of OpenJDK from a variety of vendors that it is difficult to tell them apart and to choose which to go for: OpenJDK builds by Oracle Adoptium Eclipse Temurin AdoptOpenJDK Azul BellSoft Liberica JDK IBM Semeru Runtime Amazon Corretto Microsoft Build of OpenJDK Alibaba Dragonwell SapMachine Red Hat OpenJDK GraalVM To that end, the Eclipse Foundation has launched the Adoptium Marketplace to provide a vendor-neutral home for the Java ecosystem that gives developers access to standard Java binaries from multiple sources, to make life just a little bit easier. As noted in "Eclipse Launches Java Binaries Marketplace", Mike Milinkovich, executive director of the Eclipse Foundation, said that the move was necessary in order to establish quality across OpenJDK: full article on i-programmer: https://www.i-program

Jakarta EE 10 - A New Era For Java On The Cloud

 After a lot of iterations and false starts in terms of dates, Jakarta EE 10 is finally here and primarily focused on the Cloud and microservices. Jakarta EE finds itself mostly used in an Enterprise setting. That property is embodied in its name after all - EE for Enterprise Edition. Born in 2017 out of Java EE when Oracle contributed it to the Eclipse Foundation, it was subsequently relaunched as Jakarta EE as well as open-sourced. What it essentially represents, is Java's ability of modernizing, but at the same time keeping ties with the past - a quality highly sought after by those enterprise environments. At its core Jakarta EE is a both a framework and a collection of APIs mainly for developing Web services as well as enabling interoperability between distributed systems. Its versatility lies in that, while you can use it in building microservices, you can also use it in developing monoliths. In fact, Jakarta EE underpins many such infrastructure technologies: full article on

Wolfi Linux (Un)Distribution Secures The Software Supply Chain

 Chainguard, the co-creator of Sigstore, has just launched Wolfi, a community Linux (un)distribution that is built with the default security measures necessary for securing the software supply chain. wolfi1 The push for software supply chain integrity and transparency has left organizations struggling to build in software security measures like signatures, provenance, and SBOMs to legacy systems and existing Linux distributions. To that end, Sigstore is good but requires manual labor. There must be a better way of utilizing its facilities. And what better than package all the work in an immutable container? Chainguard’s new Linux (un)distribution and build toolchain, Wolfi, is doing exactly that. It produces container images that meet the requirements of the secure software supply chain; that is images already provided with signing and sensible defaults. Sensible defaults is certainly an answer to writing secure code. I discussed this notion when covering Semgrep, a tool that searches

Fundamental Cryptography in Theory and Python

 Learn to do Cryptography with Python and for free too. A course by computer scientist of ETH Zürich and cybersec expert Cyrill Gössi. He teaches the concepts of Cryptography with a practical approach. And what better way of exploring the four classic concepts of Cryptography, that is confidentiality, integrity, authenticity and non-repudiation, than with Python. Gössi developed this course with a few goals in mind. The first that by completing the course you would have gained a good understanding of cryptography as a tool to realize the aims of information security. The second would be to furnish good knowledge about the existing fundamental cryptographic primitives and an understanding of the security concerns associated with each of them. And, finally, the third goal would be to become able to apply that theoretical understanding of fundamental cryptography by using the various cryptographic primitives in Python full article on i-programmer:

Constellation - The First Confidential Kubernetes

 Edgeless Systems secure the cloud's workloads by releasing the first runtime encrypted Kubernetes, able to run on a multitude of cloud providers. Edgeless Systems is a pioneer in the world of Confidential Computing. Last year in "EdgelessDB - Taking Database Security To The Next Level", I covered its security-oriented database which is 100% compatible with MySQL and enhanced with confidential computing capabilities based on secure enclaves on Intel SGX chips. There was a lot of terminology to assimilate in that article and as a refresher:  An enclave in simple terms, is a hardware sandbox that provides runtime protection of the data it encloses. EdgelessDB uses it in order to execute trusted and secure code on untrusted environments such as cloud platforms and already there's an integration of EdgelessDB on the Azure platform. An enclave itself is, in fact, just an instruction in the CPU architecture provided by modern CPUs. Confidential computing is a concept that t

Use Rust To Reduce The Size Of Your SQLite Database

 Meet sqlite-zstd, a Rust library that compresses your database many fold, leading to great savings in size while conserving its search capabilities intact. As pointed out in "In Praise Of SQLite", SQLite is not a toy database: Despite its compact size and absence of the client server model, SQLite is a RDBMS with all the features that make something relational - that is tables, indexes, constraints, triggers, transactions and the like. However, there are few built-in functions compared to PostgreSQL or Oracle.  SQLite doesn’t have any compression features. This has changed with the Rust-based library, sqlite-zstd which promises to: provide transparent dictionary-based row-level compression that allows compressing a sqlite database's entries almost as well as if you were compressing the whole DB file, while at the same time retaining random access. Suffice it to say that we are all aware of the benefits of compressing data, be it that of a PDF document, a humble ZIP file

Java Or Python For Android - Why Not Both!

 Should You Choose Java or Python for Your Next Android Project? You don't have to with Chaquopy, the Python SDK that lets you write Android applications in Python which, thanks to support from Anaconda, has now become both free and open-source. Chaquopy is versatile. It allows you to write Android applications in full in Python or partially, together with Java. You can pick the most suitable tool for the part of the application at hand. Each approach has its own distinct advantages. If you have server backend that is written in Python you can now use Python for the front end as well without paying the penalty of context switching to another tool or language, or in lacking expertise in another stack. The extra boon is that you can use your favorite Machine Learning Python libraries like SciPy, OpenCV or TensorFlow solely on your client/mobile phone without connecting to the cloud. full article on IProgrammer:

Running PostgreSQL Inside Your Browser

 Yes it is possible thanks to, what else, WebAssembly.  And with it, the emergence of the Postgres playground, brought to us by Crunchy Data, with live-guided SQL exercises for any level. One of PostgreSQL's engineers had a crazy idea which he has now managed to realize.The idea came from the fact that it was possible to run SQLite inside your browser, so the reasoning was could the same happen for Postgres too? But compiling an embedded and small in size and scale DBMS to Webassembly (as sql.js does for instance) is one thing; compiling a full scale client-server one is another. Proof of that is, as the folks at Cruncy Data found out that the web browser simply did not offer the networking features that Postgres needed which was deemed a pretty big obstacle.Or was it ? full article on i-programmer :

Learn To Protect Your APIs By Hacking Them

 A free course from security expert Corey Ball will teach you all the techniques necessary to hack your APIs.The ultimate goal is to learn how to protect them by first identifying any undiscovered vulnerabilities. Alongside the motto "Software is eating the world", I would add "APIs are eating the Internet". It is estimated that 83% of internet traffic comes from  interaction with APIs -  therefore learning how to protect them is of the utmost importance. But given the lack of expert cybersecurity personnel, knowledge has to be gained from other sources, like this course for instance. APIsec University is hosted by Corey Ball, a true cybersec expert and author of the new book Hacking APIs - Breaking Web Application Programming Interfaces, published by No Starch Press. In that book he teaches how to go about: full article on i-programmer:

Microsoft Goes All Out On Java

Microsoft has released an update to VSCode that has support for Spring based applications. At the same time there's a new Microsoft website, a dedicated to Java. It's not just .NET any more, but the JVM too. Back in 2021,  in "Microsoft Jumps on the OpenJDK Bandwagon" we witnessed the beginnings of Microsoft's love affair with Java, when Microsoft released its own build of Java's OpenJDK. Why would Microsoft do that that when there are so many choices already? One reason is to establish a foothold on Java's market share.The other is that internally it uses Java a lot in its own infrastructure, especially its Azure ecosystem (Azure Spring Cloud, Azure App Service, Azure Functions, Azure Kubernetes), and for that it needs to have its own uniform and universal build applied to them. Of course, there's also the promotional incentive of pushing Azure to Java's developers, with Microsoft trying to lure them in,  even helping them to migrate their applica's Practical Deep Learning for Coders Has Been Updated has just published an update to its free online course Practical Deep Learning for Coders. The update covers new techniques and libraries and for continuity the original 2020 version is still available. was founded four years ago by academics Jeremy Howard and Rachel Thomas with an ongoing commitment to providing free, practical, cutting-edge education for deep learning practitioners and educators. They have two courses on offer - Practical Deep Learning for Coders and Deep Learning from the Foundations. In order to keep Practical Deep Learning for Coder's current, since the field of AI is very fast moving,  its 2022 edition has been rewritten from-scratch, focusing on interactive explorations, covering PyTorch and libraries like fastai and Hugging Face. It teaches the latest deep learning techniques that really matter: full article on i-programmer:

Microsoft's Artificial Intelligence for Beginners

 There's a new free, self-paced, online course about Artificial Intelligence from Microsoft's Azure Cloud Advocates. Its 24 lesson curriculum, expected to take 12 weeks to complete, is targeted at those brand new to Artificial Intelligence. This is a continuation of last year's Microsoft's Machine Learning for Beginners.That course made a clear distinction between Machine Learning and AI - it was about "classic machine learning" and did not concern itself with artificial intelligence. That is the job of its sibling course, AI for Beginners.This separation of topics meant that ML for Beginners was not as complicated as AI for Beginners is, well at the novice level anyway. Both courses require Python. ML uses Sci-kit and with good reason : full article on i-programmer:

OS-Climate - Open Source To Tackle Climate Change

 OS-Climate is a Linux Foundation-backed project is working to develop open source data and tools to help to meet the Paris climate goals of limiting warming to well below 2 °C, with an aspiration of 1.5 °C. To that end, 1.5 °C might not sound a lot, but in essence it would make a big difference. Open sourcing tools and making them available to scientists at large as a contribution to putting as many brains possible behind it, is one way of going about it. As a step in the right direction, the Linux Foundation in collaboration with BNP Paribas, Allianz, Airbus, Amazon, Red Hat and Ortec Finance has released three tools, not just for scientists but also for financial institutions, corporations, NGOs, regulators and academics, in order to help them reach climate-aligned financial decisions. full article on i-programmer:

IBM Releases Deep Search For Scientific Discovery

 IBM's Deep Search for Scientific Discovery (DS4SD) Toolkit has been made available to the public. It comes from the depths of IBM's research labs using NLP to analyze mass amounts of data. Deep Search is a cloud-based AI research service offered as a SaaS that allows researchers to load large amounts of structured or unstructured data to immediately find useful connections. The sources that Deep Search can consume vary and range from journal articles to patents to technical reports and more. By using AI and NLP it can ingest 20 pages per second whereas a typical human expert takes 1–2 minutes per page just to read, and automatically extracts the semantic units and their relationships. It then builds a searchable knowledge graph which enables its users to: robustly explore information extracted from tens of thousands of documents without having to read a single paper. full article on i-programmer:

Real World Schema Exploring With Azimutt

 Azimutt is a free and open source database schema explorer with many great features. I put it to test when designing a Spring Boot application. Here's what I discovered. Azimutt's main functionality allows exploring your schema by searching for relevant tables, following the relations and even finding paths between tables you want to connect. It is web based and as such runs within the browser therefore there's no separate binaries to download and install, something that makes it portable. My discovery of Azimutt came at a crucial moment when developing a Spring Boot application. To set the scene, the application interacts with a SOAP web service and uses Hibernate to store the data that it consumes. On top of that the UI is written in Vaadin. However, the XML schema provided by the SOAP endpoint was very complex, containing many entities and relations between them.To get more insight of the XML schema, a first attempt was made to visualize it trying out a number of tools

Knock Yourself Out With 91 Python Videos

 The talks and tutorials presented at the 4th annual Python Web Conference are now available for free. Topics ranged from Code and Tech to Social and Career advice. Six Feet Up's Python Web Conference 2022 (#PWC2022), was a virtual event that took place between March 21 and 25, targeted at Python Web Developers. It featured 90 international experts presenting on 85 topics such as Django, CI/CD, Containers, Serverless, REST APIs, web security and microservices, split into 6 tracks.The tickets were priced $99 for students and $199 for pros, and the attendees were 376 devs coming from 36 countries. The presentations and post-event recordings have been shared as huge playlist on YouTube. The talks on development included topics such as :  full article on i-programmer:

Securing Your Software Supply Chain With This Free Course

 A new course  from the Linux Foundation on the edX platform  aims to educate the industry on how to digitally sign software artifacts. Targeted at both software developers and DevOps and security engineers, it focuses on using the Sigstore toolkit to secure the software supply chain.  Sigstore is really upping its game. Supporting new tools, like GitSign which I recently covered, it produces announcements, consortiums and educational material. It really is taking supply chain security seriously. For those still not aware of the concept, the desired outcome is to protect the software supply chain. How can this be achieved? full article on i-programmer:

In Praise Of SQLite

 SQLite, the RDBMS that never ceases to amaze, has reached version 3.39.2. While this release contains just bug fixes, it builds on major changes that debuted in 3.39.0. SQLite "never ceases to amaze", or more specifically, the imaginative uses people put it under, since while SQLite is a relational database management system like MySQL or Postgres, it does not fall under the client-server model. Instead it embeds itself inside applications that need query access to a data store. The most prevalent examples are its embedding in Android applications or web browsers such as Firefox. Despite its compact size and absence of the client server model, SQLite is a RDBMS with all the features that make something relational - that is tables, indexes, constraints, triggers, transactions and the like. However full article on i-programmer:

New NodeJS Database Driver for Oracle Released

 New NodeJS Database Driver for Oracle Released Version 5.4 of node-oracledb, the Node.js and TypeScript module for accessing the Oracle Database, has been released and is available from npm. The node-oracledb add-on for Node.js allows applications to be written in TypeScript, or directly in JavaScript. Version 5.4 connects Node.js 14, or later, to an Oracle Database. Last month in "New Database Drivers for Oracle and PostgreSQL Released" w looked at another recent driver release for the Oracle database, but for another language - Python. That driver had a major name change from cx_Oracle to python-oracledb to signal the change that the new driver is a thin driver and therefore makes no use of the Oracle Client libraries. As such it was aligned with the rest of the language*-oracledb naming schemes as node-oracledb does. full article on i-programmer:

Take The Beginner's Series to Rust

  Microsoft has released a new self-paced and free curriculum for total beginners in Rust, taught by Microsoft's own employees. But first of all why Rust? why go for Rust as a beginner when there's so much choice? Rust was Mozilla's brainchild first announced in 2010 and released in 2015. Its official definition and purpose in life was to be: “a systems programming language focused on three goals: safety, speed, and concurrency.” three concepts that no language could cover 100%. In particular, Rust was going to fill the safety gap by making all the erroneous, dangerous and unsafe operations found in the C-derived languages very hard to repeat, in essence eliminating entire classes of errors. This would result in higher-quality software, but traded for a steeper learning curve..

Protect The Software Supply Chain With GitSign

 Sigstore and the Linux Foundation have taken another step toward securing the software supply chain, this time focusing on the initial stage of the chain. That is, the signing of Git commits. Supply chain security is all the rage right now and the Linux Foundation's answer to it came through Sigstore: full article on i-programmer:

Scratch Can Even Do Linux Kernel

  Is writing a Kernel module in Scratch, the block-based programming language used primarily by kids, possible? Absurd it may be, but yes, it is absolutely possible! Scratch is the original block-based programming language and still the best known and most widely used. It was invented in 2003 at MIT to make kids' introduction to coding a much smoother experience. That said, the educational value of block versus regular text based languages is highly debated with strong arguments on either side. I encountered the case made for using text-based languages opinion when  reviewing CodeGuppy , a platform that teaches kids (and teens and "creative adults") to code by writing Javascript.  full article on i-programmer:

Citus For PostgreSQL Goes Fully Open Source

 Citus, the PostgreSQL extension that transforms Postgres into a distributed database, has gone completely open source with latest release, version 11. I say completely, because some parts, like the shard rebalancer, had already been open sourced in earlier versions. This version however open sources everything.  But first a few words about Citus. As with other extensions that give PostgreSQL superpowers, Citus enhances Postgres with : full article on i-programmer:

AGE - The Open Source PostgreSQL Extension For Graph Database Functionality

 Apache AGE, "A Graph Extension" was recently announced as an Apache Software Foundation Top-Level Project (TLP). What is the importance of that? The project was originally developed in 2019 as an extension to AgensGraph (Bitnine Global's multi-model database fork of PostgreSQL) and it entered the Apache Incubator in April 2020. The Apache Incubator is the primary entry path for projects and codebases wishing to become part of the efforts at The Apache Software Foundation. For a project to graduate from incubator into TPL shows great maturity and community involvement. It provides confidence in the longevity of a project and is great news for those wishing to adopt it. As to the project itself, AGE is graph database project which adds graph analytics functionality to traditional relational data platforms. Based on PostgreSQL, it aims to create a multi-model database that can handle both relational and graph model data so that users can use standard ANSI SQL along with ope

GitHub Skills - A Better Way to Learn Git and GitHub

 GitHub has just launched Github Skills, a new learning platform that replaces the current Learning Labs. This is a change for the better. Git and GitHub have something for everyone, beginners and pros alike. The trouble is that in order to master it you have to go through a steep learning curve where there's always something new to learn even when you thought you knew it all. For example, you just went through git merge but then you find out that there's cherry picking and rebase too. Which one should you go for? There's a gazillion of tutorials out there, but that also means that there's a large variation in quality too. Saying that, one of the best tutorials I've ever covered was Git and GitHub LiveLessons by Peter Bell, was back in 2014, but still holding its value. From the review: full article on i-programmer:

New Database Drivers for Oracle and PostgreSQL Released

 The PostgreSQL JDBC Team team has announced the release 42.4.0 of the JDBC driver for PostgreSQL. Meanwhile Oracle has released a Python-based driver for Oracle. Python and Java users rejoice! full article on i-programmer:

Perl 5.36 Released - What's New?

 Perl 5.36 was recently released and while we await Perl 7 it comes with many great features. First of all borrowing from Perl's 7 philosophy, 5.36 comes with modern and sensible defaults. That is, use 5.36; loads pragmas and features already being advised for years to programmers writing in Perl, like turning strict and warnings on, use 5.010 or importing Modern::Perl, which are now going to be set by default when you start writing a new program under this version.  According to Ricardo Signes, that directive in place does the following: full article on i-programmer:

Bash-Oneliner and GameShell Teach Unix Command Line

 Two great resources, one for beginners and one for intermediate users, for learning the Unix, well, Linux shell. Many wanted the command line bashed (pun intended), deprecated or replaced by something else. Still it has never gone away and never will, especially now that it has infiltrated even Windows through WSL. In "The PaSh Project - Advancing the Unix Philosophy One Step Further" I found that: full article on i-programmer:

pg_ivm - Materialised Views On Steroids

 pg_ivm is an extension module for PostgreSQL 14 that provides an Incremental View Maintenance (IVM) feature.That means that materialized views are updated immediately after a base table is modified. pg_ivm gives answer to the age old problem of when to refresh the materialized view. As a refresher or reminder, a materialized view versus a normal view is that the former keeps a copy of the data referenced to speed up querying since you actually query that copy, while the latter performs a live query every time. That might be great, but not ideal as you have to decide when to refresh that copy in order to avoid querying stale data.Until now in Postgres this could be done when running the command REFRESH MATERIALIZED VIEW. But again, when is the right time to run it, given the performance aspect of the time it takes for the operation to complete? full article on i-programmer:

Apache OpenJPA-Life Beyond Hibernate?

Apache OpenJPA is the Java persistence project of the Apache Software Foundation. After quite some time flying under the radar, there's a new release. Let's look into it. JPA, aka the Java Persistence API, manages persistence and object relational mapping in Java EE and Java SE environments. Libraries like OpenJPA, Hibernate or EclipseLink are those providing the implementations of the standard. By writing code that adheres to the API you are not constrained by the specific library's features, despite the fact that sometimes the additional non-standard functionalities they provide can be desirable. Therefore you are free at any time to swap those libraries behind the scenes for improved performance, reduction in bug count or edge cases. full article on i-programmer:

Kalix-NoOps High-performance Microservices and APIs

  What Kalix Platform-as-a-Service promises is massive - a way to write cloud applications based on Kubernetes under a unified API abstracting the lower layers away. We know that Kubernetes is magic, but at the same time hard - hard to setup, hard to configure, hard to operate, hard to write applications on, and this difficulty is a reason of why many are reluctant to let go of their monolith for the microservices world: “Complexity in the cloud ecosystem is slowing down engineering and development teams,” said Jonas Bonér, Lightbend’s founder and CEO. “Kubernetes does an excellent job managing, orchestrating, and ensuring availability and scalability of containers, but that’s only half the story. ”There needs to be an equal investment in the application layer to make it easier for the developer to build complete applications that take full advantage of all the excellent underlying cloud infrastructure we have at our disposal. Kalix is the solution to this critical issue.” Under the cu

Dash Dash - Making Linux Documentation More Approachable

  Dash Dash is a new website that aims to prettify the ugly that is the Man Pages. What once felt like a maze of weird symbols and hyper intense colors, now are visually subdued and easier to understand. Navigating Linux documentation when in need is not something enjoyable.Take for instance the Man Pages for chmod : full article on i-programmer:

Azure Toolkit for IntelliJ

 The Azure Toolkit is a plugin for IntelliJ that provides templates and functionality with which you easily create, develop, test, and deploy Azure applications. The newest version 3.64.0 was recently released.  The plugin is part of the Azure Toolkits for Java which also includes Azure Toolkit for Eclipse.The plugin is compatible with all version of IntelliJ (Ultimate, Community, Educational) and powers up the IDE with the following functionality: full article on i-programmer:

Integrate Azure and Spring with Spring Cloud Azure

 Spring Cloud Azure is an open-source project that provides seamless Spring integration with Azure services.It has now reached version 4.0. Not to be confused with Azure Spring Cloud. which is a fully managed Spring Cloud service on Azure,Spring Cloud Azure is just an SDK that offers a convenient way to interact with Azure-provided services using well-known Spring idioms and APIs for Spring developers. Spring Cloud Azure is a slightly vague term, but in essence it collectively brings together under one umbrella the following components: full article on i-programmer:

Take Microsoft's Java For Beginners

 A free course on the basics of Java is provided by Microsoft, written by in-house employees. It comprises twenty-one YouTube videos and a Github repo where the associated exercises reside.  The videos are deliberately short as they are targeted at complete beginners, But don't let that discourage you because the content is well presented is on modern Java can aid in freshening up the concepts for the more experienced audiences. The introductory video, 'What is Java' does a good job in disambiguating Java the language from Java the platform. It also mentions the recently acquired Native executable options and  serves as a quick birds-eye overview. Talking about modern material, the second video is on the Jshell read-evaluate-print loop, which full article on i-programmer:

DataStax Astra DB gets Change Data Capture

Datastax adds CDC to its Astra DB database-as-a-service platform to deliver database changes in real time via event streams, making real-time data available for use across data lakes, data warehouses and other applications. CDC is a way to capture changes made in the database and forwarding them in real-time to external applications (such as Kafka) through connectors such as the ones offered by Debezium, the open source distributed platform that turns your existing databases into event streams. There are many ways to implemented CDC full article on i-programmer:

TornadoVM Makes It Possible To Run Java on GPUs and FPGAs

 A ray tracer in Java? That's just absurd! Is Java stepping into C++ privileged territory? Yes it is, thanks to TornadoVM. TornadoVM is a plugin to OpenJDΚ which allows you to run Java on GPU's, FPGAs and dedicated hardware in order to achieve massive gains in performance. For example, the Java Ray Tracer project based on TornadoVM achieves acceleration from 1 FPS in Java to 60 FPS running on Intel HD Graphics and NVIDIA GPUs. Performance aside, TornadoVM makes programming on such hardware possible with Java and other JVM-based languages, as such breaching the status quo of C++, OpenCL or Cuda. Last time we examined a similar approach was with Python in "Program Deep Learning on the GPU with Triton": full article on i-programmer:

Ngrok Spring Boot Starter - Tunneling The Easy Way

Ngrok Spring Boot Starter makes establishing a tunnel towards your developer machine as easy as adding a dependency to your Spring Boot project. Ngrok is a tool for creating a secure tunnel from the public web to a machine behind a NAT or a firewall. It is considered the gold standard. Specifically it is used for exposing your local developer machine to the public net in order to test your projects or benchmark them. This is especially useful for quick prototypes, proof of concept or demonstration purposes. Also a type of tools, for instance Pingdom Website Testing, need to access your web project only over a public Internet addresses. So one such a way is to open a channel between your localhost and a public Internet address so that it can be accessed by all those services. But since you are developer who is reading this, there's a very good chance that you own a VPS on Digital Ocean or Linode or elsewhere and can set up a reverse proxy on your local machine without needing ngrok

Identifying Europe's Critical Open Source Software - FOSSEPS

  FOSSEPS stands for Free and Open Source Solutions for European Public Services and is an initative by the EU Commission to identify the most critical open source software used by European Public Services. Open Source Software powers everything, from modern servers, to IoT, to the desktops at work and is at the heart of the European Union systems too. It is so important that the European Commission's Open Source Programme Office has decided to offer bug bounties on popular open source software as described in "European Union Will Pay For Finding Bugs In Open Source Software". The issue with the bug bounty was which apps were going to be labeled as critical or important in order to allocate resources to them. This is the same problem faced by the Open Source Security Foundation in its effort to make open source software sustainable and for which the Criticality Score Project was set up. This has already led to critical OSS projects being identified, most recently with the

Amazon Corretto 18 Released - Why Go For It?

 Corretto, the build of the Open Java Development Kit with long-term support from Amazon, has been updated to support the latest release,18, of OpenJDK. The first general availability of Corretto was for OpenJDK 8, released on January 2019 - see our report of the December 2018 preview. Since then Corretto became the default OpenJDK distribution on Amazon Linux 2 and everywhere Amazon runs its services. Corretto includes patches from Amazon that have proven useful in running their own services, but other than that it is at par with the rest of OpenJDK distros (TCK tested) and therefore can be used interchangeably. These patches include security fixes, performance enhancements, garbage collection scheduling, preventing out-of-memory situations, as well as improved monitoring, reporting, and thread management. What is important here is that Amazon upstreams its patches to OpenJDK, thus benefiting the whole OpenJDK league. full article on i-programmer: