Lenovo IdeaPad 330S

created Mon, Nov 25, 2019

Last Tuesday, I worked with longtime, local computer store Virtual PCs to order a low to mid-range Lenovo laptop, the IdeaPad 330S. They also installed Ubuntu for me.


On Saturday, Virtual PCs called and said that my laptop was ready. It cost me under $600. I'm was pleased with the service, and I was glad to support the local business.

Back around 1997, I bought desktop computer pieces from either Stone Computing and/or Virtual PCs, and I assembled my own computer that I used to host RedHat Linux.

Anyway, I finally had a chance to work with this laptop. The keyboard is funky because it's off-centered because of the existence of the numeric keypad to the right. The keyboard is fine for typing. The placement with key keys, such as backspace, enter, ctrl, and shift seem fine. I'm not fouling up my typing when I type fast.

But I have to move myself and/or the laptop to one direction because I want to be centered with how I hold my fingers on the keyboard, but this makes me off-centered with the screen. It will probably be no big deal after a while. It's an oddity to need to adjust to.

The screen size is 15.6 inches, which is large for me. I would have been fine with a 13-inch screen. Since the summer of 2016, I have mainly been using a Chromebook that has about a 10-inch screen. I wanted something larger, like 11 to 13 inches. After viewing many laptops at BestBuy, I decided that 13.3 inch screens seemed ideal for me.

But I rarely move around with my laptop, which means the larger 15-inch side should be okay. Again, I need to adjust.

I wish that the screen was more of the glassy type where regardless of the viewing angle, the entire screen always appeared the same. With this screen, areas seem darker and lighter, depending upon what parts of the screen that I'm viewing. I played around with the laptop's screen position, and I think that I have it set where the color fading or variegated coloring seems less. I assume that this style of screen was used to save money on production costs. I would have need to upgrade to maybe the ThinkPad series for a better screen.

It seems like a nice machine, although I'm only getting started with using it. It will be fine for me. I don't use much in the way of fancy hardware. It's mainly nice to have a Linux laptop. It would have been nice to play around in person with multiple types of Lenovo machines to determine which style I liked best.

Naturally, I need to install a lot of software to make the machine my programming system.

uname -a output:

Linux john-Lenovo-ideapad-330S-15IKB 5.0.0-36-generic #39~18.04.1-Ubuntu SMP Tue Nov 12 11:09:50 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux

Software installs

First was Vim.
sudo apt install vim

sudo apt install make

sudo apt install gcc

sudo apt install curl

curl -R -O http://www.lua.org/ftp/lua-5.3.5.tar.gz
tar zxf lua-5.3.5.tar.gz
cd lua-5.3.5
make linux test

lua.c:82:10: fatal error: readline/readline.h: No such file or directory


If you're running Linux and get compilation errors, make sure you have installed the readline development package (which is probably named libreadline-dev or readline-devel). If you get link errors after that, then try "make linux MYLIBS=-ltermcap".

sudo apt install libreadline-dev

redo this command:

make linux test

followed by:
make install

Lua installed.

Lua 5.3.5 Copyright (C) 1994-2018 Lua.org, PUC-Rio


sudo apt install build-essential libreadline-dev

wget https://luarocks.org/releases/luarocks-3.2.1.tar.gz

tar zxpf luarocks-3.2.1.tar.gz

cd luarocks-3.2.1


make build

sudo make install

More Lua-related tech that supports my existing apps, use this page for a guide:


I'm not installing all of that right now.

Here's another page of libs and modules that I might need.


Might not be anything here:


Use the CommonMark Markdown library, instead of the Markdown version.


Testing my luarocks install by doing:

sudo luarocks install lua-cjson

Seemed to install fine.

Install golang.

I downloaded this file from this location https://golang.org/dl/

Linux 2.6.23 or later, Intel 64-bit processor
go1.13.4.linux-amd64.tar.gz (114MB)

tar -C /usr/local -xzf go1.13.4.linux-amd64.tar.gz

sudo vim /etc/profile
add the line: export PATH=$PATH:/usr/local/go/bin

In my computer's HOME directory, do:

mkdir go -- this will be my workspace

mkdir src

mkdir src/hello

cd src/hello

create hello.go file with this sample code:

package main

import "fmt"

