Archive for the ‘linux’ Category


September 30, 2017 Leave a comment

screenkey is a screencast tool to display your keys, thus your viewers can see exactly what keys you pressed.

Here is a screenshot:

And here is a short youtube video about it from gotbletu: link.

Categories: linux Tags: ,


September 24, 2017 Leave a comment

Under Linux you want to do some screen capturing. For instance, you want to do some tutorial videos.

I used gtk-RecordMyDesktop for a long time, but my current favorite is simplescreenrecorder. With gtk-RecordMyDesktop I could only save in .ogv format that I had to convert to .mp4 with ffmpeg. simplescreenrecorder can save directly in mp4 format.

Adobe Premiere Pro CS6
For editing my videos, I started to use Adobe Premiere Pro CS6. First, I asked my friends, and most of them suggested this. Second, I found some good and detailed tutorial videos for this software. I’m a newbie in video editing, so I needed some tutorials that showed everything step by step.

However, in Premiere Pro I ran into a problem. You need to import a video file and pull it to the timeline if you want to edit it. However, when I pulled an mp4 file, the audio track didn’t appear on the timeline. I had a workaround solution: from my .mp4 I extracted the audio in .wav format (with ffmpeg), and pulled it to the audio track. Strangely, the audio track was often a little bit shorter than the video track. But it was just annoying, it didn’t cause a problem.

So I tried some other screen capturing tools next to gtk-RecordMyDesktop, and that’s how I found simplescreenrecorder. After several trial and errors, I figured out why the audio track was missing. Whether the audio track appears or not depends on the audio codec! If you save the audio in AAC format, then Premiere Pro will like it and the audio track will appear when you pull such an .mp4 on the timeline. The good news is that you can select in simplescreenrecorder what audio codec you want to use!

Here are some screenshots of my simplescreenrecorder setup:

For some more screen capturing tools, see this post: 5 Best Screen Capture Tools for Linux.

Introduction to Linux

September 23, 2017 Leave a comment

I want to start a new video series entitled “Introduction to Linux”. It is intended for beginners who never (or not much) used Linux before. So far I have one video, but I plan to add more videos in the future. I will update this post with the new videos.

Complete playlist: here.

Videos in the series:

Categories: linux, ubuntu Tags: ,

Getting started with C# on Linux

June 30, 2017 Leave a comment

I’ve heard lots of good things about C# but I’ve never tried it. I saw some codes and thought “fine, it’s like Java”. As I also have Linux on my primary machine, I was not interested in Microsoft technologies. However, a few years ago .NET Core was open sourced and it reached version 1.0 (now it’s 1.1). It’s a cross platform framework and it works well under Linux too, so I thought it was time to try it. Project Mono has also existed for a long time but .NET Core comes directly from Microsoft.

Under Manjaro, install these packages with yaourt: dotnet, dotnet-cli, dotnet-sdk. We will also try Mono, so install the package mono too. For Ubuntu, see the instructions here: .

Create a project

Create a folder for holding your C# projects, e.g. ~/CSharpProjects (optional), and create a folder for a sample project (e.g. ~/CSharpProjects/Sample). Enter it, and create a source file called hello.cs with the following content:

using System;
using static System.Console;
using System.Linq;

namespace SampleApp
    class MainClass
        public static void Main(string[] args)
            WriteLine("Hello World!");

Compile with Mono

If you installed Mono, you have the command “csc” (C Sharp Compiler).

$ csc hello.cs
$ mono hello.exe 
Hello World!
$ chmod u+x hello.exe
$ ./hello.exe 
Hello World!

Compile with dotnet

Now let’s use the official command-line tools. You can also delete the file “hello.exe”. I suppose you are in the project’s folder. Issue the following command:

$ dotnet new console

It creates a project file (with extension .csproj), and a sample file called Program.cs . As we already have hello.cs, Program.cs is not needed so simply delete it (leave only one source file, but it doesn’t matter which one). Then,

