Vim Creator Bram Moolenaar Interview

Introduction

We had a great talk with Bram Moolenaar, a Dutch computer programmer and an active member of the open-source software community. Bram is the original author, maintainer, release manager, and benevolent dictator for life of Vim, a vi-derivative text editor that is very popular among programmers and power users.

Enjoy the full interview below!

Demystifying Grids For Developers and Designers

Designers and developers each have their own individual definition and use of grids, making the concept a relatively nebulous and unclear concept to all. To some, grids could mean layout and structure, while to others grids refer to interactive tables that manage data. Understanding the target audience is key here because there might not be a universally understandable direction which can lead designers to be misguided during the cross-collaboration process. When given the time, developers and designers can fully evaluate the user story and create a thoughtful user experience together through the use of grids. But first, we need to find common ground to work from.

Identifying a Grid

As we mentioned, it is important to know your audience when talking about Grids. If you come from a typical design background, the word “Grid” instantly brings you to think about layout (either print or online). The term has even penetrated CSS with the Grid Layout. As you can see in this article, that demonstrates the use of the term “Grid” generically for design layout purposes.

10 Web Frameworks for Golang Development

Google is coming with ‘Go’ or actually ‘Golang’. Golang stands for ‘Google’s Go Programming Language’. It is one of the powerful languages to write APIs and other web services. Golang compiles quick-running native code that is very useful for software developers. The software development experts found it easy and comfortable for coding for it is easy to use and gives a closure look like C and C++ programming languages. Golang is an open-source compiled programming language and it is prominently utilized to write native code and create powerful mobile and web applications.

Developers make an efficient application by using Golang with its several frameworks. They choose a framework and then create proper documentation and knowledge of the same. Here are the top 10 most useful frameworks of Golang:

How To Do Deletion Animations With CSS

In this quick tutorial, we're going to be looking at a bunch of different 'delete' styles to use on your next project. So let's take a look at some cool ways to delete things in your next project. Below are a set of delete animations that all work on similar principles. Let's take a look at them and then we'll jump into how they work. 

To start the animation, simply click the cross button on each card in the Codepen below.

How to Use Ballerina Local Repository

The need for overriding dependencies in a programming language is a fundamental need for many scenarios. Here we are discussing how to override dependencies in Ballerina. If you are new to Ballerina, I recommend you to play with it before reading this article. You can find everything you need in the Learn section of Language’s website.

Let’s start! Think you are working on a library that is used in a larger critical application, and you want to test a bug fix for this library inside of the larger application. Then it’s crucial to test it before publishing this library to a public package repository like Ballerina central. This is where the Local Repository comes into the picture. Also, you can use it in the following scenarios:

Revisiting Switch and If-then-else

In computer science, there is nothing more fundamental and intuitive than control structures. Every student learned about them in the first few weeks of any computer science program. We could not code without them, period. But they are not set in stone: we did get rid of the infamous GOTO in the 80s!


At the pre-ALGOL meeting held in 1959 Heinz Zemanek explicitly threw doubt on the necessity for GOTO statements; at the time no one paid attention to his remark, including Edsger W. Dijkstra, who later became the iconic opponent of GOTO.[3] The 1970s and 1980s saw a decline in the use of GOTO statements in favor of the "structured programming" paradigm, with goto criticized as leading to "unmaintainable spaghetti code"

What to Know About Drag and Drop App Builders

When you are a developer newbie, the realistic start may seem more like a bumpy ride to build the next great app which is still far from a Silicon Valley story. What do you do then? 

There are now tons of great low code or no-code development tools like drag and drop app builders that empower experts and people with little to no technical background to enter the digital market and transform it entirely. 

Improving the Reader Experience With Adobe Embed API

The Adobe PDF Embed API provides a simple way for web developers to display PDFs on their web pages. While browsers provide good support for rendering PDFs, they do so in an "out of context" manner that takes over the entire screen. The PDF Embed API however lets you place a PDF within your site's layout, providing much better control over the position and size of the rendered document. This improved experience also provides deeper integration into the PDF viewer, letting developers listen for events and perform operations on the document. In this article, I'm going to demonstrate a simple, but hopefully really useful example of this.

