Вы находитесь на странице: 1из 56

Full Circle N T ERVI E

W
I
THE INDEPENDENT MAGAZINE FOR THE UBUNTU LINUX COMMUNITY
ISSUE #1 50 - October 201 9

FEA

EV
TH
E R P AD D

BOOK REVIEW

B O D H I LI N U X
REVIEW OF THIS UNUSUAL LINUX DISTRO
full circle magazine #1 50 1
Fu ll Ci rcle M a g a zi n e i s n e i th e r a ffi li a te d wi th , n o r e n d o rse d b y, Ca n o n i ca l Ltd . contents ^
Python
HowTo

p.1 4
Full Circle
THE INDEPENDENT MAGAZINE FOR THE UBUNTU LINUX COMMUNITY
Linux News p.04

Automation p.1 8 Command & Conquer p.1 2 Interview p.44 Everyday Ubuntu p.30

Darktable p.20 Ubuntu Devices p.34 The Daily Waddle p.36 My Story p.37

p.XX Book Review p.39 Letters p.45 Review p.41

Inkscape p.23 Q&A p.48 Linux Certified p.51 Ubuntu Games p.53
Graphics
The articles contained in this magazine are released under the Creative Commons Attribution-Share Alike 3.0 Unported license. This means you
can adapt, copy, distribute and transmit the articles but only under the following conditions: you must attribute the work to the original author
in some way (at least a name, email or URL) and to this magazine by name ('Full Circle Magazine') and the URL www.fullcirclemagazine.org (but
not attribute the article(s) in any way that suggests that they endorse you or your use of the work). If you alter, transform, or build upon this work, you must distribute
the resulting work under the same, similar or a compatible license.
Full Circle magazine is entirely independent of Canonical, the sponsor of the Ubuntu projects, and the views and opinions in the magazine should in no way be
assumed to have Canonical endorsement. full circle magazine #1 50 2 contents ^
E D I T O R I AL
This magazine was created using :

WELCOME TO ANOTHER ISSUE OF FULL CIRCLE!


T his month we have the usual Python, Darktable, Inkscape, and the continuation of the
Automation series. We have an interview this month, Tsu Jan, the developer of FeatherPad
the QT text editor, and as the cover shows, we have a review (from Jason) of Bodhi Linux.
On the small(er) screens we have the release of Ubports Touch OTA-1 1 . This brings some
tweaks to the browser (amongst other things) and from here on in it seems they'll be
implementing Mir, and the last version of Unity from Canonical. I've also read that they want to
use the next LTS as the next basis for Touch. Personally, I hope they implement more convergence
compatibility and get desktop software running on Touch. I can but dream!
Find Full Circle on:
I have to be honest, the response to last months plea for articles was poor. Yes, we have facebook.com/fullcircle
enough articles for several more months, but I was hoping for a few more submissions to keep us magazine
going. We'll see how it goes. Currently, without exaggeration, half the magazine is written by Erik.
Pray nothing happens to him. twitter.com/#!/fullcirclemag
http://issuu.com/fullcircle
Translations seem to also have dropped off a cliff. The only current regular translation is by magazine
the French team. If anyone out there wants to form a team and translate FCM to their native https://mastodon.social/
tongue please drop me a line at the email address below. @fullcirclemagazine
All the best, and keep in touch!
Ronnie
ronnie@fullcirclemagazine.org
Weekly News:
http://fullcirclemagazine.org/f
eed/podcast
http://www.stitcher.com/s?fi
d=85347&refid=stpr
http://tunein.com/radio/Full-
FCM PATREON : https://www.patreon.com/fullcirclemagazine Circle-Weekly-News-p855064/

full circle magazine #1 50 3 contents ^


N E WS
Submitted by Arnfried Walbrecht

LINUS TORVALDS TO ADD operation to /dev/mem even for


root accounts, blocking CPU MSR
integrating the latest and greatest
open source technologies into a
many of the applications. The same
applies to the configuration. The
“LOCKDOWN ” SECURITY access, etc. high-quality, easy-to-use Linux disadvantage is also the high effort
FEATURE I N LINUX 5.4 distribution. The team has been that you have to invest to get a

A
Source: hard at work through this cycle, running system. Adapting to your
fter fiddling with the idea for https://fossbytes.com/kernel- introducing new features and own needs and using new
a long time, Linus Torvalds has lockdown-linux-kernel-5-4/ fixing bugs," says Adam Conrad, programs requires extra work.
finally decided to add “lockdown” Software Engineer, Canonical.
security feature in Linux Kernel Source: https://www.pro-
5.4. The feature will be optional
and will be shipped as Linux
U BUNTU LINUX 1 9.1 0 Source:
https://betanews.com/201 9/09/27
linux.de/news/1 /27478/linux-bau-
anleitung-lfs-90-
Security Module in the upcoming 'EOAN ERMINE' B ETA /ubuntu-linux-1 91 0-eoan-ermine/ ver%C3%B6ffentlicht.html
Linux 5.4. The feature will bring a AVAILABLE FOR DOWNLOAD

T
major change in how user-space
interacts with the Linux kernel. The
Lockdown feature in Linux is
oday, Canonical releases the
official beta for the upcoming
LINUX CONSTRUCTION N EXTCLOUD 1 7 INTRODUCES
mainly intended to prevent root Ubuntu Linux 1 9.1 0. Code-named G UIDE LFS 9.0 RELEASED REMOTE WIPE
L N
account from tampering with "Eoan Ermine," it features Linux
kernel code, thus drawing a line kernel 5.3. There are several great inux From Scratch (LFS) is less a extcloud is a server that
between userland processes and desktop environments from which distribution than a guide to enables secure data exchange
the code. The security feature will to choose too, such as KDE Plasma, creating a GNU / Linux system from and communication. The now
be disabled by default when it will Budgie, and the default GNOME. the sources. Therefore, the released version 1 7 brings just
be shipped. Upon enabling it, even Ubuntu 1 9.1 0 is not a long term installation of a system with quite over five months after Nextcloud
root accounts won’t be able to support (LTS) version, sadly, so a lot of effort and - depending on 1 6 a number of innovations. One of
access certain kernel support for the stable release will the extent - also associated with a the most important from the
functionalities, thus protecting the only be a mere 9 months. "The lot of time. All sources of the developer's point of view is the
operating system from being Ubuntu team is pleased to system must be downloaded ability to delete data on remote
affected from a compromised root announce the beta pre-release of separately and translated devices. The remote wipe
account. Some of the restrictions the Ubuntu 1 9.1 0 Desktop, Server, according to the instructions. functionality gives users the ability
included in the Lockdown feature and Cloud products. Codenamed However, the main advantage of to delete content from their
are the prevention of hibernation "Eoan Ermine", 1 9.1 0 continues Linux From Scratch lies in learning devices, even when they no longer
of the system, blocking write Ubuntu's proud tradition of how the Linux system works and have access to it. Among other
full circle magazine #1 50 4 contents ^
NEWS
things, sensitive data should be crash). The CVE-201 8-20976 issue vulnerability rests in Android that, the kernel security update
deleted on stolen or lost mobile was also fixed in the Linux 4.4 device’s Linux kernel code, which fixes a flaw in the Bluetooth UART
devices. Other new features of kernel. The new Linux kernel provides cybercriminals root implementation that could allow a
Nextcloud 1 7 include security update is available right access to Android smartphones. On local attacker to cause a denial of
customizations to IBM's Spectrum now for users of the Ubuntu 1 8.04 the contrary, the same Android service, an out-of-bounds read in
Scale and Collabora Online. The LTS (Bionic Beaver) and Ubuntu zero-day vulnerability was the QLogic QEDI iSCSI Initiator
connection to Nextcloud Talk has 1 6.04 LTS (Xenial Xerus) operating supposedly patched back in 201 7 driver, which could let a local
been improved and the systems using the Linux 4.1 5 in Linux kernel versions 3.1 8 LTS, attacker to expose sensitive
establishment of two-factor kernel, as well as for Ubuntu 1 6.04 4.1 4, 4.4, and 4.9. However, the information (kernel memory), as
authentication has been made LTS (Xenial Xerus) users using the newer kernel versions were found well as bugs in the XFS file system,
easier. Also new is the ability to Linux 4.4 kernel. Canonical urges to be vulnerable. Hisilicon HNS3 ethernet device
write LDAP entries. all users to update their systems as driver, and Atheros mobile chipset
soon as possible. Source: driver, which could allow a local
Source: https://www.pro- https://fossbytes.com/new- attacker to cause a denial of
linux.de/news/1 /27480/nextcloud- Source: android-zero-day-vulnerability- service.
1 7-f%C3%83%C2%BChrt-remote- https://news.softpedia.com/news/ found-vulnerable-devices/
wipe-ein.html canonical-outs-major-linux-kernel- Users are urged to update their
security-patch-for-ubuntu-1 8-04- systems immediately Canonical
and-1 6-04-lts-527647.shtml CANONICAL RELEASES urges all Ubuntu 1 9.04 and Ubuntu
CANONICAL O UTS M AJOR M AJOR KERNEL SECURITY 1 8.04 LTS users running the Linux
5.0 kernel to update their systems
LINUX KERNEL SECURITY U PDATE FOR U BUNTU 1 9.04
PATCH FOR U BUNTU 1 8.04 NVULNERABILITY
EW ANDROID ZERO -D AY immediately to the new kernel
FOUND: AND 1 8.04 LTS versions that are available now in
AND 1 6.04 LTS the main software repositories.

T he new Linux kernel security


THESE ARE THE AFFECTED
SMARTPHONES T he new kernel security update
comes a few days after Source:
https://news.softpedia.com/news/