$ dotnet restore    # installs some necessary packages, using the .csproj project file
Restoring packages for /home/jabba/Dropbox/csharp/Sample/Sample.csproj...
$ dotnet run        # compile and run
Hello World!

The binary output is here: bin/Debug/netcoreapp1.1/Sample.dll . If you use the command “dotnet”, you get a .dll, not an .exe . However, it can be executed:

$ cd bin/Debug/netcoreapp1.1
$ ./Sample.dll 
Hello World!
$ dotnet Sample.dll 
Hello World!

When you are ready with the development and ready for deployment, issue this command:

$ dotnet publish
Microsoft (R) Build Engine version 15.1.1012.6693
Copyright (C) Microsoft Corporation. All rights reserved.

  Sample -> /home/jabba/Dropbox/csharp/Sample/bin/Debug/netcoreapp1.1/Sample.dll

According to the docs, “dotnet publish compiles the application, reads through its dependencies specified in the project file, and publishes the resulting set of files to a directory. The dotnet publish command’s output is ready for deployment to a hosting system (for example, a server, PC, Mac, laptop) for execution and is the only officially supported way to prepare the application for deployment.”


Mono ships a REPL too called “csharp”.

$ csharp 
Mono C# Shell, type "help;" for help

Enter statements below.
csharp> 1+1

Visual Studio Code support

Programming C# with VS Code is a joy. When you open a .cs file, the editor offers immediately to install the official C# extension. In order to execute a program, install the Code Runner extension. Then, add the following lines to your user settings:

    "code-runner.executorMap": {
        // "python": "python3",
        // "csharp": "echo '# calling mono\n' && cd $dir && csc /nologo $fileName && mono $dir$fileNameWithoutExt.exe",
        "csharp": "echo '# calling dotnet run\n' && dotnet run"

Choose either Mono or dotnet.


If you have Linux, no problem, you can try C#. I started to play with it yesterday, but I like it. It seems a saner language than Java :)



fonts for programming

See It also has an installer script. The font Hack works very well for me.

Categories: linux Tags:

Pale Moon: an extremely fast web browser

April 16, 2017 Leave a comment

Pale Moon is an open source web browser, based on Firefox. It’s available for Linux and Windows too. Pale Moon focuses on efficiency and ease of use.

Pale Moon is surprisingly fast. It won’t replace my primary browser (which is Firefox), but I’ll use it for some specific sites.

Categories: firefox, linux, windows Tags: ,

Record audio in good quality

April 13, 2017 Leave a comment

I wanted to create some simple tutorial videos using a screen recording software (with gtk-recordMyDesktop to be precise), but the audio quality was terrible. There was a constant white noise in the background. I could reduce the noise with Audacity but 1) I couldn’t eliminate the noise, 2) it distorted my voice, and 3) the audio became weaker.

I had a cheap headphone / microphone that was connected with a jack plug. I think there was also some inference that caused the noise. So I bought a USB headset (Logitech H390) and the damn noise is gone! It works very well for me.

I tried it under Manjaro and here is how to make it work. Plug it and start Audacity. Next to the microphone icon there is a dropdown list. Select your headset and try to record some audio.

Try “pavucontrol” too. Under the Recording tab I had to select “Headset H390 Analog Mono”. Talk in the microphone and the sound feedback line should be moving.

How to record audio with gtk-recordMyDesktop? Start “pavucontrol” and “gtk-recordMyDesktop” too. In gtk-recordMyDesktop, go to Advanced -> Sound tab. Next to the device name I had “DEFAULT”. Change it to “pulse” (without quotes). Start recording with gtk-recordMyDesktop. Now switch to pavucontrol and go the Recording tab. At the bottom select “Show: Applications”. Now recordmydesktop should appear. Next to it there is a dropdown menu where select “Headset H390 Analog Mono”. It should do the trick.