Imagine a large document covering many pages, for example, a textbook. Your website users, potentially students, could work with the document over many weeks while school is in session. If the document is a few hundred pages long, it would be incredibly useful to remember where they were in the document when they start reading again. While a large PDF may have bookmarks, even then they could only be for chapters or other sections, not the exact page the user last read. Luckily, the Embed API provides a method to help with this. Let's take a look!

Learn How to Use Vue and Spring Boot to Create a Single-Page App

In this tutorial, you'll create a single-page application (SPA) with a Spring Boot resource server and a Vue front-end client. You'll learn how to utilize JSON Web Tokens (JWTs) for authentication and authorization, using Spring Boot to configure the JWTs, with Okta as your OAuth 2.0 and OpenID Connect (OIDC) provider. You'll also learn how to use the Vue CLI to bootstrap a Vue client app and how to secure it using the Okta Sign-In Widget.

Okta is a computer security service provider with helpful information for safeguarding online applications. The Okta Sign-In Widget provides protection for front-end apps by letting you quickly add a secure login form that can be configured for single sign-on and social sign-on with external providers like Google, Facebook, and LinkedIn. It includes a PKCE implementation of the OAuth 2.0 authorization code flow (Proof Key for Code Exchange).

Vicious (Test) Mockery of a Perl Modulino

Over the past two years, I've gotten back into playing Dungeons & Dragons, the famous tabletop fantasy role-playing game. As a software developer and musician, one of my favorite character classes to play is the bard, a magical and inspiring performer or wordsmith. The list of basic bardic spells includes Vicious Mockery, enchanting verbal barbs that have the power to psychically damage and disadvantage an opponent even if they don't understand the words. (Can you see why this is so appealing to a coder?)

Mocking has a role to play in software testing as well, in the form of mock objects that simulate parts of a system that are too brittle, too slow, too complicated, or otherwise too finicky to use in reality. They enable discrete unit testing without relying on dependencies external to the code being tested. Mocks are great for databases, web services, or other network resources where the goal is to test what you wrote, not what's out in "the cloud" somewhere.

How To Get the Current URL With Javascript

In Javascript, it is sometimes necessary to get the URL of the current web page you are on. There are a few ways to do this.

How to Get the Current URL With Javascript

If we want to get the full URL of the current web page, we simply have to use window.location.href.

How I Got a Web Development Job 1 Week After Publishing My Portfolio

Using My Portfolio as An Interview Hook

After spending months studying front-end development (HTML, CSS, JavaScript, React, and Git), and weeks building my portfolio (well, actually two portfolios, because I didn’t like how it ended up looking the first one), I managed to land my first job in the web development industry less than a week after I started looking for one.

It all happened very fast:

Meta Tag Reference and Bullet Proof HTML5 Template

For every HTML page, you should have a few key elements to ensure fast loading and good SEO. The template below gives you all of those features, which you can quickly customize for your needs. 

I've also listed all useful meta tags below if you want to pull them out individually.

iOS Crystalline Blurred Backgrounds with CSS Backdrop Filters

iOS is full of cool crystalline glass effects. This effect has long been easy to do when you have easy access to graphic shaders since these can do most of the heavy lifting in terms of calculating what is underneath the layer, and blurring it into the foreground. However, for a long time, it hasn't been possible in CSS... until now.

In more recent specifications of CSS, we have finally gotten backdrop-filter. Mostly meant for modals, it also has applications on stylized dropdowns which are common across the web.

How to Generate an Execution Plan With Planner

Planner is an execution plan generator. It generates an execution plan based on the semantically valid AST that was validated by Validator and then passes the plan to Optimizer to generate an optimized execution plan. Finally, Executor will execute the optimized plan. An execution plan is composed of a series of nodes (PlanNode).

Structure of Source Files

Here is the structure of source files for Planner.