G
update fixes two another major patch released on
vulnerabilities (CVE-201 8-20976 oogle has discovered a new Tuesday for Ubuntu 1 8.04 LTS canonical-releases-major-kernel-
and CVE-201 9-1 5538) in the Linux Android zero-vulnerability (Bionic Beaver) and Ubuntu 1 6.04 security-update-for-ubuntu-1 9-04-
4.1 5 kernel used in both Ubuntu that allows hackers to gain LTS (Xenial Xerus) systems running and-1 8-04-lts-527703.shtml
1 8.04 LTS and Ubuntu 1 6.04 LTS, unauthorized access to various the Linux 4.1 5 kernel. This one
discovered in the XFS file system, Android smartphones. This fixes issues affecting the Linux 5.0
which could allow a local attacker discovery has been made by kernel in Ubuntu 1 9.04 (Disco
to either execute arbitrary code or Google’s Project Zero team. It is Dingo) and Ubuntu 1 8.04 LTS
cause a denial of service (system suggested that the Android (Bionic Beaver) systems. On top of
full circle magazine #1 50 5 contents ^
NEWS
REPORT: D OCKER HAS SPARKYLINUX 5.9 RELEASED GNU PROJECT DEVELOPERS said what happened.
FINANCIAL PROBLEMS WITH LATEST U PDATES OBJECT TO RICHARD M Source:
FROM D EBIAN GNU/LINUX S TALLMAN ' S CONTINUED
A ccording to media reports,
Docker's container specialists 1 0 "B USTER" LEADERSHIP
https://www.zdnet.com/article/gn
u-project-developers-object-to-
richard-m-stallmans-continued-

S R
appear to have economic leadership/
problems. The company is parkyLinux 5.9 is the ninth ichard M Stallman (RMS)
therefore urgently looking for new instalment in the SparkyLinux 5 recently put his foot in his
investors. But Bearden assures "Nibiru" operating system series, a mouth by defending a sexual
that Docker is actively negotiating rolling release version of the abuser and was pressured into SUSE DROPS O PEN STACK
with two investors who could Debian-based distribution that
aims to offer users access to all the
resigning from the Free Software
Foundation (FSF). So, was that his
CLOUD
F
provide the company with the
required capital. Docker had last new packages from the latest end as a free software leader and or years, SUSE, the European
nearly two years ago completed a Debian GNU/Linux release. public figure? Nope. He's still head Linux and open-source
round of investment for just under SparkyLinux 5 is based on Debian of the GNU Project and appears to company, was one of the
92 million US dollars and thus since GNU/Linux 1 0 "Buster". In have no intention of leaving. But OpenStack Infrastructure-as-a-
the start of the company can SparkyLinux 5.9, the developers some GNU developers would like Service cloud program's
collect about 270 million US updated the base system from the to see him stand down. Stallman is champions. No longer. SUSE has
dollars. According to the portal Debian GNU/Linux 1 0 "Buster" the GNU Project founder. While decided to cease production of
Crunchbase, the company was stable software repositories as of not well-known to most, new versions and to discontinue
valued at about $ 1 .2 billion at that October 4th, 201 9. It's powered by developers know it for its aegis of sales of SUSE OpenStack Cloud.
time. A possible alternative to the long-term supported Linux the Emacs text editor and the GCC This comes only a few months
finding new investors could also be 4.1 9.67 kernel and includes various family of compilers. Under it, after SUSE OpenStack Cloud 9 was
the sale of Docker to another other bug fixes and improvements Stallman also created the released. This was based on the
company. to make SparkyLinux 5 "Nibiru" important free software/open- OpenStack Rocky. release and
more reliable. source Gnu Public License (GPL). SUSE Linux Enterprise Server
Source: https://www.linux- Linux, the most well known open- (SLES) 1 2 SP4. It was also the first
magazin.de/news/bericht-docker- Source: source program, is licensed under release to integrate HPE's Helion
hat-finanzprobleme/ https://news.softpedia.com/news/ the GPLv2. Stallman himself OpenStack. SUSE had acquired HPE
sparkylinux-5-9-released-with- appeared to have resigned from cloud assets three years earlier.
latest-updates-from-debian-gnu- the Gnu Project when he resigned Why the sudden shift? SUSE stated,
linux-1 0-buster-527728.shtml from the FSF. But this "SUSE is focusing on and increasing
announcement was deleted. It's our strategic investments in the
suspected his website had been application delivery market and its
hacked. Stallman, himself, has not opportunities in order to align with
full circle magazine #1 50 6 contents ^
NEWS
technology trends in the industry points out that the current work own Pop!_OS or Ubuntu, as well as
and, most important, with our only a few fundamental things the open-source Coreboot
customers' needs. So SUSE will be implement. Therefore, many more firmware that replaces proprietary ZABBIX 4.4 RELEASED
W
working more on its Kubernetes- unanswered questions regarding a BIOS. Both the Galago Pro and
based application delivery unified storage API will have to be Darter Pro come with either 1 0th ho does not know it. A
offerings. resolved in the future. Whether generation Comet Lake Intel Core system says goodbye when
and when the new technology can i5-1 021 0U or Core i7-1 051 0U CPUs. you do not need it, and you realize
Source: be used productively is not yet The Galago Pro can be configured it much later. For administrators, as
https://www.zdnet.com/article/sus foreseeable. with up to 32GB of memory and up well as private users, it is therefore
e-drops-openstacks/ to 6TB of SSD storage. There are essential to be informed about
Source: plenty of ports, including USB 3.1 possible failures already on
https://www.golem.de/news/grafi Type-C with Thunderbolt 3, two entering by suitable tools. Zabbix
promises to be able to accomplish
N VIDIA WANTS TO CONTINUE ktreiber-nvidia-will-weiter-
einheitliches-speicher-api-fuer-
USB 3.1 Type-A ports, and an SD
Card Reader. The Linux operating these tasks and accomplishes a
UNIFIED STORAGE API FOR linux-1 91 0-1 44343.html systems of course come free, but balancing act between easy
LINUX to get 6TB of storage buyers need configuration, powerful tools and
free availability. The monitoring
to purchase a 2TB NVMe SSD and
S ince March 201 6, Linux users
can also use the graphics
technology Wayland with the
L INUX LAPTOPS: S YSTEM 76 they can add an extra 4TB 2.5-inch
REVEALS I NTEL 1 0 TH
drive, which bumps the price up to
$1 ,877. The Darter Pro can also be
system is not limited to Linux, but
also provides monitoring agents
for many other systems. In
proprietary graphics driver from GENERATION CPU S FOR ITS configured with up to 32GB addition, Zabbix seeks to make life
Nvidia. However, the manufacturer TWO NEW MODELS memory and M.2 SATA or PCIe easier for administrators through
uses a separate solution that is not NVMe SSD storage of up to 2TB. To easy configuration and

L
customization.
compatible with the technology of inux hardware maker System76 get the largest memory and
the rest of the community. has two new laptops available storage on the Darter Pro, The system consists of
However, Nvidia developer James for pre-order, offering Linux fans consumers would be looking at a
independent components. The
Jones has been trying for more high-end hardware with the latest total price of $2,1 26. If buyers heart of the system is the Zabbix
than three years to find a unified Intel CPUs and loads of want a UK keyboard instead of the
solution to the problem and US keyboard, they'll need to pay an server. It monitors all logged in
configuration options. clients, starts appropriate actions
reiterated that position in a talk. extra $1 1 9.
and constantly collects all available
System76 is offering the new data, which it stores in a database.
In the featured code, Jones has 1 4.1 -inch display Galago Pro laptop Source:
created some of the previously https://www.zdnet.com/article/lin The server is supplied with
from $949 while the 1 5.6-inch information by the Zabbix Agents,
discussed ideas based on the display Darter Pro starts at $999. ux-laptops-system76-reveals-intel-
existing Linux technique by simply Both laptops ship with System76's 1 0th-generation-cpus-for-its-two- which are each installed on a
extending it. In addition, Jones new-models/ system to be monitored and
full circle magazine #1 50 7 contents ^
NEWS
periodically transmit the status of
the system to the server. The
communication is bidirectional.
iron. The details are a bit thin, but
IBM has made improvements with
PowerVM V3.1 .1 so Live Partition
H yperbola GNU / Linux-libre
has released a new version of
the distribution. It is the third
(FHS) of the Linux Foundation.
With Arch Linux this standard is
modified by Systemd and the
The web component is responsible Mobility live migration of logical edition of the Milky Way series and UsrMerge.
for visualizing the system partitions – what everyone else offers some drastic new features.
resources and configuring the calls a virtual machine – has better Thus, the recommended by the Source: https://www.pro-
server. It can be installed on a performance. The exact nature of Free Software Foundation (FSF) for linux.de/news/1 /27508/hyperbola-
dedicated system and accesses that performance improvement is about a year recommended gnulinux-libre-gibt-milky-way-v03-
directly the data of the server. not clear as we go to press. IBM is distribution of X. Org and will in frei.html
also supporting DRAM-based future rely on the OpenBSD
Source: https://www.pro- persistent memory – which does coming from Xenocara in the
linux.de/news/1 /27503/zabbix-44-
freigegeben.html
not mean Intel’s Optane persistent
memory but rather NVDIMMs
provision of the display server.
Xenocara is currently based on
SAMSUNG D ISCONTINUES
which mix flash and DRAM – so X.Org 7.7. As a reason for the LINUX O N D EX STARTING
VMs can be stored persistently on replacement of X.Org by Xenocara, WITH ANDROID 1 0
SYSTEMS SOFTWARE STACK that memory and therefore system
S
the developers call in their
restarts and VM reloads can announcement, the latter fit amsung initially launched the
TWEAKED FOR POWER happen a lot quicker. IBM has also better with the principles of the DeX program back with the
SYSTEMS enhanced virtual network interface project. Galaxy S8. The feature enabled

A
card (vNIC) and related Single Root users to turn their smartphones
s part of the October Power Input/Output Virtualization (SR- Furthermore, OpenSSL has into a desktop-like experience.
Systems announcements, IBM IOV). Here are the tweaks IBM has been replaced by LibreSSL and While it doesn’t reciprocate a full-
has made some minor tweaks to made on the I/O front with support for Node.js has been fledged desktop, it does help users
the systems software stack that PowerVM V3.1 .1 . removed. While it was previously with certain tasks such as opening
runs underneath IBM i, AIX, and possible to easily migrate from Android apps on a big screen,
Linux on its Power-based systems. Source: Arch Linux and its derivatives to opening and editing documents
In announcement letter 21 9-451 , https://www.itjungle.com/201 9/1 0 Hyperbola, the "Milky Way" v0.3 is with ease, multitasking with split-
IBM reveals enhancements to its /1 4/systems-software-stack- no longer recommended. For users screen, and more. Back in
PowerVM server virtualization tweaked-for-power-systems/ who want to upgrade from v0.2, November last year, the South
hypervisor, the PowerVC there is a migration guide. This is Korean tech giant started a private
implementation of the OpenStack necessary in addition to the beta testing for Linux on DeX. The
cloud controller (which presumably
has a pretty short life now that
H YPERBOLA GNU / LINUX- changes already mentioned,
because Hyperbola returns from
idea was to bring a GNU/Linux
distribution to a mobile device;
IBM owns Red Hat), and its Virtual LIBRE RELEASES "M ILKY the file structure used by Arch Linux on Dex was powered by
HMC (vHMC) hardware WAY" V0.3 Linux to the File System Standard Ubuntu. The Korean tech giant has
management console for Power certainly disappointed Linux fans;
full circle magazine #1 50 8 contents ^
NEWS
however, it’s not all bad. First and
foremost, the normal DeX mode is
would confess to that. But is it
more attractive than desktop Linux
»Project VGA«. The latest
alternative is called Libre RISC-V
A LINUX B UG CAN B E
still operational. This means that distributions? Well, that depends and pursues the same goal as its EXPLOITED TO H ACK
once you opt-out from Linux on on the desktop environment. While predecessors. The free 3D GPU is SYSTEMS U SING WI -FI
DeX beta version, you will still be
able to use the normal DeX mode.
there are plenty of beautiful DEs
and launchers for Linux, only one
to be based on the open
instruction set architecture RISC-V.
SIGNALS
As for Linux fans, the silver lining is
that you can still use the Linux on
DeX as long as you don’t update
really surpasses macOS in the looks
department -- deepin. Yes, the
Linux-based operating system
However, an entry on the project's
mailing list reveals dissatisfaction
with the behavior of the RISC-V
A n unpatched bug in Linux
systems could be exploited to
crash the entire operating system,
your device to the latest Android developed in China is arguably the Foundation. even worse, gain control of the
version. most beautiful OS across the system via nearby devices using
board. It is more than just beauty, Key developer Luke Kenneth Wi-Fi signals. The flaw stems from
Source: however -- it is well-designed from Casson Leighton makes it clear the RTLWIFI driver that supports
https://fossbytes.com/samsung- a usability aspect too. True, some that the criticism is not about RISC- Realtek Wi-Fi chips in Linux
discontinues-linux-on-dex-android- xenophobic conspiracy theorists V itself, but about the way the systems. The driver flaw can be
1 0/ will decry the use of software RISC-V Foundation tries to assert activated as soon as the affected
made in China, but many computer its business interests, thereby device is brought under the radio
users around the world use deepin hindering free development. Thus, range of a malicious device. As
DEEPIN LINUX 20 LOOKS regularly without issue. "Libre RISC-V" has no access to the long as the Wi-Fi is toggled on the
private mailing list and other victim’s device, a perpetrator, on
INCREDIBLE Source: resources of the Foundation. He his malicious device, can hack the

I
https://betanews.com/201 9/1 0/1 9 does not even have access to the Linux system by using the Notice
recently sold my MacBook Pro /deepin-linux-20/ documentation, which explains
for a few reasons, but probably of Absence in Wi-Fi Direct — a
how to propose new extensions, power-saving feature built-in the
most importantly, macOS just says Leighton. Free projects are
wasn't wowing me anymore. While WiFi technique. According to Nico
Apple's desktop operating system "LIBRE RISC-V PROJECT" disadvantaged by this behavior. Waisman, the security engineer at
is good for basic users, it is far too BY RISC-V FOUNDATION Source: https://www.pro-
GitHub said that the bug is
limited for the more hardcore. extremely serious. The flaw is part
DISAPPOINTED linux.de/news/1 /27527/libre-risc-v- of the version 3.1 0.1 of the Linux
Ultimately, I found my productivity projekt-von-risc-v-foundation-
O
was negatively impacted by macOS kernel that was released in 201 3.
ver the years, there have entt%C3%A4uscht.html
-- my workflow with Windows 1 0 been several attempts to
and various Linux distributions was Source:
develop a free graphics processor, https://fossbytes.com/linux-bug-
simply better. Of course, with all of but all have failed. Worth
that said, macOS is much prettier exploited-hack-system-wifi/
mentioning here are the Open
than Windows 1 0 -- even Microsoft Graphics Project and the resulting
full circle magazine #1 50 9 contents ^
NEWS
https://news.softpedia.com/news/ Performance Mode. layouts, and adds a new way to
U BUNTU 1 9.1 0 (EOAN ubuntu-1 9-1 0-eoan-ermine-gets- edit text. Ubuntu Touch OTA-1 1
ERMINE) G ETS FIRST LINUX first-linux-kernel-security-patch- Ubuntu MATE 1 9.1 0 includes all also brings improvements to the
KERNEL SECURITY PATCH , update-now-527934.shtml the new additions to the Ubuntu
1 9.1 0 base, but gives you more
built-in Morph web browser, such
as the ability to save page zoom
U PDATE N OW choice in how your desktop is laid level and to set "Always allow" or

R eleased last week on October U BUNTU MATE 1 9.1 0


out. By digging into your "Always deny" on location access
1 7th, Ubuntu 1 9.1 0 (Eoan PACKS TWO AWESOME N EW appearance settings, you can
switch up your desktop
per site, as well as to blacklist
access to certain sites, and support
Ermine) brought numerous new
features and improvements,
FEATURES FOR LINUX U SERS presentation to something more for sites to launch apps via custom

T
comfortable or familiar. URL handlers like tel:// for launch
including experimental ZFS on root he Ubuntu 1 9.1 0 upgrade the dialer.
support in the installer, LZ4 season is officially upon us, Source:
initramfs compression for all and I’ve been dabbling with several https://www.forbes.com/sites/jaso UBports is already working on
architectures, up-to-date of the freshly updated Ubuntu- nevangelho/201 9/1 0/23/ubuntu- the next release, Ubuntu Touch
toolchain, and embedded Nvidia based distributions this past week. mate-1 91 0-has-two-awesome-new- OTA-1 2, which should arrive later
graphics drivers. It also ships with One of those is Ubuntu MATE features-for-linux- this year with the long anticipated
the latest Linux 5.3 kernel series. 1 9.1 0, which has a pair of minor users/#6f9af64e724e Unity8 user interface and Mir 1 .x
However, it would appear that but exceptional new features you display server. Ubuntu Touch OTA-
Linux kernel 5.3 before before might appreciate. Those of us 1 2 will be the biggest release for
version 5.3.4 was plagued by a
security vulnerability (CVE-201 9-
rocking hybrid graphics laptops –
these contain both CPU-powered
U BUNTU TOUCH OTA-1 1 Ubuntu Phone users in 201 9 and
we can't wait for it to arrive on
1 81 98) found in the IPv6 routing integrated graphics and dedicated FOR U BUNTU P HONES Purism's Librem 5 Linux phone.
implementation, which could allow Nvidia GPUs – know that Linux lags B RINGS S MARTER
a local attacker to crash the system a bit behind Windows when it
or execute arbitrary code. The new comes to “on-demand” usage of KEYBOARD, B ETTER Source:
https://news.softpedia.com/news/
Linux kernel security update is our Nvidia cards. Fortunately, B ROWSING ubuntu-touch-ota-1 1 -for-ubuntu-

A
available for 64-bit (amd64) Nvidia’s latest Linux driver (version phones-brings-smarter-keyboard-
systems, Raspberry Pi devices, 435) offers initial - and most vailable for testing since better-browsing-527953.shtml
cloud environments, Amazon Web importantly official – support for earlier this month, the Ubuntu
Services (AWS) systems, Microsoft PRIME. If a hybrid graphics system Touch OTA-1 1 software update
Azure Cloud systems, and Google is detected, MATE 1 9.1 0 displays introduces a much-improved and
Cloud Platform (GCP) systems. an option in your panel to switch smarter on-screen keyboard
between three different graphics keyboard that implements a
modes: Intel Power Saving, Nvidia Dvorak keyboard layout option,
Source: On-Demand, or Nvidia improves the Japanese and Polish
full circle magazine #1 50 10 contents ^
NEWS
H ELL HATH GNOME FURY: home security biz Slomin's (case
2:1 7-cv-0591 5-BMC) have filed
sharing), LibreOffice, KeePassXC
password manager, Electrum
is optimized by the developer to
support even more hardware, as
LINUX DESKTOP ORG SWINGS counterclaims against RPI lawsuits Bitcoin wallet (only useful with a well as the Nvidia 430.50
AX AT PATENT TROLL' S and managed to get their persistent volume) and a few other proprietary graphics driver for
INFRINGEMENT CLAIM respective cases over the claims productivity tools and utilities. The gaming on Nvidia GPUs. Of course,
dismissed. target audience could be it also includes all the updated

A fter being hit with a patent-


infringement lawsuit last
month, the GNOME Foundation
Source:
https://www.theregister.co.uk/201
journalists, political activists and
anyone with good or bad reasons
to want anonymity and security.
packages from upstream. Probably
the best thing about ExTiX 1 9.1 0 is
that is comes with Refracta
has fired back with a counterclaim 9/1 0/22/gnome_linux_lausuit/ The Tails philosophy is spelled out Snapshot, an utility that lets you
– and urged the courts to dismiss in a "social contract". build your own live and installable
the case. In a memo this week, the ISO image based on Ubuntu 1 9.1 0
non-profit org said Rothschild H EADS UP, PRIVATE Source:
https://www.theregister.co.uk/201
(Eoan Ermine) and ExTiX 1 9.1 0. You
don't even have to install ExTiX on
Patent Imaging (RPI) – a patent PENGUINS: TAILS 4.0 IS OUT. 9/1 0/24/tails_4_privacy_linux/ your personal computer to use
assertion entity (PAE) it
characterizes as a "patent troll" – SECURITY-CONSCIOUS LINUX Refracta Snapshot.
had filed an infringement claim GETS UPDATED APPS, SPEED
regarding the foundation's BOOST EXTI X 1 9.1 0 "THE Source:
https://news.softpedia.com/news/
Shotwell image management U LTIMATE LINUX SYSTEM "
T
application in a US district court in extix-1 9-1 0-the-ultimate-linux-
California. "It’s the first time a free
ails has released version 4.0 of
the privacy-focused Linux
I S N OW B ASED ON U BUNTU system-is-now-based-on-ubuntu-
software project has been distro, based on Debian 1 0, with 1 9.1 0, RUNS LXQ T 1 9-1 0-runs-lxqt-527970.shtml
targeted in this way, but we worry
D
numerous feature and usability
it won’t be the last," the GNOME improvements. Tails stands for ubbed by the developer as
Foundation said. Companies facing "The Amnesic Incognito Live "The Ultimate Linux System,"
such claims have a strong financial System". It is most commonly ExTiX 1 9.1 0 is based on Ubuntu
incentive to settle, knowing they started from a USB stick and runs 1 9.1 0 (Eoan Ermine), but ships with
risk significantly higher costs just as a live operating system which by the lightweight LXQt desktop
to fight the case and perhaps much default is non-persistent. Not all environment instead of GNOME to
more if they lose. If GNOME USB sticks or PCs work with Tails, allow users to use it on their UEFI-
succeeds in standing its ground so if you want to use it, check the enabled computers. ExTiX 1 9.1 0 is
against RPI, it won't be the first known issues carefully. using the latest LXQt 0.1 4.1
accused infringer to do so. Both Applications installed by default in desktop environment by default.
networking kit maker Netgear Tails include the Tor browser, Under the hood, ExTiX 1 9.1 0 uses
(case 2:1 6-cv-01 380-RWS) and Onion Share (for secure file the latest Linux 5.3.7 kernel, which
full circle magazine #1 50 11 contents ^
C O M M AN D & C O N Q U E R
Written by Lucas Westermann
Ru s t
E very year I make a point to
learn a new programming
language or re-visit one I haven’t
The error-checking is extremely
powerful, and cargo (the build
tool) offers enough information to
However, you can still run into
runtime issues where the
application crashes. Rust aims to
faster than C++.

RESOURCES
used for years. A couple of years almost always solve the problem catch these at compilation time
ago, the new language I wanted to directly from there. and force the developer to fix Books:
play around with was Rust. I them. “The Rust Programming Language”
followed a few tutorials, got
comfortable with the syntax, did a
WHY USE RUST? • Lastly, just like C in Python, you
could theoretically use Rust with
- the official rust book -
https://doc.rust-
test project, and then...stopped. If you’re coming from an Python (admittedly, I’ve never lang.org/book/title-page.html
Between my job and my comfort in interpreted language like Java or tried this). But if you need to “A Gentle Introduction to Rust” -
Python, I just didn’t have a lot of Python, here are a few things that optimize some code and know https://stevedonovan.github.io/rus
situations where I felt like I wantedare different for Rust (or any Python just won’t get the speed t-gentle-intro/
to take the time to apply a new systems language, really): you need, you can write a library in
language, and defaulted to Python • Speed - as Rust is a lower-level Rust and use that. Videos:
instead. As my day job currently language, you can typically assume The official Rust YouTube channel:
consists of Python (and a few it will perform faster (once If you’re coming from another https://www.youtube.com/channel
other languages), I have found compiled) than an interpreted systems language like C++, here is /UCaYhcUwRBNscFNUKTjgPFiA
myself revisiting Rust simply as a language, and with less memory my best understanding of what’s
way for my personal projects to overhead. different (based on my admittedly Practice :
not feel quite so much like work. • If you build a Rust binary (without limited C++ knowledge): Exercism has a track for Rust:
As such, I’d like to give my readers external dependencies like • Rust is memory/type safe (by https://exercism.io/tracks/rust
my take on Rust. OpenSSL) it will depend only on default - you can integrate unsafe
practices if required).
WHAT IS RUST?
system libraries. Meaning running a
binary will not require Rust to be Rust will catch most errors at bu• M Y O PINION OF RUST
installed on the target system. ild time.
• Rust offers a build tool and My main language of choice has
Rust is a systems language that While interpreted language can package manager called cargo. been Python for quite a long time
aims to be safer and more stable emulate this effect, they are (outside of the web), and I’ve
than C++. It does this by checking actually being compiled with a • A massive library of easily-
accessible 3rd party libraries via always meant to sink some time
for possible errors at compile time, portable version of the interpreter. cargo. into a systems language, but never
and giving errors/warnings to the • Errors on compilation - in both really enjoyed C++. So Rust seems
developer at that point in time. Java and Python, the interpreter • Performance-wise, it typically is a
bit slower than pure C, but a bit like an ideal choice – modern
will catch some critical errors.
full circle magazine #1 50 12 contents ^
COMMAND & CONQUER
language, similar C++ power. data types. Python will just select it’s more ready than C++ ever was
Cargo, especially, makes Rust feel the right type based on the value • If you have a specific tool or CONCLUSION
a lot more modern. given. Rust can do the same to library you need to use with your
some degree, but you’ll certainly software, make sure you can I sincerely hope that Rust
That being said – what if you want to learn the difference integrate it with Rust (i.e. check continues to grow in popularity, as
don’t know any other between signed and unsigned ints, crates.io for libraries). its methodology is a big step
programming languages? Or what and select the correct type for a • While the very first version of forward (in my opinion). For any of
if you’re not sure you want to learn situation (i.e. an 8-bit unsigned int Rust was released in 201 2, it hit my readers who know Rust, or
a systems language? Here are a instead of a 32-bit int). This version 1 .0 only in 201 5. As such, learn it - let me know how it goes!
few points as to why I think Rust knowledge can make you a much it’s hard to say whether it’s here to Similarly, if anyone has any
could be a good language to learn better programmer long-term, stay. I’m of the opinion that the requests for an article, questions,
on: because you’ll understand memory approach Rust has is the way we or just wants to share their
• Type and memory safe - learning usage at a deeper level. need to go for the future, and, opinion, you can reach me at
something like C++ can be • Community - the entire Rust being an open-source project, lswest34+fcm@gmail.com.
frustrating because a mistake can community is founded on the idea should continue to be developed
mean a segmentation fault, and of guiding people through the as long as people are using it.
debugging them can drive you code, and as such it is one of the Depending on how long-term your
crazy. Rust will do its best to most open and welcoming profession needs to think, you’ll
prevent these from ever communities I know of. If you’re need to make a decision yourself
happening. someone who prefers to be able to on how mature the language is.
• Cargo - when you compile Rust, ask a person questions when • If performance is a big factor,
you get formatted output telling learning, you’ll typically always make sure you want to invest the
you what line (not just the line find someone to answer your time into learning how to optimize
number, but the actual code too), question in this community (i.e. on Rust.
with markup and annotations the Rust subreddit). • If you’re in a position where you
telling you what issue the compiler have a codebase where you can
sees. It’s essentially guiding you
through learning the code. It may
READY FOR PRIME TIME? mix and match (i.e. Python with C
libraries), you could implement
feel disheartening at first to need If you’re a professional one small library in Rust the next
multiple passes to fix your code, programmer and you want to start time you need a new one and try it
but eventually you’ll actually using Rust at work, you may be out that way.
understand the issues. asking yourself if it’s ready for Lucas has learned all he knows from
• Computer science - if you’re The tl;dr is: It depends on your repeatedly breaking his system, then
that. Here are a few of my having no other option but to
interested in the topic at a deeper thoughts on the matter: specific scenario. In that position, discover how to fix it. You can email
level, Rust is a much better choice • From an architecture perspective you’ll need to know enough to Lucas at: lswest34@gmail.com.
than Python for a simple reason – decide for yourself.
full circle magazine #1 50 13 contents ^
H O W-TO
Written by Greg Walters P yt h o n I n T h e R E AL W o rl d P t . 9 8
H ELLO WORLD! I hate using
that phrase when introducing
someone to a new programming
documentation that a normal
person can really understand.
those who can speak other
languages to determine the actual
usability.
ng/espeak-
ng/blob/master/src/espeak-
ng.1 .ronn. I'll try to distill them
language or concept; so much in Remember, as we are going down, like a fine scotch whiskey,
fact, I refuse to use it. I change it through this, the old saying "You How to use it... for you. Let's take a quick look at
to something like "Hello from get what you pay for" and in this some of them.
Python" or something equally instance it's true to some extent. Luckily, to install eSpeak-ng on
close but equally different. Ubuntu is pretty easy. If you want to see the various
The best that I could find that languages that are available, just
You might notice above that fits all those requirements is a :~$ sudo apt-get install
espeak-ng-espeak
type:
this is article # 98 in my Python package called eSpeak
programming series. If everything (https://sourceforge.net/projects/ To test it, while you are in the
:~$ espeak-ng --voices
goes according to plan, my 1 00th espeak/). While it appears that terminal, try this...
article will in December's Full there hasn't been any forward You will receive the output
Circle Magazine. progress since the end of 201 7, :~$ espeak-ng "Welcome to
shown on the next page (top
there is a fork of this project that is free and open source Text to right).
Now let's start with this currently being worked on called Speech processing."
month's article… the reason you 'eSpeak NG' I've cut that list down
are here... (https://github.com/espeak- Now you can hear what I'm considerably to save space here in
ng/espeak-ng). The eSpeak talking about. It's pretty much the article. And to be brutally
Text to Speech. Something that projects have support for over 1 00 robotic and something reminds honest, I wouldn't begin to know if
has been around for many years, languages and accents. This having you of listening to the voice of some of these were even close to
but when it comes to Linux, is fairly been said, the voice quality is very Stephen Hawking. If you listen reality or not.
limited, especially when it comes robotic, to say the least. Nothing carefully, it can be mostly
to free software. Add a like what you get with Google understood. To use a specific voice, such as
requirement of Python usage to Assistant, Alexa, Cortana or Siri. Spanish, you can use:
that and the list gets shorter, so However, with the proper There are many command-line
let's explore what's out there. manipulations, it can sound arguments that you can use to :~$ espeak-ng -ves "Buenos
días. ¿Cómo estás?"
Another requirement is that it understandable, at least in English. change things around and to
needs to be something that is I always say, I know only two provide other options. A quick
documentation page is at We can also change the speed
somewhat regularly maintained, languages, English and BAD of the vocal output by using the -s
and it needs to have some English, so I'm at the mercy of https://github.com/espeak-
<integer> option:
full circle magazine #1 50 14 contents ^
HOWTO - PYTHON
:~$ espeak-ng -ves -s 125
"Buenos días. ¿Cómo estás?" Pty Language Age/Gender VoiceName File Other Languages
:~$ espeak-ng -ves -s 90 5 af M afrikaans other/af
"Buenos días. ¿Cómo estás?" 5 an M aragonese europe/an
5 bg - bulgarian europe/bg
5 cs M czech europe/cs
Another thing that we can do is 5 cy M welsh europe/cy
to change the pitch using the -p 5 da M danish europe/da
5 de M german de
<integer> option: 5 el M greek europe/el
5 en M default default
:~$ espeak-ng -ves -s 125 -p 2 en-gb M english en (en-uk 2)(en 2)
75 "Buenos días. ¿Cómo 5 en-sc M en-scottish other/en-sc (en 4)
estás?" 5 en-uk-north M english-north other/en-n (en-uk 3)(en 5)
:~$ espeak-ng -ves -s 125 -p 5 en-uk-rp M english_rp other/en-rp (en-uk 4)(en 5)
35 "Buenos días. ¿Cómo 5 en-uk-wmids M english_wmids other/en-wm (en-uk 9)(en 9)
estás?" ...
5 mk M macedonian europe/mk
5 nl M dutch europe/nl
That's fine for the command- 5 no M norwegian europe/no (nb 5)
line, but what we really want to do 5 pl M polish europe/pl
is create the speech from a Python 5
5
pt-br
pt-pt
M
M
brazil
portugal
pt
europe/pt-pt
(pt 5)
(pt 6)
program. No problem. 5 ru M russian europe/ru
5 sk M slovak europe/sk
We need a library to interface 5
5
sq
sr
M
M
albanian
serbian
europe/sq
europe/sr
with eSpeak-ng. Luckily, there is a 5 sv M swedish europe/sv
pretty nice version that can be 5 sw M swahili-test other/sw
5 tr M turkish asia/tr
installed via pip. It's called py- 5 vi M vietnam asia/vi
espeak-ng. It works on both 5 vi-hue M vietnam_hue asia/vi-hue
Python 2.x and 3.x . The homepage 5
5
zh
zh-yue
M
M
Mandarin
cantonese
asia/zh
asia/zh-yue (yue 5)(zhy 5)
is https://github.com/gooofy/py-
espeak-ng. Python. The documentation shows Next, we need to instantiate Now we can finally have the
a slightly different sequence of the engine: engine speak to us...
pip install py-espeak-ng commands, but they don't work on
my system. This sequence does… >>> esng = ESpeakNG() >>> esng.say('Hello from
or The first thing we have to do is
Python. Welcome to text to
speech from Python.')
import the library... Next, we need to assign a
pip3 install py-espeak-ng voice... Now, let's change the voice, this
>>> from espeakng import
Once py-espeak-ng is installed, ESpeakNG >>> esng.voice = 'en' time to French:
fire up your favorite version of >>> esng.voice = 'fr'

full circle magazine #1 50 15 contents ^


HOWTO - PYTHON
curl -s http://api.icndb.com/jokes/random/ | python3 -c 'import html.parser, json, sys;
print(html.parser.HTMLParser().unescape(json.load(sys.stdin)["value"]["joke"]))' | google_speech -

>>> esng.say('Bonjour.
Even finding out the current available to us. The reason I try it on the command-line.
Comment vas-tu?')
voice is simple: haven't mentioned it until now, is
that it isn't quite free. It's the :~$ google_speech -l en
Now, let's change the pitch as Google Translate TTS API. You
"Hello $USER, it is $(date)"
>>> print(esng.voice)
we did before. The syntax is a bit need to have Python 3.4 to start,
different, but still simple: fr For some reason I get 'sox
so if you are still hanging on to WARN alsa: can't encode 0-bit
Python 2.x, you are out of luck for Unknown or not applicable', but
>>> esng.pitch = 32
>>> esng.say('Bonjour.
To get the list of voices: this one. You also need to add a that's ok.
Comment vas-tu?')
>>> print(esng.voices) few files. For Ubuntu and other
Debian distributions, in a terminal There is a small amount of
What if we want to find our the type:
current speed or pitch? Just this (output is below) documentation available at
simple... :~$ sudo apt-get install sox https://github.com/desbma/Googl
Many more options are libsox-fmt-mp3 eSpeech that you can also try.
>>> p = esng.pitch available, and you can pretty much
>>> print(p) use everything shown above to Next, install the google_speech You can even try the code
32
figure out how to carry on from library using pip: shown above.
here.
>>> sp = esng.speed :~$ pip3 install Now, let's look at
>>> print(sp)
Now there is one other Text to google_speech
google_speech in Python.
175 Speech option that we have
Once we have that done, let's
[{'pty': '5', 'language': 'af', 'age': '--', 'gender': 'M', 'voice_name': 'Afrikaans', 'file': 'gmw/af'},
{'pty': '5', 'language': 'am', 'age': '--', 'gender': 'M', 'voice_name': 'Amharic', 'file': 'sem/am'},
{'pty': '5', 'language': 'an', 'age': '--', 'gender': 'M', 'voice_name': 'Aragonese', 'file': 'roa/an'},
{'pty': '5', 'language': 'ar', 'age': '--', 'gender': 'M', 'voice_name': 'Arabic', 'file': 'sem/ar'},
{'pty': '5', 'language': 'as', 'age': '--', 'gender': 'M', 'voice_name': 'Assamese', 'file': 'inc/as'},
{'pty': '5', 'language': 'az', 'age': '--', 'gender': 'M', 'voice_name': 'Azerbaijani', 'file': 'trk/az'},
{'pty': '5', 'language': 'bg', 'age': '--', 'gender': 'M', 'voice_name': 'Bulgarian', 'file': 'zls/bg'},
{'pty': '5', 'language': 'bn', 'age': '--', 'gender': 'M', 'voice_name': 'Bengali', 'file': 'inc/bn'},
{'pty': '5', 'language': 'bpy', 'age': '--', 'gender': 'M', 'voice_name': 'Bishnupriya_Manipuri', 'file': 'inc/bpy'},
{'pty': '5', 'language': 'bs', 'age': '--', 'gender': 'M', 'voice_name': 'Bosnian', 'file': 'zls/bs'},
{'pty': '5', 'language': 'ca', 'age': '--', 'gender': 'M', 'voice_name': 'Catalan', 'file': 'roa/ca'},
{'pty': '5', 'language': 'cmn', 'age': '--', 'gender': 'M', 'voice_name': 'Chinese_(Mandarin)', 'file': 'sit/cmn'},
...

full circle magazine #1 50 16 contents ^


HOWTO - PYTHON
>>> from google_speech import to be free. That not only applies to and one more
</speak>
Speech the software that we use, but the
>>> text = 'Hello user from
engine service and the lack of
the google speech api'
>>> lang = "en" internet. If these last two don't would count as 79 characters.
>>> speech = Speech(text, bother you, then this is for you. So be careful when you attempt to
lang)
You do, however need to be aware calculate your usage. There is also
>>> speech.play()
of the cost of using the Google API the possibility that if you send too
for this. According to much data too quickly, the system
And now for something might block you for a while if you
completely different... https://cloud.google.com/text-to-
speech/pricing for the "Standard don't have an account.
>>> lang = 'nb' (non-WaveNet voices) service,
>>> text = 'God morgen. there is a monthly free tier that Well, that’s about it for this
Hvordan har du det?' #Good month. Until next time, keep Greg Walters is a retired
(the way I read it) is from 0 to 4 programmer living in Central Texas,
morning. How are you? in
Norwegian million characters. Anything over coding! USA. He has been a programmer
>>> speech = Speech(text, that amount per month would be since 1 972 and in his spare time, he
lang)
charged at $4.00 USD per million is an author, amateur photographer,
>>> speech.play() luthier, fair musician and a pretty
characters. If you look at their darn good cook. He still is the owner
You can certainly see that the example example near the top of of RainyDaySolutions a consulting
speech is much better and more the page... company and he spends most of his
time writing articles for FCM and
understandable. Why not stick tutorials. His website is
with this? One of the requirements <speak>
<say-as interpret- www.thedesignatedgeek.xyz .
I stated earlier was that it needed as="cardinal">12345</say-as>

full circle magazine #1 50 17 contents ^


H O W-TO
Written by Erik Au t o m a t i o n P t . 2
W elcome back! In this issue,
we continue our automation
journey. If you have just joined us,
opening is already open? (In my
case - mousepad). What if we do
not want to run a new instance of
featherpad&, leafpad&, etc.)
Now oupen mousepad and re-
be the screen size, like 800x600,
for instance. We will use
mousemove, as this is absolute
we are automating things in it every time our script executes? If run your script. Are you still with positions. Clicking is another story.
Ubuntu. Last time, I asked you to you had a look at the man page, me? Did your text editor get focus “Buttons generally map this way:
save your file as test.txt. Did you you would have seen “WINDOW and run your script? Great! Let us Left mouse is 1 , middle is 2, right is
manage to do it? If not, have a look COMMANDS”. Below that, you move forward. (We will look at text 3, wheel up is 4, wheel down is 5.”
at what I did. would have noticed the “- - and windows in more depth later –
onlyvisible” “Show only visible I just want to get you excited Clear your code in myscript.sh,
Code: windows in the results. This means about what you can do in a short leaving only the shebang.
ones with map state IsViewable.” time). If you have done something
#! /bin/ bash Now, if you look under the heading clever with what we have shown Try this code:
mousepad&
sleep 1 “DESKTOP AND WINDOW you, please go ahead and show
xdotool type "I am too lazy COMMANDS”, the very first entry us!). #! /bin/bash
to type this over and over
again"
is ‘windowactivate’ - notice how it xdotool mousemove 200, 200
xdotool key Ctrl+S differs from ‘windowfocus’ a few Now let us look at moving the sleep 1
xdotool type test.txt lines before that. All that is left is mouse. xdotool mousemove 400, 400
sleep 1
xdotool key KP_Enter
xdotool key Alt+S
to name the window we are xdotool click 3
looking for, (%1 being the default). If you noticed in the manpage
That wasn’t so difficult, was it? Under “WINDOWS COMMANDS”, under “MOUSE COMMANDS”, we Instead of holding your hand
you will find the first entry is ‘class’
have ‘mousemove’ and like the first article, your
What you will need: - “--class Match against the window
‘mousemove_relative’ (no, you can homework is to make the mouse
• A text editor. class.” The description is a bit not use your mouse to move move to your menu button, click
• xdotool on a computer running misleading, but this is the name of
grandma!). The option that to start your menu, and click
Ubuntu. the window. We will construct our ‘mousemove’ is a fixed spot on the an entry to launch a terminal. You
• A willingness to learn. command thus: screen in x and y coordinates. The should have all the tools and
‘restore’ switch will move it to the information you need to do so
xdotool - -search - last position. You know how big now.
B RIEFING -onlyvisible - -class
“mousepad&” windowactivate your screen is, 1 920x1 080, or
1 024x768, etc. Those are your pixel
Before we move onto the replace “mousepad&” with the positions. To move the mouse to
mouse, what if the program we are above line. (OR whatever you used, the top left is 0,0. Bottom right will
full circle magazine #1 50 18 contents ^
HOWTO - AUTOMATION
If you are stuck – know that your
screen goes from 0,0 in the top left
to 0,1 920 in the top right, (if your
screen size is 1 920x1 080) and
1 080, 0 (if your screen size is
1 920x1 080) in the bottom left.

TROUBLESHOOTING
If you were using Geany like we
used in Part One in last month’s
article, you can use the terminal in
the bottom pane to launch your
script. If you were using a text
editor, you need to launch it from
the terminal. Do not forget to
make your script executable.
Remember to add a sleep
statement in between your
commands as the terminal is much
faster than the GUI. Do not be
afraid to go back to the previous
article and do it again to refresh
your memory.

Erik has been in IT for 30+ years. He


has seen technology come and go.
From repairing washing machine
sized hard drives with multimeters
and oscilloscopes, laying cable, to
scaling 3G towers, he's done it.

full circle magazine #1 50 19 contents ^


H O W-TO
Written by Erik D a rkt a b l e - P t 8
I f you have been following our
Darktable tutorials, you will
know we are working with the
https://www.darktable.org/userma sample each time. Leave the first
nual/en/index.html). column as “mean”, and change the
second one from “RGB” to “Lab”.
On a quick side note, go to the
“color group”. Open the channel
mixer. Here is another “Time
latest version, not the version that The image we will be working Mentally note the ratio of your travel” feature we still have to look
is bundled in the Ubuntu Software with today, is: samples. at. Hue, saturation and lightness
centre. https://www.wesaturate.com/phot will let us change the time of day.
o/cPSYvxuz - please download the Open the white balance module Not as big a gap as our previous
This time, I want you to get a RAW image. on the right. We will adjust it so tutorial, but file that in your todo-
RAW picture. There are a few sites that the ratio is about half, or 2:1 . file. I will give you an example
on the internet we can download I created an account for you to Since we are working with green, here:
RAW images from. Please feel free use: and it is a very grey picture, try to
to substitute your own. Sites like: User: culiz keep green around 1 .0.
https://www.wesaturate.com/ or Pass: 1 23QWE1 23!!
https://raw.pixls.us/#repo - be First I want you to move the
aware that many sites offer RAW It is a .nef file, but Darktable temperature slider, but keep an
downloads but mean raw as in opens it just fine (and .xmp file). eye on the red slider. See how one
uncooked and jpegs. (The struggle slider affects another?
is real...). We are continuing from last
issue. If you still have the edited If you are working at night,
The reason I want you to use a image, please open it now. We remember to turn off night light or
RAW image is that a lot of the have our image, more-or-less redshift.
.jpeg or .jpg photos you find have where we want it mood-wise, but it This is NOT what we want to do
already been manipulated and is drab. Let’s start with the green You can move the sliders, which here though, just an interesting
some tools work on RAW images trees. Open the “color picker” in can be tricky. You can also hold factoid.
only. the left pane. Zoom into the area your mouse over the color you
with the trees. Click in the eye want and roll the mouse wheel for Adjusting the “L” color space,
Disclaimer: In no way am I an dropper icon in the “color picker”, a fine grained approach. It does just one click of the mouse may
expert in photo manipulation, I just and make sure “area” is selected. not have to be perfect. More-or- turn your image black. Think of it
know a guy who had a dog that Select an area and work diagonally less is good. Keep an eye on your as word-wrap in a text program.
gave me some fleas. I thought I left-to-right or right-to-left and histogram. You do not want it (Pay attention to your histogram as
may help you scratch an itch also. sample 4 areas. Remember to click cropping. you move your sliders). It will wrap
(Everything I do can be found here: on the word “add” to save your around as you move from one to
full circle magazine #1 50 20 contents ^
HOWTO - DARKTABLE
zero or zero to one. We want to can now drag your slider to see the trees on the right. Pay attention to edges.
separate the colors to heighten difference (bottom left). the fill side. Everything above this
the contrast, without making it line will now be edited. You can Now let us get a high-pass filter
look like it is fake. Remember this I have to make it clear that turn off “saturation” to get rid of going, where we boost the
will bleed into anything white, so there are many ways to skin a cat any color that may confuse the sharpness and contrast to 1 00%
be careful! in Darktable. This is not the only issue. I took my ‘radius’ up to 1 5 and apply it uniformly. Let us go to
way to do what we are doing, but it (mine was 1 0). Change your blend the “contrast, brightness,
Back to our current edit. is one way. This leaves us with the mode to “softlight” to apply the saturation” module and I changed
sky not quite blue and neither the changes. I urge you to use mine slightly to 0.06 contrast, -0.06
Open the local contrast river. Also we need the clouds to “hardlight” as well to see the brightness and 0.25 saturation.
module. Take a snapshot before ‘pop’, but not as garish as the difference. I brought my opacity This gives the ‘cold’ picture a more
you begin. Because of the lighting picture was on the website. To down to 75-85% . Collapse the low ‘warm’ feel. Now for the water. Go
situation, we made our picture make the clouds more ‘tangible’, pass and create a copied instance, to the “color correction” module
more uniform. We ended up with a let us use a low pass filter. this time changing the opacity to and create two drawn masks facing
bit of a white-wash. Time to fix between 50-60%. We want classy each other as before. Grab the
that. In my case I bring the detail Open your low pass filter, and clouds, not just lumps in the sky. centre point and drag it into the
up to about 1 50%, the highlights change the “blend mode” to You can even do it a third time, just blue. (or turquoise, whatever
down to about 50% and the “drawn mask”. This should be remember that the treetops are floats your boat). See image
shadows to about 1 50%. Again, familiar if you have been following also in this ‘band’. Keep an eye on bottom right.
you make yours as you see fit. along. This time, place your line that histogram, keeping it in the
Because you took a snapshot, you roughly on the top edge of the two centre, as we are feathering the Please let me reiterate, this is

full circle magazine #1 50 21 contents ^


HOWTO - DARKTABLE
not the “correct” way to do this, learned so far in this series.
but it teaches you the tools and
methods used in post-processing. Nowhere is anything set in
stone, feel free to experiment!
Now the sky. This will be your
homework with what you have Here is an edit vs. original:

full circle magazine #1 50 22 contents ^


H O W-TO
Written by Mark Crutch I n ks c a p e - P a rt 9 0
O ver the past few months
we’ve looked at ways to
dynamically modify your SVG
even though that technology still anything you could write for
doesn’t cover all the use-cases that yourself in JavaScript.
SMIL can handle.
If you were to load that file into
Inkscape, it should look like the
image below. The page boundary is
content when it’s running in a web So JS animation gives you a square of 1 00×1 00 units, as
browser, using JavaScript. By So we’re slightly stuck in limbo. flexibility, but at the expense of defined in the viewBox attribute.
making these changes over a SMIL offers huge power, but its performance. Most of the time The square itself is positioned with
period of time, we can effectively time may be short. CSS animation that won’t matter: the JavaScript its top left corner at 1 0 units down,
use JS to animate our SVG files. is less powerful, but widely engine in a modern browser is and 1 0 units across from the origin
supported. However with heavily optimised, so just moving (the top-left of the page in SVG).
We have looked at animation in JavaScript we can sort-of get the an element or two around the Remember these units are not
this series before: in part 75 we best of both worlds: as much screen isn’t likely to impose much pixels – the image will actually be
looked at some simple CSS power and flexibility as we need, in of a burden. But if you start to scaled to fit the available space in
animations, then in parts 76 and 77 a way that has excellent cross- animate a large number of objects, the browser window. By using a
we moved on to SMIL animation. browser support. especially on a mobile device, you 1 00×1 00 viewBox it can be
At the time I commented that SMIL might find that your animations convenient to think of the values
was something of a dead-end Of course things aren’t all rosy. aren’t as smooth as they could be as percentages, but in reality it’s
technology, largely due to When using SMIL or CSS with the other technologies. better to treat them as
Microsoft never implementing it in animations you essentially take a proportions or ratios, as that
any browser. But times have pretty hands-off approach to Enough of the pros and cons, on mental model works regardless of
changed, and Microsoft have things. Your input is a simple with the code! Once again we’ll do the viewBox size.
effectively given up on developing instruction: “Animate this object all this in the browser’s developer
their own browser engine: shortly from A to B, over 5 seconds”. You tools, so you’ll need a super simple We’re going to animate the “x”
Microsoft Edge will begin using the don’t need to work out how the SVG file to start with the code attribute from its starting value of
same engine as Chrome, so should position of the object changes shown below. 1 0 up to a value of 90. Because the
gain SMIL support as a side-effect. from one frame to the next, or square is 30 units wide, this will
Whether or not this is enough to worry about your animation
turn the tide for SMIL remains to imposing a heavy load on the <svg
be seen. Personally I think it’s a machine. Instead you simply let the xmlns="http://www.w3.org/2000/svg"
great technology for animating browser handle all the viewBox="0 0 100 100">
<rect id="s1" x="10" y="10" width="30" height="30"
SVG particularly, but the browser intermediate calculations – and the fill="red" />
vendors seem to have settled on browser’s code is a lot faster at </svg>
CSS animations as the way to go – handling those things than
full circle magazine #1 50 23 contents ^
HOWTO - INKSCAPE
var endX = 90;
var currentX = 0;
var delta = 10;

function moveSquare() {
if (currentX > endX) currentX = 0;
currentX = currentX + delta;
s1.setAttribute("x", currentX);
};

setTimeout(moveSquare, 2000);

will be good enough for our needs. 2s initial delay is up:


We’ve already seen the most basic
of these a few months ago, when setTimeout(moveSquare, 2000);
we used setTimeout() to turn some setTimeout(moveSquare,
setTimeout(moveSquare, 2200);
2100);

traffic lights on and off in setTimeout(moveSquare, 2300);


leave it hanging off the right-hand then in the developer console sequence. The following (shown setTimeout(moveSquare, 2400);
side of the screen when the (F1 2) we’ll get a handle to it above) will shift the square over,
setTimeout(moveSquare, 2500);
animation finishes. I’ve done this assigned to a variable for use later after a delay of 2000ms (2
to demonstrate a key difference on. Well I don’t think Pixar has got
seconds). anything to worry about, but it’s
between animating the content of
an SVG file, and animating a <div> var s1 = definitely animated. Creating a
document.querySelector("#s1") Notice what we did there? long list of setTimeout() calls isn’t
or other box in an HTML page: in Instead of just setting the
the latter case the page width will
;
great though. Fortunately
attribute directly I’ve created a JavaScript has a related function,
grow and a horizontal scroll bar As a reminder, here’s how we global variable (“currentX”), then
will appear (unless you specifically setInterval(), which does the same
can change the x coordinate using added 1 0 to it before we use the thing as an infinite list of
prevent that behaviour). With an JS. Run it to confirm that the box computed result. I also have an “if” setTimeout() calls. It returns a
SVG file, anything outside the shifts over a little. statement to set the value back to unique number that can be used
viewBox simply isn’t rendered, zero if it gets too big, ensuring the with the clearInterval() method to
making it easier to have s1.setAttribute("x", 20); square doesn’t keep moving to
animations that start or end ‘off- stop the process when you’re
infinity. How does this help us to bored with looking at a jerkily
screen’. Think of it a little like a Essentially our animation will create an animation? Now we can
theatre stage, with your props and consist of running a line like this moving square.
call that function repeatedly to
characters moving to and from the repeatedly. JavaScript is a pretty make the square move by 1 0 units var i =
wings. poor language for timing-sensitive each time. Copy and paste the setInterval(moveSquare, 100);
tasks such as this, but it does offer following lines as a single block, to
Load that file into your browser a few rudimentary functions that make sure they all run before the
full circle magazine #1 50 24 contents ^
HOWTO - INKSCAPE
// Some time later… support for technologies needed
clearInterval(i);
to run games – 2D bitmap Var endX = 90;
var currentX = 10;
canvases, 3D graphics and a little function animSquare() {
Now that we don’t have to type thing called if (currentX <= endX) {
a setTimeout() function for every requestAnimationFrame(). In case currentX = currentX + 1;
frame of our animation, we can the name didn’t give it away, this
s1.setAttribute("x", currentX);
requestAnimationFrame(animSquare);
make things move a little more function is intended to make }
smoothly by reducing the delta, animation a little easier. };
and reducing the time between Specifically it does so by calling a
function calls accordingly: function just before the browser is // Start the animation running
requestAnimationFrame(animSquare);
var delta = 1; about to display the next frame on
var i = screen (typically about 60 times what we can do is to call Now we’ve got an animation
setInterval(moveSquare, 10); per second). It’s like a setTimeout() requestAnimationFrame() again running, but we don’t really have
// Some time later… where the delay is automatically from inside the animation function. any control over it. The duration of
clearInterval(i); set to to an optimal value by the the animation will depend on how
browser. We’ll create a different frequently
Still a bit fast for you? Increase animation function (shown above) requestAnimationFrame() fires in
the delay in the setInterval() call. In human terms 1 /60 of a for this next example. It’s similar to your browser, and all we can do is
Not fast enough? You can reduce second is a pretty short delay, so to the previous one, except that it change “+ 1 ” to a different value to
the delay further, but browsers test this in the console you will always moves the square by 1 unit, make the square move more or
clamp setTimeout() and probably want to increate the and stops when it reaches the less on each iteration. But really
setInterval() to a lower limit, so it “delta” variable again, so that it’s right-hand side, rather than that’s all we need to be able to do.
probably won’t have much effect. more obvious that your square looping back round. This latter So long as we know the exact time
Instead you can increase the delta moves. change is mainly so that the code that the function is called, we can
value so the square moves two or doesn’t keep running indefinitely, calculate how far into the
three units at a time. Or 4.25 if you var delta = 10;
otherwise it gets a bit tricky to animation we are, and therefore
want – neither JS nor SVG require requestAnimationFrame(moveSqu proceed with the rest of this what position the square should be
everything to be integers. are);
tutorial. Notice that we call at. To achieve this, the function
requestAnimationFrame() to start that is called by
For a long time setTimeout() Now you might be expecting the function running, but we also getAnimationFrame() receives a
and setInterval() were the only me to introduce an equivalent call this from within the “if” block, single parameter: a high-resolution
practical way to run some animation function to setInterval(), firing off another trip to our timestamp.
JavaScript at the sort of regular but I’m afraid I’ll have to disappoint animation function just before the
intervals needed for animation. you. There’s no function that will next frame is rendered. Let’s work on a practical
Over the past few years, however, repeatedly run a function just example: suppose we want our
browsers have gained more before each frame is redrawn. But
full circle magazine #1 50 25 contents ^
HOWTO - INKSCAPE
animation to take 1 0 seconds. At Let’s start by initialising a few the next frame, then exit. On calculate the new X position for
60 frames per second that’s about variables. We’ll create a variable to subsequent calls, the startTime is that moment in time. Code is
600 movements our square will hold our starting position, setting no longer “undefined” so this part shown below.
make, each of them a fraction of a it to 1 0. Next we have a “duration” of the function is skipped entirely.
unit. We could divide the total (in milliseconds) to hold the time Running this should produce a
distance by 600 to calculate the we want our animation to run for, By storing the initial timestamp smooth animation that takes 1 0s
exact amount of movement, but and “endX” for the X coordinate outside the function, we can to complete. Re-run the previous
that will fail if we run the code on we want to end up with. Putting calculate how long the animation block of “var” lines to reset
something that refreshes at 30 or these into variables makes it easier has been running. Since the two everything, then the final
1 20 frames per second, or if some to modify the animation to run at a timestamps are in milliseconds, requestAnimationFrame() call to
frames get dropped due to the different speed or cover a we’ll divide the result by 1 000 to kick it off again. Try changing the
load on the machine. A better idea different distance. Finally we’ll convert it to seconds. Since we values in the variables to alter the
is to track how long has passed include a “startTime” variable, with know the total time for the distance the square moves, or the
since the start of the animation, an “undefined” value initially, into animation, a quick division will give time it takes to perform the
and use that to calculate where which we’ll store a copy of the the proportion of the animation animation. In every case you
the object should be. We can then timestamp we receive the first that has passed: we can then should find that the animation is, if
set the coordinates to the new time our animation code is called. multiply that value by the total not smooth, at least a lot
value, before we fire off another distance to travel in order to smoother than you saw with
requestAnimationFrame() for the var startX = 10
next step in the animation. var endX = 90; function animSquare(ts) {
var currentX = 0; if (startTime === undefined) {
var duration = 10; startTime = ts;
The parameter that gets passed var startTime = undefined; requestAnimationFrame(animSquare);
to our function is a value in return;
milliseconds since the document Now for our reworked }
was loaded. We don’t really care animation function. The main
about that specific point in time – animation code is fairly similar to var runningTime = (ts - startTime) / 1000;
var proportion = runningTime / duration;
we need to know how long the the previous incarnation, except
animation itself has been running. that we work with the timestamp
What we need to do, therefore, is that is passed to the function in if (currentX <= endX) {
currentX = startX + (endX * proportion);
to record the timestamp the first order to calculate the new X value. s1.setAttribute("x", currentX);
time our function is called. On The first time the function is called requestAnimationFrame(animSquare);
subsequent calls we can subtract we don’t need to update the X };
}
that value from the latest coordinate – by definition we’re at
timestamp to work out how far the start of the animation – so we
along the animation timeline we just store the current timestamp, // Start the animation running
requestAnimationFrame(animSquare);
have progressed. then queue up another call before
full circle magazine #1 50 26 contents ^
HOWTO - INKSCAPE
setTimeout() and setInterval().
s1.animProperties = {
attribute: "x",
Creating all these variables start: 10,
outside a function (so-called end: 90,
“global” variables) is generally current: 0,
duration: 10,
seen as bad form in the startTime: undefined
programming world. It also makes }
it tricky to animate more than one function animSquare(ts) {
thing, as they’ll all potentially be props = s1.animProperties;
sharing the same global variables.
if (props.startTime === undefined) {
A better approach is to props.startTime = ts;
encapsulate all the variables in a requestAnimationFrame(animSquare);
single JavaScript object, then }
return;
attach that to the SVG element
you’re trying to manipulate. Here’s var runningTime = (ts - props.startTime) / 1000;
the code above rewritten to work var proportion = runningTime / props.duration;
in this way (shown right). if (props.current <= props.end) {
props.current = props.start + (props.end * proportion);
Notice that I’ve removed the s1.setAttribute(props.attribute, props.current);
requestAnimationFrame(animSquare);
“X” from the end of the parameter }
names, and created a new };
“attribute” entry with a value of // Start the animation running
“x”. This starts to make the code requestAnimationFrame(animSquare);
more generic: you could change
the “x” to a “y” in order to animate to move at an angle, for example. referred to as an “easing function”, can also be put to work to achieve
movement in the vertical direction, I’ll leave it as a challenge for the is well outside the scope of this continuous effects.
or “r” to animate the radius of a reader to implement this. series. That alone is a good reason
circle. why CSS animation, SMIL, and
At the moment our animation is third-party animation libraries are
For a truly generic solution you also strictly linear: the attributes usually a better option than rolling
could turn this JS object into an are changed at a constant rate over your own JS animations from
array of objects. The animation Mark uses Inkscape to create three
time. More “natural” animation can scratch. But for simple animations, webcomics, 'The Greys', 'Monsters,
code would loop over each entry in be achieved with rates that vary – or just your own education, it’s Inked' and 'Elvie', which can all be
the array, allowing you to animate accelerating and decelerating over good to see how the same code found at
more than one attribute at a time – the course of the movement. The you might use to dynamically http://www.peppertop.com/
essential if you want your images maths to produce such effects, modify your SVG in discrete steps,
full circle magazine #1 50 27 contents ^
by: ErikTheUnready

full circle magazine #1 50 28 contents ^


L I N U X L O O P B AC K
Written by S. J. Webb

MAYBE NEXT MONTH

SJ Webb is a researcher coordinator.


When he is not working, he enjoys
time with his wife and kids. He
thanks Mike Ferarri for his
mentorship.

full circle magazine #1 50 29 contents ^


E V E R YD A Y U B U N T U
Written by Richard Adams H e lp P t . 4
W e’re back to finish our series
on Linux Help this month.
shame; it looks like it could have
been interesting (although that
application name has got to go).
However, KRecipes has been
unmaintained for some time now
(since 201 6), and promised
saved. The interface also looks a
good deal different:

KDE AND KRECIPE Also, if you run any applications in


the current version of KDE’s
documentation seems to have
never been completed.
D ISAPPOINTMENTS Plasma desktop environment that
set their own resolution that is I posted to the KDE forum to
As detailed last month, one of different from your desktop request help for the issues I’ve had
the things I use a computer for is resolution (a LOT of games do with KRecipes (refer back to last
recipe management. Linux has a this), once the application is done month’s Everyday Ubuntu for
recipe manager that is part of the and exits back to KDE, all your details, but the short version is it
K Desktop Environment, or KDE – desktop icons will be resized, or won’t save pictures or
the KRECIPES application. rearranged, or both. This seems to instructions). I won’t reproduce the
Although I hate to criticize, me to be symptomatic of very poor single response I got, but the
especially on something that’s testing and quality control. I feel honest truth is that it was not at all As compared to how it looks in
FREE, I actually switched away that this is pretty fundamental helpful. When requesting help in Unity (although this is the ‘add
from KDE (I prefer the look and desktop functionality. Linux, we should all be mindful new recipe’ function, so you can
feel of to both GNOME and Unity), Unfortunately, KRecipes is a part that any help we get is see the instructions it refuses to
because it seems to have some of what I see as KDE’s software volunteered, so sometimes you save – you can still see the
serious deficiencies. These include management problem. just get what you paid for. If difference in the interface):
what I perceive to be some poor anyone is interested to see the
testing and business analysis, I firmly believe that recipe question I posted and the single
particularly in regards to the KDE management is an important response, it can be found here:
project’s product management. practical use of a computer. As a https://forum.kde.org/viewtopic.p
diabetic, cooking for myself can be hp?f=22&t=1 61 843&p=420596#p4
For two examples, there seems very helpful in managing my diet 20596.
to have been minimal and my blood sugar levels, but I do
development and virtually no also think knowing how to cook is Strangely, I pulled out my old
documentation of Calligra an important life skill that Kubuntu cloudbook (which I set
Braindump, a whiteboarding everyone should have, at least to aside due to the broken Plasma
application that is part of Calligra some degree, and the computer is desktop), and pictures still don’t
Office, the successor to KOffice. A a natural tool to help with this. work, but at least instructions are
full circle magazine #1 50 30 contents ^
EVERYDAY UBUNTU
As a former business analyst who evidently final) version. Feedback
Just for further comparison to
the interface under KDE, here’s the dealt with similar testing concerns is, as always, welcomed at WHAT D O YOU REALLY
main recipe interface in the Unity during my career, I can tell you that acer1 1 kubuntu@gmail.com. WANT TO D O?
desktop after adding everything. I, and my teams, were frequently
Note the lack of instructions even so overtasked that it was
practically impossible to test
ALTERNATIVES? KRecipes had some capabilities
I would have liked, but the
after typing in and saving them:
things effectively and thoroughly, A little research showed some unvarnished truth is: Nothing that
but it’s no less disappointing that possible alternatives to KRecipes. was crucial. So, we’re going to use
this is apparently where we often One is Gourmet Recipe Manager, the tools we have available in a
are today when it comes to which I installed using Synaptic ‘stock’ Ubuntu setup: File
software development. Thorough Package Manager. Sadly, it fails management and LibreWriter. We
testing is apparently no longer more epically than KRecipes, as it can use our file system as a flat file
regarded as a priority in many crashes immediately upon database of sorts, and use
organizations, and that’s a shame launching with no error message LibreWriter to generate our
(climbing down from soapbox and generates no error log that I individual recipes.
now...). could locate, so I have no idea how
to even start troubleshooting the B UTTERMILK B ISCUITS FOR
CHALLENGE TO THE issue with it. Hopefully, maybe TWO
In the KDE screenshot, it’s
READERS readers here can install and use it
successfully, but I could not. Other Here’s the recipe from last time
cutting off the recipe title at the Since I could not get help on alternatives (with a tip of the hat that I adapted from one I found on
top due to the cloudbook’s this issue or find anything with to Full Circle’s own Q&A columnist YouTube, on Ken Click’s channel.
resolution. For the record, this is Google searches, I’d like to throw ErikTheUnready for this list) Check out Ken’s YouTube channel
my simple recipe for homemade this issue out to the readers here: include: at
marinara sauce. Does anyone know if there are • Gnome recipes https://www.youtube.com/channel
parameters to get KRecipes to • Kookbook /UC4bgbP1 BW74_DE8loU45i6Q.
I suppose that the KRecipe accept and save pictures properly • AnyMeal Ken also kindly granted permission
application simply runs differently (I’m guessing they may have to be • Taco recipe manager to use not only the recipe in
(better, apparently) in the desktop a certain size in pixel height and • PHPrecipebook Everyday Ubuntu, but also to use
environment it was actually width, but could not confirm), or his biscuit thumbnail picture. So,
designed for, but that’s actually a why it won’t save instructions I still could not get any of these here is the adapted recipe again
condemnation – it absolutely properly? For the record, I’m using to install or work properly. This is (you can find Ken’s original, that
should have also been tested Ubuntu 1 6.1 0 64-bit, Unity as the where you sometimes have to find uses whole milk, on YouTube at
properly in Unity and in GNOME. desktop environment, and alternate ways to get to your https://www.youtube.com/watch?v
Apparently, that was not the case. KRecipes 2.1 .0, the latest (and desired end result. =wy_dqphsakU):
full circle magazine #1 50 31 contents ^
EVERYDAY UBUNTU
Buttermilk Biscuits for Two That said, some folding is screen by default on Unity), and Let’s create a ‘bread’ folder
necessary to make the biscuits search for ‘Files’. That should be under the existing Recipes folder
Ingredients: come out flaky. sufficient to bring up your File that I created earlier (you can
• Just over 1 cup all purpose flour • Cut the rolled out dough into four Manager. In most cases, you can create your Recipes folder the
• 1 /2 teaspoon sugar or five equal portions, roll each also just click the icon on the same way we’re creating the
• 1 1 /2 teaspoons baking powder into a ball and flatten until about 1 Launcher that looks like a file ‘bread’ subfolder). In the File
• 1 /4 teaspoon salt to 1 ½ inches thick. drawer, it will usually be the Manager, click the ‘hamburger’
• 3 tablespoons cold salted butter • Put into a pan sprayed with non- second from the top: menu in the top right and select
• A little under 1 /2 cup buttermilk stick cooking spray and place in a ‘New Folder’, then type in the
preheated 400 degree oven for 1 0- folder name ‘Bread’. Simple, but
Instructions: 1 2 minutes, until lightly browned. effective.
• Mix all dry ingredients with a wire
Yield: Four to five biscuits
whisk.
• Cut 3 tbsp COLD butter into small
CREATING THE RECIPE
pieces and incorporate into dry And here is Ken’s thumbnail D OCUMENT
ingredients. This can be done by picture of his tasty biscuits:
fingers, fork, or pastry cutter. Similarly, creating the recipe
Incorporate butter thoroughly document is quite simple. Go back
until mixture is uniform, with a
texture like wet sand.
• Make a well in the center and add
a little less than a half cup of
buttermilk. Slowly and gently start
pulling flour into center with a
wooden spoon or a spatula.
Continue until all flour is ADDING A N EW RECIPE
incorporated.
• Turn onto a well-floured surface, Okay, so now let’s set up our
dust dough ball with flour, and file structure. I put my recipes in a
flatten out with hands or rolling folder within the existing
pin. documents folder in the Home
• Fold over halfway, rotate a half- location. Invoke the File Manager
turn, and fold over again, re- by going to the Dash (top icon in
flatten. Repeat about 4 or 5 times, the Launcher, the icon tray that
but do not overwork the dough. runs down the left side of the
full circle magazine #1 50 32 contents ^
EVERYDAY UBUNTU
to the Dash and type in ‘write’, going to use Ken Click’s thumbnail Now, simply type in or copy and
which should be sufficient to that I have already downloaded to paste the text for the ingredients
locate LibreOffice Writer (unless the Recipes folder. In Writer, go to and instructions, then go to the
you already have it as a desktop Insert – Image, then navigate to File menu, select Save As, and
shortcut, which I recommend, or your image file and double-click it navigate to your ‘Bread’ subfolder
on the Launcher, which is also a to insert it. Alternatively, you can under ‘Recipes’ and save the
good idea). Launch Writer and put web search and find the desired document. Done! Again, simple,
a title at the top. image, right click it in your browser but effective. I’ve actually been
and select Copy Image. Then, in using this minimalist, but quite
I like to Google for images that Writer, position your cursor where functional, approach to recipe
illustrate whatever the dish is. For you want the image and right click, management for literally decades
illustration purposes here, I’m then do a Paste. now, and it does get the job done
fairly effectively.
And a HAPPY 1 50th ISSUE to
Ronnie and the rest of the Full
Circle staff!

Next month: Another


installment in our ongoing Retro
Gaming series, just to cleanse the
palate (in a manner of speaking). Richard 'Flash' Adams spent about
Prepare to meet your (Chocolate) 20 years in corporate IT. He lives in
Doom! rural northwest Georgia, USA, with
his adopted 'son', a cockatiel named
Baby.
full circle magazine #1 50 33 contents ^
U B P O R T S D E VI C E S
Written by UBports Team

W e were calling this a "small


release" originally. Our plan
was to cover the backlog of pull
layout for the refined OSK user.
The PR included fixes to allow
multiple keyboard layouts to share
embeds Qt's integration of
Chromium, QtWebEngine. This
allows us to focus on making the
PUSH NOTIFICATIONS FOR
ALL
requests that weren't quite ready the same correction dictionary and browser itself rather than its
for OTA-1 0. It turns out, that made word overrides. Huge thanks, engine. Ubuntu Touch has provided a
this "small" update not small at all. zoenb! battery-friendly push notification
Chris changed about 4,000 lines service since before we maintained
YOUR KEYBOARD, NOW Rounding off the updates to of code (not counting the gettext it. However, some users did not
the keyboard are improvements to translation files) to bring us the know that the service required
SMARTER the Polish layout, removing some Domain Permissions model. This them to log in with an Ubuntu One
diacritics that are not used in the adds some important features that account before their device would
Kugi has outdone himself this language (Thanks, were previously missing: register. This made sense when
time. With this update you'll find a Daniel20000522!); the same users had to sign in to Ubuntu One
new way to edit text via the treatment for the French-Swiss Page zoom level is now saved in order to install apps, but it had
Ubuntu Touch on-screen keyboard: layout (Thanks, wilfridd!); and a per-site rather than per-tab become more than a little strange
the Advanced Text Functions. tweak to the Japanese layout so lately.
Using this feature, you can move that it respects your settings Users may set "Always allow" or
around your typed text, undo and better (Thanks, Fuseteam!). If "Always deny" on location access To fix this, Rodney removed the
redo actions, move around a text you'd like to get in on the per-site account requirement from the
selection rectangle, and use the keyboard-improving action, Tallero client and server. Now all devices
cut/copy/paste commands, all added instructions for building and Sites may launch other apps via will be able to receive notifications
from the same overlay. To get testing the keyboard to its Readme custom URL handlers, such as tel:// for apps which support the service.
started, press and hold the at to launch the dialer with a number
spacebar! https://github.com/ubports/keybo pre-filled. AND MORE
ard-component.
We are still unsure about the Users may blacklist access to There are many more changes
discoverability of this feature, so
stay tuned for changes that will I T BROWSES BETTER certain sites or block access to all
but their choice of whitelisted
included in this release that can't
quite merit their own section, but
make it even easier to find and use! It wouldn't be an Ubuntu Touch sites. deserve to be mentioned.
This update also adds the release post without a section
dedicated to our in-house Morph Ratchanan and Alfred made
option of a Dvorak keyboard Browser. Morph is a project which some huge changes that facilitate
full circle magazine #1 50 34 contents ^
UBPORTS DEVICES
more hardware on devices that we've been working on since the
shipped with Android 7.1 . We've beginning of the year. OTA-1 2 will
merged many hooks for audio deliver Mir 1 .x and Canonical's last
support, especially for calls. Nexus version of Unity8 to the stable
5 users will be very happy to learn channel.
that we've narrowed down and
fixed a problem that would cause As the Mir+Unity8 upgrade
the Wi-Fi and Bluetooth hardware project shows, this was by no
to lock up from time to time, usingmeans a small task. With well over
a ton of CPU and battery. fifty tickets and many more
problems that weren't officially
Multiple contributors have been filed solved, we feel that we are
investigating issues related to ready to share this work with
MMS support on Ubuntu Touch. In everyone.
particular, Raphaël and parksjr
fixed issues with the display and We'll start the process of
management of MMS messages. merging the changes to various
Others have been looking into repositories the week after this
issues around receiving MMS release. This process will likely take
messages. a while, and during this time no
updates to the devel or rc channels
We'd like to extend a huge will be made available. Once we've
thanks to everyone who helped got things stabilized again, builds
make this release possible as our will continue.
effort continues to be split
between the "normal" release
channels and the "Edge" channel.
That division of our energies will
come to an end soon. We'll talk
more about that in the release
announcement.

WHAT' S NEXT
It's finally time to share what
full circle magazine #1 50 35 contents ^
by: ErikTheUnready

full circle magazine #1 50 36 contents ^


M Y S TO RY
Written by Erik

A while back I had a daily three-


hour commute, so I decided to
learn another language. My cousin
my (t)rusty Linux laptop to help me
on my way, with the excellent
flashcard program Anki. At first,
Pressing ctrl+u and the hex code,
also did nothing. I did not want to
go through all of setxkbmap
changed languages, et cetera, but
to no avail. I looked at my keyboard
again in the layout display, and
moved to Split for work, but the Anki may not look like much, and options, poking and prodding here that is when I saw it! Somehow, I
resources for Croatian were a bit the translation in the local and there. How could I know the had gotten so lazy with the easy
limited. One of my friends then vernacular is poor at best, but it is UTF-8 and UTF-1 6 encoding for a installation of Linux, that I had the
moved to Quebec and that seemed actually very quick to set up. It is character, but fail to type it on my installer choose my keyboard. I
to seal the deal for me. I have an also very simple to use. My first own computer? What did I do noticed English (US). Choosing
old PowerPC Mac lying about, so I hiccup came trying to add a letter wrong? I knew! Since I was using English (Intl) brought back all my
signed up for ¨coffee-break with a cedilla. (Under greetings, XFCE, it had to be XFCE´s fault. special keys with a simple right-alt
French¨ on iTunes. (It was horrible ‘how are you’, in French). The last Prodding around with XFCE and its key press. (Lesson learnt with
by the way). I figured (wrongly) time I needed to do this was in related forums, I ended up where I blindly pressing next).
that if one could learn something Ubuntu single digits, when I could started. Modifier key... Maybe it
in a coffee-break, I would string all use the control key (alt key?) to was because I did a minimal install? This made everything easy
those coffee-breaks together in my modify letters when typing. I I suppose there was no option but again. I could whiz in and out of
commute. Gzip all those short looked at the keyboard layout and to go fetch the terminal and sudo. text files or Anki with umlauts and
tutorials into one commute zip file. options, but could not find the (Admit it, you always get those two whatnot. This made me hungry for
Initially, the going was tough. option for the modifier key. The when there is a problem to be learning more, and I actually found
French seemed to be related to typing options now contained only handled). that the other European languages
English, but English was not my ‘switch to previous or next input have sentence construction similar
first language. I signed up for a source’. Disappointed, I installed Luckily, I had an issue with an to the local vernacular. Now I am
few other French podcasts, but the character map and was even accounting program on a few learning ten new languages with
listening to French people babble more disappointed to find the keys Windows PCs just then and had to the help of open source tools and
is weird to say the least. (No do not have shortcuts listed. modify the regional settings for enjoying it immensely. I really wish
offence intended, our French Clicking the needed character, then each of them. Then I got so busy I could have discovered this thirty
translation team do an excellent clicking copy, then pasting it into a that day, I did nothing further on years earlier. Mistakes will be
job!). However, it is not a way to text box, makes it really tedious the Linux machine. When I got made. Just be prepared to walk
learn. work. - Hey, I am lazy, I like to work home, I decided to do it all over on away from the problem to get a
smarter, not harder. my home PC to check if I can see fresh perspective. I have lots of
The good thing was, there where I made my mistake. My problems, but Linux is not one of
seemed to be lots of other Again, pointing to a modifier home PC is a Solus install. The them.
resources on the internet. I have key was no longer an option. regional settings came to mind. I
full circle magazine #1 50 37 contents ^
H O W-TO
Written by Ronnie Tucker W ri t e F o r F u l l C i rc l e M a g a z i n e
G UIDELINES • Images should be JPG, no wider REVIEWS
T
than 800 pixels, and use low
he single rule for an article is compression.
that it must somehow be G AMES/APPLICATIONS
linked to Ubuntu or one of the • Do not use tables or any type of When reviewing games/applications please state clearly:
many derivatives of Ubuntu bold or italic formatting.
(Kubuntu, Xubuntu, Lubuntu, etc). • title of the game
• who makes the game
• is it free, or a paid download?
RULES If you are writing a review,
please follow these guidelines : • where to get it from (give download/homepage URL)
• is it Linux native, or did you use Wine?
• There is no word limit for articles, • your marks out of five
but be advised that long articles • a summary with positive and negative points
may be split across several issues. When you are ready to submit
your article please email it to:
• For advice, please refer to the articles@fullcirclemagazine.org H ARDWARE
Official Full Circle Style Guide : When reviewing hardware please state clearly:
http://bit.ly/fcmwriting TRANSLATIONS • make and model of the hardware
• Write your article in whichever If you would like to translate • what category would you put this hardware into?
software you choose, I would Full Circle into your native • any glitches that you may have had while using the hardware?
recommend LibreOffice, but most language please send an email to • easy to get the hardware working in Linux?
importantly - PLEASE SPELL AND ronnie@fullcirclemagazine.org and • did you have to use Windows drivers?
GRAMMAR CHECK IT! we will either put you in touch with • marks out of five
an existing team, or give you • a summary with positive and negative points
• In your article, please indicate access to the raw text to translate
where you would like a particular from. With a completed PDF, you
image to be placed by indicating
the image name in a new
will be able to upload your file to You don't need to be an expert to write an
the main Full Circle site.
paragraph or by embedding the article - write about the games, applications
image in the ODT (Open Office) and hardware that you use every day.
document.
full circle magazine #1 50 38 contents ^
B O O K R E VI E W
Written by Erik D e ve l o p i n g G a m e s O n T h e R a s p . P i
environment, and then develop a for Wellington? Is it a shout out to from another distribution, though.
game with Lua, a popular scripting the author’s hometown? Why every
language used in major game chapter? Le Sigh. The first two chapters hold your
frameworks like Unreal Engine hand and walk you through the
(BioShock Infinite), CryEngine (Far So you got yourself a Raspberry setup that you would need to
Cry series), Diesel (Payday: The Pi computer, and you are not sure follow along. (I think I will stick to
Heist), Silent Storm Engine (Heroes where to start? I would be Ubuntu Mate on my Raspberry Pi,
of Might and Magic V) and many screaming and pointing, here! thank you!). At chapter three, you
others. More importantly, learn Here! HERE!! are introduced to the project you
how to dig deeper into are about to make. Then you just
programming languages to find The book gets you to install get to dive in! Awesome. There is
and understand new functions, fedberry, boo... hiss... but it is no horsing around with definitions
frameworks, and languages to understandable as the author is and pointless examples, everything
utilize in your games.” from the Redhat stable. This does is task focussed, and you learn
not mean you cannot follow along without realising it. You get to see
Seth Kenlon is one of those
behind-the-scenes guys who do
great work. I won’t say any more
about him as I have linked his home
Developing Games on the page. (Really go have a look! You
Raspberry Pi will be surprised).
Author: Seth Kenlon
Website:
https://www.apress.com/gp/book/
THE BOOK
9781 484241 691 This book has homework! :)
Price: $32.99
Author’s Website: This book assumes you are a
http://seth.kenlon.com/ N00B.

T
I have not figured out why each
he waffle: “Learn to set up a Pi- chapter starts with Wellington,
based game development New Zealand. Was it written in or
full circle magazine #1 50 39 contents ^
REVIEW
the author’s thinking and thought out, well executed. You
reasoning through his drawings. cannot fault a book with this much
Not all of it is hand-drawn though, information and crystal clear
there are full color pictures explanations. Support this author,
throughout. we need more like him. Hand over
your hard earned savings, this is
I do not think it would be fair to worth it. (A little expensive locally,
do a chapter-by-chapter look at about 600 bucks, but it can be
this book as it is literally bristling purchased online). That would be
with information. Pick it up; it is my only peeve. The price puts it
hard to put down; you have that out of reach of most learners and
“one more page” feeling that you students. Hopefully the libraries
get in a non-fiction book, which is will get this soon.
an achievement in itself. Needless
to say, this book really covers The only reason this book gets
everything you would need to 4 ½ stars is because of the steep
make games with Lua on your price. ($7 more and it would get 4).
Raspberry Pi. Colors, color
palettes, GIMP, UI Design. Really,
this is a comprehensive book. (I
feel like I should be using
exclamation marks after every
sentence!).
You need to know about Git?
Well, that’s in here too. Need to
make music for your game with
open source tools? Well... that’s in
here too! I can not explain how
well rounded this book feels.
Everything is explained clearly, and Erik has been in IT for 30+ years. He
at no stage do you feel left behind. has seen technology come and go.
It was written with someone From repairing washing machine
greedy to learn in mind. I can sized hard drives with multimeters
and oscilloscopes, laying cable, to
recommend this book to anyone scaling 3G towers, he's done it.
and everyone. Well written, well
full circle magazine #1 50 40 contents ^
R E VI E W
Written by Jason M B o d h i Li n u x
W ith each new review, I am
trying to add something
that refines the review itself. If you
Many Linux people seem to think
of it as an “up and coming Distro”
[like Elementary Linux, which is
(quotes from their site will be in
italics):
Minimum Requirements:
As you can see, Bodhi is
lightweight. It has both a 32-bit
and 64-bit version so it can run
have ideas, or requests for a Distro next on my list]. After playing 500MHz processor even on older hardware! They
to be reviewed, please let me around with Bodhi, I can see why it 256MB of RAM definitely get points for that –
know. has that label! 5GB of drive space because many mainstream/well-
Recommended: known Distros have [or are in the
Even though I have screenshots Let’s look first at what the 1 .0GHz processor process of] stopped releasing 32
that show my laptop specs, I am developers say the minimum specs 51 2MB of RAM bit versions.
including them in the text just in required are as per the website 1 0GB of drive space
case the pictures lose resolution
when enlarging them, or if you are
reading a text only version of this
review.
So my specs:
Presario CQ56 Notebook PC 058D
64 bit AMD v1 40 CPU running at
2.3 GHz
AMD/ATI Radeon HD 4225
[integrated] graphics
4 Gigs of Ram
Remember I ran this test by live
booting a USB flash drive and not
by doing a minimal or full install.
Now saying all that, my intro, and
my laptop specs, let’s get to my
review – shall we?
I was pretty excited about
giving Bodhi Linux a test drive.
full circle magazine #1 50 41 contents ^
REVIEW - BODHI LINUX
Bodhi has a smaller team of Once I had it working and was You see a category, then under keybindings, and ran into issues
developers than many mainstream online, I noticed that there was no that are settings applicable to said there too. Yes, there were options,
Distros, but, from what I can tell, indicator showing that I was online category, then under that is the many of them that you could scroll
they seem to be growing. That in the status/taskbar. What was next category. Moksha used a through, but not many seemed to
should increase their updates and worse is that I couldn’t find an horizontal setup for each category, actually work. Granted, I didn’t
features, in theory at least. indicator for wifi or network at all. and a vertical for things in said have time to really dive into that,
To me that was a huge downside. I category. and I’d assume this or that
Their windows manager is don’t get into the indicator command for this or that
called moksha desktop [their own overload that some people do, but The real issue I found was some keybinding maybe conflicted with
make or fork of enlightenment 1 7, I like the time, network, and a categories seemed to make no an existing one. Yet I also never
as the team didn’t like the changes logout menu, in my bar, yet sense. Even worse, some options in got a notice saying as much, so
put forth in E-1 8]. Reading their Moksha didn’t seem to want to let categories made little sense. After maybe not?
website, it seems they consider me see I was online. [Granted, I tinkering and searching
Moksha as part windows manager could always install a program like DuckDuckGo, I found answers, but Okay, so my worst complaints
and part desktop environment Conky and place a widget on my why not call a dock a dock, or even are now done, let’s talk about
[DE]. The idea here seems to be desktop, but for these reviews I taskbar, like most other Distros do? some of the good points, shall we?
simplicity. That is good for older don’t like installing non-default They call it a “shelf” which is fine – The default theme is easy on the
hardware, but I found it a little too programs if I can help it]. they want something all their own– eyes and looks really slick! The
simple, restrictive almost. but I feel they should have kept colors compliment each other
Let’s go back to the settings some things with convention for nicely, and the look and feel flows
I had to search for the settings manager for a moment. As I said, it new users. together very well! Moksha has
to enable my wifi. It was a was scattered, clunky even. Most “built in” compositing which allows
supported chip but still took some settings use a vertical hierarchy. I tried to change some for fancy, smooth graphics and
tinkering to get it enabled and looks – while still being light on
working. The reason it took some resources. They really did a nice
work, was the settings manager job with this department, as good
seemed scattered to me. as LXQT has done [see my Lubuntu
review for my thoughts on that].
After digging around, I found it
and enabled my wifi; yet once I got A nice feature is the left-click
the chip “on”, I still had to manually menu on the desktop. It’s
give it my network name as it powerful! The initial options are
didn’t scan or show any local standard, but the nicest aspect is
networks [there are many the favorites menu that gets
networks in and near my house]. populated as you use apps. To pull
up that menu, you use a left-click
full circle magazine #1 50 42 contents ^
REVIEW - BODHI LINUX
instead of right. That provides a same time, playing music in my were pretty standard. A browser, course the command line! Snap
quick-launch functionality for your browser, moving my mouse, etc. LibreOffice, photo viewer, and file and Flatpak support can be easily
most-used apps. If you are using an Yet it was hard to get it to lock up. manager. No media player though, enabled as well.
external mouse, and if you center- Hard but not impossible. Playing so I couldn’t test MP3 or MP4
click [click the mouse wheel], it media put a little drag, but then support. I felt that they could have While there were things that I
pulls up a windows menu. So three again that is no real surprise. included a few more apps and still really didn’t like in Bodhi, overall I
menus in one – sort of. Nicely done Opening photos and ODTs and maintained their lightweight was okay with it. I can definitely
indeed! PDFs, and launching my browser, status. tell what their goals are, and they
caused no discernible lag. Knowing are making progress towards said
I mentioned how Bodhi is “light the developers aim for lightweight, Being built on Ubuntu, which is goals. If I had old hardware, and or
on resources”. Out of my 5 reviews I think they really succeeded! built on Debian, Bodhi uses the a 32-bit machine, I would consider
thus far, Bodhi comes in 1 st place “apt” package manager. Their Bodhi. On more modern hardware
for resource use. I tried to lock it There was only a small selection AppCenter didn’t impress me. But though, I probably would give it a
up, opening various apps at the of apps included. But the apps there was also Synaptic and of pass in favor of a more mature
Distro, with more options. That
being said, it’s not a bad Distro by
any means. It is eloquent and
resource friendly, which are both
good things!
If you’d like to give Bodhi Linux
a try, go to their website and
download the iso and enjoy!
www.bodhilinux.com/

Jason M is old millenial who’s been


an avid Linux user since Ubuntu
Dapper Drake. He lives in Washington
State, loves sports, and does plenty
of geeky stuff like Ham Radio, web
dev and these reviews!

full circle magazine #1 50 43 contents ^


I N T E R VI E W
Written by Jason M T s u J a n - F e a t h e rP a d D e v
P edram Pourang, who goes by
the nickname Tsu Jan, is the
developer of FeatherPad, a new
FC: What is your first language and
other languages spoken?
TJ: Native language: Persian. 2nd
FC: Which Linux distro do you use
for working?
C++ and Qt before sharing it.

Qt-based text editor for Linux. lang.: English. Other languages: TJ: Manjaro (for the past three FC: Who are your main
FeatherPad has been the default German and French, but mostly for years). Previously, Debian (for collaborators on the project?
text editor for Lubuntu since it reading, not speaking. Favorite about eight years). Before it,
moved to the LXQt desktop with language: Esperanto. Ubuntu (two years). Before it, TJ: FeatherPad is developed by me.
Lubuntu 1 8.1 0. Fedora (one year). I also tried Users kindly help me by reporting
OpenSUSE and liked it. issues, asking for features, sharing
Full Circle: How did you come by FC: Where did you learn to code? their great ideas and, sometimes,
your nickname "Tsu Jan"? making good patches -- especially
TJ: By myself. FC: What led you to start for non-Linux OSes. Surely
Tsu Jan: Quite casually. It wasn't FeatherPad? FeatherPad wouldn't be what it is
related to programming at all. My without its users.
old interest in Taoism and Zen FC: What do you do for a living TJ: Each of the existing text editors
Buddhism should have played an these days? had a problem I couldn't tolerate.
unconscious role. Users of my Feature rich editors were too FC: FeatherPad is under rapid
programs talked about "Tsu Jan's" TJ: Teaching mathematics and heavy, and sometimes lacked development these days, what can
works, so I didn't change it but physics to high school and college features of elementary editors. we expect in the future; any new
included my real name in students. Sometimes, translating These things are partly about features, such as spell-checking?
READMEs. from English or German too. habits and tastes, I know. I had my
preferences. TJ: Yes. Recently I added regex
I don't have a good recent search to it. I might add color
photo… I guess my users imagine FC: How did you become Anyhow, I made the first version customization later – for syntax
me with that pair of glasses and interested in free software? of FeatherPad in GTK+-2.0 (the highlighting. Have no plan for a
red hat in my avatar; I like that ;) latest at that time). I wanted to spell-checker (don't want more
TJ: By using Linux. Who can use share it after fixing its bugs and dependencies), but who knows…
Linux and fail to see the high adding features to it, but GTK+-3.0 (Note: Tsu Jan decided to
FC: Where are you from? quality of open-source. came out and I updated the code incorporate spellchecking into
instead. Shortly after that, I tried FeatherPad in May 201 9, using
TJ: I'm Iranian. Qt and found it much more Hunspell. It should be included in
flexible. Hence, rewriting it into the next public release, and that
full circle magazine #1 50 44 contents ^
INTERVIEW - TSU JAN
version included by default with of KWin's Wayland. KDE
Lubuntu 1 9.1 0, due out on 1 7 developers are doing a great job. If
October 201 9). Wayland virtual desktop awareness
starts to work with
KWindowSystem, I'll use it. Many
FC: What are your ultimate goals users mistake KWindowSystem for
for FeatherPad? a KDE dependency but FeatherPad
will remain desktop-agnostic.
TJ: When you reach an ultimate
goal, by definition, you'll do
nothing more. Developing a FC: Anything you would like to add?
program like FeatherPad has no
end. I'll continue making it better TJ: I hope more people use
whenever I have time. FeatherPad's latest git version,
instead of its latest release. I don't
release a version every time I fix or
FC: What are your plans for the add something; so, git users'
future? reports could be very helpful.
TJ: Syntax color customization. It's
a challenge because FeatherPad Tsu Jan’s FeatherPad github web
doesn't use any external library for page is
syntax highlighting but does the https://github.com/tsujan/Feather
job in its code, relying on specific Pad
colors. Users want color
customization, but the code isn't
ready for it yet. So, I'll have to
make the needed changes at some
point – but very carefully. It'll take
time, especially if I find more
desirable features to add ;)
Also, virtual desktop awareness
and tab DND under Wayland.
Unfortunately, it isn't possible yet,
but I follow the rapid development
full circle magazine #1 50 45 contents ^
LE TTE RS If you would like to submit a letter for publication, compliment
or complaint, please email it to: letters@fullcirclemagazine.org .
PLEASE NOTE: some letters may be edited for space.
Join us on:
goo.gl/FRTMl
facebook.com/fullcircle
magazine
twitter.com/#!/fullcirclemag
linkedin.com/company/full-
circle-magazine
ubuntuforums.org/forum
display.php?f=270

FULL CIRCLE N EEDS YOU !


Without reader input
Full Circle would be an
empty PDF file (which I don't
think many people would find
particularly interesting). We
are always looking for articles,
reviews, anything! Even small
things like letters and desktop
screens help fill the magazine.
See the article Writing for Full
Circle in this issue to read our
basic guidelines.
Have a look at the last page of
any issue to get the details of
where to send your
contributions.

full circle magazine #1 50 46 contents ^


CROSSWORD - DISTROSHUFFLE 6

ACROSS
4A: A penguin in a parka is their mascot.
5A: This distro ships with WPS office and WINE preinstalled.
8A: Russian Mandriva fork.
1 1 A: Based on Trisquel.
1 3A: Rumoured to be bought out by Apple.
1 4A: It isolates each customer into a separate “Lightweight Virtualized
Environment”.
1 5A: Sam Nazarko is the lead developer.

DOWN
1 D: Forked from IPCop.
2D: Originating from Exmouth, in south-west England.
3D: Bharat University thinks it’s ‘da boss’.
6D: Comes in a mail gateway and a virtual environment edition.
7D: Has to do with Amateur Radio and not the Terminator.
9D: Gentoo based distro with a large ISO, from Italy.
1 0D: Also based on Gentoo, the focus is on Multimedia.
1 2D: Smells like BeOS, tastes like Linux.

Compiled by Erik
Answers are elsewhere this issue.

full circle magazine #1 50 47 contents ^


Q &A
Compiled by EriktheUnready
If you have a Linux question, email it to: questions@fullcirclemagazine.org ,
and Erik will answer them in a future issue. Please include as much
information as you can about your query.

W elcome back to another


edition of Questions and
Answers! In this section, we will
power is done, the plugs can be
mounted, in turn the cabinets can
be populated, etc. When you work
Q :myI amJapanese
learning Japanese. I have
dictionary on
IOS. My ubuntu is 1 6.04 as I need a
A : Persistence is not what you
want; you actually need to
respin that distro. See:
endeavour to answer your Ubuntu out of order, you end up with few things that are not in 1 9.1 0. http://linuxrespin.org
questions. Be sure to add details ofthings that need to be done How do I get it on Ubuntu?

A
the version of your operating afterwards. This is not ideal. Also,
system and your hardware. I will
try to remove any personally
every project has a gremlin, hidden
somewhere waiting to jump out at
you - and you need to make
: I am not sure what you are
asking, but here is a link to Q :somewhat
I was once considered
of an ARJ God. I
identifiable strings from questions, what I think you want: preferred this over LZH, LHA, Zoo,
but it is best not to include thingsallowances for that too. In this https://www.preining.info/blog/so HAP, PAK, ZIP, etc, etc. My question
like serial numbers, UUID’s or IP case, the basement was locked and ftware-projects/kobo-japanese- is, just how safe is ARJ today? My
addresses. If your question does no-one had a key or access. dictionary-enhancer/ query stems from the fact that I no
not appear immediately, it is just Obviously, the current power longer know who owns and
because there is such a lot, and I cables ran through there, forcing distributes this (it’s available from
do them ‘first-come-first-served’. us to build other paths. This is why
Q : I want to create a custom more locations than I consider

I
I like recipes; when I use a cake Ubuntu Mate live USB which it should be), and, now being a
was planning a project for a recipe, I never end up with soup. has my WiFi driver (I have a Linux user, should I move to
client and the outcome was four You know your system, you know Broadcom chip in my laptop, so I something more contemporary
weeks to install network points, your workflow. When something need the proprietary driver) and such as 7zip? The command-line
wireless AP’s, cabinets & switches, breaks, follow a reasonable Timeshift preinstalled. One helpful use is admittedly similar enough -
and power plugs mounted under “recipe” for problem user on the Ubuntu Mate forums just curious.

A
the desks, as well as replacing determination and repair. Ask advised me to create a live USB
lights with low power LED lighting yourself, what changed lately. If with persistence with Unetbootin. I : Like yourself, I also thought
and rewiring the building so that a nothing had, it may be a hardware did exactly that but the live USB ARJ was the bee's knees. ARJ
generator can charge the UPS and issue! Something as minor as a wouldn't save my changes. is still pretty safe, if you consider
the UPS can run the building. bubbling capacitor in a power Reformatted/recreated the live that there is an open source
Channels had to be built, etc, etc. supply may cause an issue down USB many times, but still wouldn't implementation of it. See here:
The client gave me a ‘NO WAY’ that the line. Go with what you know, save any changes. Do you have any http://arj.sourceforge.net. The
it can take that long, they need to before trying something exotic. idea how I could create this custom project is alive and kicking, and
move in at the end of the week live USB? there are still updates:
plus maybe two days... There is a https://sourceforge,net/projects/a
method to the madness. When the rj. There is a nice comparison on
full circle magazine #1 50 48 contents ^
Q&A
Wikipedia:
https://en.wikipedia.org/wiki/Com
parison_of_file_archivers.
A : The short answer is that you
can not, but if the website is
unknown to you, first use the little
Q : Why is it that my fingerprint
sensor works perfectly in
Windows, but not at all in
Q :downloads
N-Able remote control
a ‘.jnlp’ that
requires Java. I have tried to open
Encryption, is the only thing really green dropdown arrow and choose Kubuntu? I want to use my finger it with IcedTea plugin, but I get an
lacking. “cached”. If you get a 404, it means to sign on to Kubuntu, not type my error. Then I tried downloading the
that page is garbage/hacked/fake. helluva-long password! latest version of Java on Windows,
the offline installer, and I get
Q :install
Is it possible to download and
Ubuntu onto my mobile
Q : My computer is not so new A : Because hardware vendors
get “incentivised” by
basically the same error. Can I not
use IcedTea for this?
phone - if the answer is yes, please any more, and I tried to install Microsoft and they are too lazy to
offer some guidelines and advice – Ubuntu 1 9.1 0 on it. If I choose the write drivers for Linux? A: Actually, friend, you have solved
thanks. wayland option from the menu, I your own problem, you just asked

A
just get lines on the screen. From the wrong question. If the .jnlp file
: Your answer is yes and no, or
should I say ‘it depends’. It
depends on the phone and the
the USB stick I can boot into safe
VGA mode, but not once installed.
Safe VGA mode works, but I can’t
Q : Can I still install Ubuntu 1 8.04 does not work in Ubuntu or
or must I install 1 9.04? Windows, then the problem is with
the .jnlp file. I just used a .jnlp file
level of access. There is a lovely
little app called DriveDroid:
https://play.google.com/store/app
s/details?id=com.softwarebakery.d
get my screen’s resolution, only
1 024 x 768. How do I fix this? When
I try to install proprietary drivers I
A : Ubuntu 1 8.04 is supported
until 2023, so it is the valid
today with IcedTea to log in to one
of my servers at my ISP, so IcedTea
choice if you do not want to reload is fine.
get no driver... My machine is a first next year. Can I suggest you get
rivedroid - you however need root gen i7 with 8GB RAM and a
Q
the 1 8.04.3 iso to avoid lots of
access. Also, I am going to assume 7300LE. updates. : I have a Dell T20 server and I

A
your phone is flush with memory wish to connect with SSH and
and storage. As you know, Linux is : The problem is the old change the network settings. How
not happy with 51 2MB of memory
and space any more.
display card. The Nvidia driver
you need for that is 3.04, which is
not supported in the new version
Q : Ubuntu updates fractures the to do this please? Also where is a
hardware. Laptop is no boot. good place to backup SSH key?
Please give me advice.
<image>

A
of Ubuntu. You can try 1 8.04
Q :but,Hi there, sorry for the dm,
after reading the
(which you have to install
manually), or you can take it out A : You need to boot into
recovery mode and roll back.
: Think about this carefully. If
you SSH in to a network port,
magazine news, I sometimes and run on the integrated Intel Then use the clean option to make you can change the address, but it
search for Linux in Google over the pass-through. Or check your local space and fix broken packages. does not take effect until you stop
past hour. My results are garbage shops for a cheap modern display reboot and re-update. and start the network. Ifdown /
pages. How can I filter this? card? ifup. If you stop it and you are on
that interface, how do you bring it
full circle magazine #1 50 49 contents ^
Q&A
up again when you are your choice? back on. However, I was wondering how do I

A
disconnected? Taking the interface edit my right-click menu. I did not
down will disconnect you. SSH key : “Best” is subjective. I find seem to find a nice tutorial online.
you backup to a secure (locked! that MusicBrainz Picard works
Q :longHello,theI want to know how Does there exist a KDE-tweak?

A
Not unlocked) encrypted folder on for me. However, if you are a memory test runs in
your PC or another server. Do not hipster, or not in the five eyes Ubuntu. I left it overnight and it is : It may be a bit long for a
store it in the “cloud”. countries, this program is useless still running. Should I just leave it Q&A, so I will point you to
as a lookup. Where it does shine is until it is done? My PC is very slow. what I think it is you are trying to

A
with the ID3 tags. Did you know do. It may be because you are
Q :computer
Dear Sir, I am buying a
second-hand, with
that lots of music players also do
ID3 tag editing? Ex Falso is my
: Memtest will continue
looping until you press ‘esc’.
searching right-click menu, try
using the words context menu. You
Ubuntu. I cannot access the cdrom fallback tag editor, as it is simple to Just actually pass your eyes over can look here:
or SD card. I have tried Googling; it use. each section and you should pick https://askubuntu.com/questions/
asks for a sudo password, which I up if there was an error. 71 9262/how-do-i-add-custom-
don’t have. It is reporting me. How items-to-the-context-menu-in-
to fix?
Q :butI can’tI canbrowse the internet
Q
dolphin-in-kde-5 - and here:

A
ping 8.8.8.8. I can’t : I notice that my microphone https://askubuntu.com/questions/
: Dear Sir. Using a secondhand ping www.google.com.sg either, I volume in Ubuntu is turned on 1 1 791 00/add-item-into-context-
(or new) computer that was just get unknown host. This every so often. I turn it off on my menu-in-dolphin
preloaded by anyone other than worked fine on my school network. laptop as I do not use it. Do I have
yourself is a bad idea. You can I am still on Ubuntu 1 6.04. I have malware I need to take care of? I
become root and take over the PC asked people and they say I should am on Ubuntu 1 8.04 on my Acer
by booting with a recovery or check /etc/resolv.conf, but I don’t laptop.

A
Ubuntu DVD. However, my want to mess with system files.

A
suggestion is to format and install : If you “overclock” your
a fresh copy of Ubuntu on the : I am not sure what DNS volume past 1 00%, it will
machine and make it yours. Ubuntu servers can be accessed in sometimes raise the volume of the
is free and easy to install. All the your part of the world, but change microphone as well. Chances are,
software you need – Office, your network connection (open this is your “problem”. That said,
multimedia, etc, is installed with network manager) to DHCP why not install a free antivirus and
the operating system. (address only), and add 1 .1 .1 .1 , scan your computer? It cannot hurt. Erik has been in IT for 30+ years. He
8.8.8.8, 9.9.9.9 in the DNS server has seen technology come and go.
field and save. Now just click on From repairing washing machine

Q :editor
What is the best ID3 tag
for Ubuntu 1 9.04?
the WiFi name and it should go
down and come up by itself. Q
: I have switched from normal
Ubuntu to Kubuntu recently
sized hard drives with multimeters
and oscilloscopes, laying cable, to
scaling 3G towers, he's done it.
Could you please elaborate on Otherwise, turn off WiFi and turn it and I am enjoying it immensely.
full circle magazine #1 50 50 contents ^
LI N U X CE RTI F I E D
Written by EriktheUnready
P a rt 7
person shooter game, the init realize the K or S at the beginning customise said process. I need you
Where we are: process would be the spawn point. means Kill or Start. They are to look at the man pages: man
https://www.lpi.org/our- The init levels today are still the symbolic links. Your homework is update-rc.d - have a look at the
certifications/exam-201 -objectives same 0-6 levels (there are more, to follow them through. If you synopsis. You will also see they
(Topic 202: System Startup). In but unused) that I encountered don’t already know, this will be a refer you to the Debian policy
your LPIC study guide, mine is the back in the day; it has not changed, light-bulb moment. The number is manual. You may ask how this
second edition, this will be chapter just know the differences between the sequence in which it starts, so worked in the real word. Well let’s
1 (pages 4 – 27). If you are using .deb-based systems and .rpm- if you see two with the same say you want to add the printing
the ** free book above, it is based systems. You need to know number, they will start in parallel. service to a runlevel, say CUPS. The
chapter 2 (pages 47-76). that in older systems, you can Very simple, no? Well, SysV init is service you want to start has to be
usually see what is defined by simple compared to systemd. That in: /etc/init.d – you cannot just add
printing out ‘/etc/inittab’. At the is also why so many people want rc a service that does not exist. So

W elcome back learners, and a


nod to those “just
interested”.
time of writing this, it is 201 9, and
most distributions run on Systemd,
so you may get an error with ‘cat
/etc/inittab’ if you are following
over systemd (and the fact that it
is now binary blobs instead of plain
text files). To change startup on
SysV init should also be simple,
the syntax would be:
update-rc.d <service name>
start <sequence number>
<runlevel(s)> . stop
Since this is the 201 exam, you along on a desktop version of right? Stopping, starting, <sequence number>
should be familiar with the FSH Linux. That is OK. Try to run an old restarting services are as simple as <runlevel(s)

(File System Hierarchy) and LSB version of Fedora or CentOS in a that, you should know that by now.
VM to check it out. Be sure to look The LPIC study guide glances right WOW, that looks horrible, but in
(Linux Standards Base). You can practise it is something like this:
quickly Google those, I will wait... inside ‘/etc/rc.d’ folder while you over this subject. I really
Right, memory refreshed! are at it. recommend reading the above “update-rc.d cups start 58 5
free study guide. . stop 58 0 6 .“
Though we are mostly using The ‘/etc’-folder is chock full of
Ubuntu here, you need to know stuff. See if you can find the rc Now an old CentOS system is Note the delimiters - period
the Red Hat side of things too. Init scripts. (Runlevels 1 through 5). not the only one you need to start after start and period after stop.
is the first process called during in a VM, I would suggest an old You may get a warning message
SysV boot. This initial process will Let us talk about those file version of Debian or newer when changing a service (if it is not
now start all the other processes names you see. K20xxxxx and Devuan. Otherwise, the next part the default).
that are listed in the runlevel S20xxxxx first. Kill scripts range will be hard for you to follow. You
target. Don’t believe me? Look at from 01 -99 and so do start scripts. are expected to know, not only the To remove a service, the syntax
the PID of init. If Linux was a first I know you are smart enough to startup process, but how to is simply: update-rc.d <service
full circle magazine #1 50 51 contents ^
LINUX CERTIFIED
name> remove made, navigate to /etc/rc.d/rc2.d/ do it in a Red Hat-based VM and
and you should see cron – in our see how it is done. Keep your
Regardless if a service ‘usually’ case – has been created. Since the peepers peeled in the exam for
runs in say, only runlevel 5, you can chkconfig was preceded by an questions that specify RED HAT.
manually start it from /etc/init.d octothorpe – it is a comment, but
chkconfig read the comments! If you would like to jump ahead,
Back to our Red Hat-based Neat hey! This is not the only thing or test your skills at an LPI exam,
system. Here we use chkconfig. chkconfig can do, it is handy do a test paper here:
Starting on page 58 in the free beyond this when it comes to https://www.itexams.com/exam/1
study guide, I need you to read it. services. Linux firewalls work on 1 7-201 (these were once valid LPI
If you did your homework... and services, yes, I know, we need a questions and will ease you into
followed the links all the way decent application firewall the format):
through... you will know where this program in Linux, but we do not • The new exam number is 201 -400,
is heading. If you looked inside the have any. So a quick way to see 1 1 7-201 was the old one.
scripts you may have noticed that which services are on, for firewall • The site does require signing up,
right near the top, there is a configuration, type: chkconfig - - but sign up with temporary email,
“chkconfig : “ followed by a list That said, if you edited cron to not your real email.
number. These are your runlevels. run in runlevel 2, you should see • DO NOT learn these questions
So if you saw “345” following “on” in the column that represents parrot fashion, as they are
chkconfig, it was not the number runlevel 2. This holds true for any probably not real exam questions.
three hundred and forty five, but changes you may make – double
runlevels 3,4,5. Now you can check it here. If you turn a service Let us know how you did; good
remove or add a runlevel here, but on or off with chkconfig, or bad, it does not matter. Good
think it through thoroughly before immediately check with the: - - list means you are ready to write and
doing so. Let’s say we would like to option. If you want a more fine- confident in your skills. Bad means
add cron to another runlevel grained control, you can use the - - you will be learning new stuff!!
(example only); then we would add level 2 on / off option. Example: Yay! There is no downside here. If
say a two to the list , so it reads chkconfig cron - - level 3 off you do not know why an answer is
“2345” and save the file. This alone the way it is, contact us.
does nothing. To ‘pull the changes Just be aware of the
through, so to speak, in the rc.d differences in systems syntax
folders you need to say the magic between Debian-based and Red Erik has been in IT for 30+ years. He
phrase in the terminal: chkconfig - Hat-based distributions. has seen technology come and go.
From repairing washing machine
-add cron sized hard drives with multimeters
No practice exam questions this and oscilloscopes, laying cable, to
To see what changes were month, I just want you to physically scaling 3G towers, he's done it.
full circle magazine #1 50 52 contents ^
U B U N T U G AM E S
Written by Erik P a t h wa y
Website: www.pathway-game.com The game ships with the met. (You can even buy the Digital look out of this world. One can see
original sound track with some album on bandcamp and gift it to a that a lot of effort went into this
Price: $1 5.99 really amazing Indiana Jones-esq friend). game by the game artists.
music. The music titles include Everything in this game feels like
From the Web: “Adventure into the such gems as: 02 Somewhere in
strange unknown with Pathway, a the Desert, 03 The Wrath of God,
G RAPHICS Indiana Jones, even the world
maps are similar. (Not the game
strategy RPG set in the 1930’s great and 1 5 The Undead Are Coming. The graphics in the game are its map). Speaking of game map, the
desert wilderness. Outwit your Gavin Harrison is truly talented. I second biggest asset. I understand tiny Jeep and people getting out
enemies in daring turn based actually have the OST playing at they were going for the 1 6-bit look of it, animation really puts this
combat, raid occult tombs, and the moment, It is one of my and they achieved it. At 1 080p, the game on a different level.
make tough choices in a favourites. If you purchase the game feels a little too blocky for
procedurally generated grand pulp game, really think about getting all the amount of detail once in- (Bottom right corner you will
expedition!” the OST too. I don’t always game. If you play the game at 720p see the spinning skull)
download the OST’s due to limited though, everything looks amazing.
I feel sorry for those with High DPI G AME-PLAY.
I
bandwidth, but I am glad I did.
nitial issues with pathway Some of those melodies will have screens... Loading screens, etc,
prevented me from reviewing you missing people you have never Even though the game-play is
this game sooner, it would not run great, it does feel a tad repetitive
on Intel graphics. With version after a while. If I had to be
1 .08, this seems to be sorted. If pedantic I would say the game
you have an older machine and needed a bit more content for the
launch the game, you may think it replay-ability. This is usually the
is stuck at the first screen, but look issue with story driven games, it
at the bottom left and you will see needs lots of content and side
a spinning skull. This will be the quests to make you want to play it
only indication that something is again once finished. I love that
happening. See screenshot – just there are critical failures present,
be patient and your game will load. and one can blow yourself up with
The specs do say it needs at least a clumsy hand grenade toss. The
51 2MB of graphics memory, so testers seemed to have done their
keep that in mind. jobs well and I did not get stuck
anywhere on the map. If this genre
full circle magazine #1 50 53 contents ^
UBUNTU GAMES - PATHWAY
is your type of game, you will really Pathway is an overall fun game
enjoy it; if it is not, you may find with a reasonable story line, nice
yourself drawn into this title. colourful graphics, and good
sound. The only thing I would have
SOUND AND M USIC liked to see was that the graphics
still looked 1 6-bit at 1 080p rather Crossword answers:
I have already told you about than 8-bit. I would also have liked
the amazing soundtrack that to see more missions and a little
screams Indie! (That’s Doctor variety in the game-play. As it
Jones to you lady!). The other stands now, it is a good game, but
sounds in the game are apt and it needs more to be a great game.
you always feel immersed with It does have the potential to be a
fitting music. five-star game; let’s see if the
developers can take it there with
updates.
STORY
Instead of giving away anything
about the plot, I will tell you about
the colourful characters in the
game. The characters all have
positive and negative traits. Baron
von B, the German gentleman
imposter is your sniper, Miguel
Ignacio Caballero, the Spanish civil
war poet, is your grenadier, and
Brumhilda, Queen of the Valkyries,
Icelandic fairground wrestler, is
your melee specialist. There are of
course, many other colourful
characters to choose from. It is
good to see humour brought in Erik has been in IT for 30+ years. He
has seen technology come and go.
here. From repairing washing machine
sized hard drives with multimeters
CONCLUSION and oscilloscopes, laying cable, to
scaling 3G towers, he's done it.

full circle magazine #1 50 54 contents ^


P AT R O N S
M ONTHLY PATRONS Roy Milner
Scott Mack
Lee Whitehead
Peter Swentzel The current site was created thanks to
Sony Varghese Peter Leemann Lucas Westermann (Mr. Command &
Alex Crabtree Conquer) who took on the task of
Alex Popescu Tom Bell Zoltan Borsos completely rebuilding the site, and
Bill Berninghausen Tony Alin Hanghiuc scripts, from scratch, in his own time.
Brian Bogdan Vincent Jobard
Volker Bradley The Patreon page is to help pay the
CBinMV domain and hosting fees. The yearly
Darren William von Hagen target was quickly reached thanks to
Dennis Mack Taylor Conroy those listed on this page. The money
also helps with the new mailing list that
Devin McPherson I set up.
Doug Bruce SINGLE D ONATIONS
Elizabeth K. Joseph Several people have asked for a PayPal
Eric Meddleton 201 9: (single donation) option, so I’ve added a
button to the right side of the website
George Smith Floyd Smith
Henry D Mills Jack Hamm A big thank you to all those who’ve
Hugo Sutherland aram v nathan used Patreon and the PayPal button.
Jack Joachim Haupt It’s a HUGE help.
Joao Cantinho Lopes Hari Zafiriadis
John Andrews Glenn Heaton
John Malon Adam Gwizdz
John Prigge George Parker https://www.patreon.com/
JT Linda Prinsen fullcirclemagazine
Kevin O'Brien Frank Dinger
Lee Allen Graig Pearen
Leo Paesen Stefano Giancarli
Linda P Raymond Meyer https://paypal.me/ronnietucker
Mark Shuttleworth wil van schaik
Norman Phillips J.J. van Kampen
Oscar Rivera James Flanagan
Paul Anderson Brian Kelly
Paul Readovin Giulio De Chiara https://donorbox.org/recurring
Rob Fitzgerald Frits van Leeuwen -monthly-donation
full circle magazine #1 50 55 contents ^
Full Circle Team
H O W TO CO N TRI B U TE Editor - Ronnie Tucker
ronnie@fullcirclemagazine.org
FCM#1 51
FULL CIRCLE NEEDS YOU! Deadline : Webmaster - Lucas Westermann
admin@fullcirclemagazine.org
A magazine isn't a magazine without articles and Full Circle is no Sunday 1 0th Nov. 201 9.
exception. We need your opinions, desktops, stories, how-to's, Release :
reviews, and anything else you want to tell your fellow *buntu users. Friday 29th Nov. 201 9.
Send your articles to: articles@fullcirclemagazine.org Editing & Proofreading
Mike Kennedy, Gord Campbell, Robert
We are always looking for new articles to include in Full Circle. For help and advice Orsino, Josh Hertel, Bert Jerred, Jim
please see the Official Full Circle Style Guide : http://bit.ly/fcmwriting Dyer and Emily Gonyer

Send your comments or Linux experiences to: letters@fullcirclemagazine.org Our thanks go to Canonical, the many
Hardware/software reviews should be sent to: reviews@fullcirclemagazine.org translation teams around the world
Questions for Q&A should go to: questions@fullcirclemagazine.org and Thorsten Wilms for the FCM logo.
Desktop screens should be emailed to: misc@fullcirclemagazine.org
... or you can visit our site via: fullcirclemagazine.org
Getting Full Circle Magazine:
For the Full Circle Weekly News: EPUB Format - Most editions have a link to the epub file
You can keep up to date with the Weekly News using the RSS on that issue's download page. If you have any problems
feed: http://fullcirclemagazine.org/feed/podcast with the epub file, email: mobile@fullcirclemagazine.org
Or, if you're out and about, you can get the Weekly News via
Stitcher Radio (Android/iOS/web): Issuu - You can read Full Circle online via Issuu:
http://www.stitcher.com/s?fid=85347&refid=stpr http://issuu.com/fullcirclemagazine. Please share and rate
FCM as it helps to spread the word about FCM and Ubuntu.
and via TuneIn at: http://tunein.com/radio/Full-Circle-Weekly-
News-p855064/

FCM PATREON : https://www.patreon.com/fullcirclemagazine


full circle magazine #1 50 56 contents ^

Вам также может понравиться