func main() {
fmt.Printf("hello, world\n")

then within the hello directory, type:

go build

afterwards, a hello executable should have been created, and one was created.

and running the executable also worked.

If you see the "hello, world" message then your Go installation is working.

You can run go install to install the binary into your workspace's bin directory or go clean -i to remove it.

Before rushing off to write Go code please read the How to Write Go Code document, which describes some essential concepts about using the Go tools.


installing web browsers now.

sudo apt install lynx

lynx -version produces:
Lynx Version 2.8.9dev.16 (11 Jul 2017

sudo apt install elinks

eventually, install links2 #todo

installing the NetSurf web browser.



I'm using NetSurf 3.10 Dev even though the website said the latest download was 3.9 from July 2019.

It took a little while to install. It was the longest and biggest install yet, even though NetSurf is a small web browser.

I see this error when I launch NetSurf from the command line.

$ ./nsgtk

Gtk-Message: 17:54:29.948: Failed to load module "canberra-gtk-module"

This is an old thread.


Within Firefox, I added the eff.org's Privacy Badger browser extension.

I also installed Markdown Viewer Webext.

I will add more later, such as uMatrix. #todo

As of now, Mon, Nov 25, 2019, I want to focus on learning more about Lua and Golang programming.

I will install my own Lua-based apps, such as ToledoWX-Lua, Sora, Finch, and Nuthatch. I will need to install Nginx to test these on the local machine. #todo

Eventually, I will install Love2D for Lua to create small video games. #todo

Later, I would like to explore OpenResty, which is the Nginx web server with Lua and a Lua-based web framework embedded into the server. Then I will create a version of Sora that works with OpenResty. #todo


OpenResty is a full-fledged web platform that integrates our enhanced version of the Nginx core, our enhanced version of LuaJIT, many carefully written Lua libraries, lots of high quality 3rd-party Nginx modules, and most of their external dependencies. It is designed to help developers easily build scalable web applications, web services, and dynamic web gateways.

They maintain a commercial version of OpenResty

Another #todo (actually, many more exist) is to install mutt and connect it to my riseup.net account.

Dec 18, 2019

The Firefox web browser add-ons that I use include:

Today, I installed mutt, following these instructions.


My riseup.net email account is a backup to my main email account, which I host at Fastmail.

I need printout command line instructions for using Lynx, elinks, mutt, and whatever else that I occasionally use.

Some mutt instructions exist here:

Of course, the command line programs offer built-in help.


Jan 31, 2020

This is a command line utility that converts HTML files to plain text, but it's scrunched text. The paragraph spacing is not preserved.

sudo apt install html2text

That is NOT the same as this, which converts HTML to Markdown.


sudo apt install pandoc


Converting a web page to markdown:

pandoc -s -r html http://www.gnu.org/software/make/ -o example12.text

Markdown editors

Discussion: https://news.ycombinator.com/item?id=21462832

I installed:



text-based web browser called links.


also, the graphical version called links2 -g.

sudo apt install links2

Feb 14, 2020:

sudo apt install luajit

attempting to install, build, and use:
git clone https://github.com/luakit/luakit.git

Feb 26, 2020

I installed the Brave web browser.


sudo apt install apt-transport-https curl

curl -s https://brave-browser-apt-release.s3.brave.com/brave-core.asc | sudo apt-key --keyring /etc/apt/trusted.gpg.d/brave-browser-release.gpg add -

echo "deb [arch=amd64] https://brave-browser-apt-release.s3.brave.com/ stable main" | sudo tee /etc/apt/sources.list.d/brave-browser-release.list

sudo apt update

sudo apt install brave-browser

Apr 14, 2020

In recent days, I installed the following web browsers:

For the last one:

sudo add-apt-repository ppa:braewoods/ungoogled-chromium

sudo apt-get update

sudo apt install ungoogled-chromium ungoogled-chromium-common




Another web browser to consider:


For Ungoogled Chromium, adding extensions.


Download the .crx from Releases and drag-and-drop it into chrome://extensions

Drag and drop did not work when on the extensions page.

I found this thread:


I did in the browser URL window.


That installed that extension, which makes adding extensions to Ungoogled Chromium function like Chrome.

Apr 18, 2020

A few days ago, I installed the Pale Moon web browser, and it has been my main browser since. I downloaded the binary and created a shell script that launches the binary in my Desktop folder.

May 5, 2020

Installed Plainsight.

Ask HN: Encryption for blog posts on static sites?

Commenter recommended:

I installed pip and:

sudo pip install bitstring
sudo pip install plainsight
sudo pip install progressbar

May 13, 2020


curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh


git clone https://git.sr.ht/~julienxx/castor

cd castor

sudo apt install build-essential rustc cargo libgtk-3-dev libgdk-pixbuf2.0-dev libssl-dev

sudo make

sudo make install

I saw these links late last night.

Gemini – A new, collaboratively designed internet protocol (circumlunar.space)

Castor: A browser for the small internet (Gemini, Gopher, Finger) (sr.ht)

Holy moly. Castor installed, and it works. I can access my Gopher site gopher://sawv.org

Now I need to learn about Gemini, which is a new application layer protocol that exists somewhere between Gopher and the web, regarding features and display of articles for READING.

May 19, 2020


sudo apt install python3-pip
git clone https://github.com/makeworld-the-better-one/md2gemini.git
cd md2gemini
pip3 install md2gemini