Friday, December 31, 2021

Asus G550J, still going strong today

I bought the Asus G550J laptop back in June 2014 and gave it a new lease of life in December 2017 by changing the harddisk to a SSD. The laptop is still going strong today, after 7 years since I got it.
 
Although the i7 processor is a 4th generation processor and lacks the hardware requirements for upgrade to Windows 11, it does have a Nvidia GTX 850M (4GB video RAM) GPU, which still allows it to run today's games respectably well. I can actually play Fortnite at 1080p on it using DirectX11 and in low settings with more than 60 fps. Although Performance mode can squeeze out a bit more frames per second.

However, I now have a R720 with a GTX 1050Ti inside. Which is passed through to a Windows virtual machine that I access via NoMachine. Basically, I have my own remote game server. 😅 There is a bit of a CPU bottleneck, even though the R720 has been upgraded from the original dual Xeon E5-2640 to dual Xeon E5-2670v2 with 2.5 GHz base clock and 3.3 GHz boost. The next logical step is to upgrade the R720 to dual E5-2690v2 (3 GHz base clock and 3.6 GHz boost) but that will be some time down the road. Or to run the GTX 1050Ti from the R430 instead using a PCIe extension cable.

So I have given the Asus G550J to my son. Who has been playing Fortnite on a laptop with iGPU... and commenting about how often the game lags. And doing well even with the lags... so hopefully, he can better enjoy his gaming experience with the better performance and larger screen that the Asus G550J offers. Guess this is his present for the new year. 😅

Thursday, December 30, 2021

Getting a used Poweredge R430 rack server

The rack server journey continues... after getting a R320 and R720, both from the 12th generation of Dell servers, I found a R430 (13th generation) at a reasonable price on Yahoo! Auction.


This one came with dual Xeon E5-2643v3 processors, 32 GB of RAM, and 4 SAS harddisks with 900 GB each. I set up the 4 SAS harddisks in a ZFS pool, which gives me 3.59 TB of storage. The processors are 6 cores 12 threads (total 12 cores 24 threads) running at base clock 3.4 GHz and boosting to 3.7 GHz. I think this processor, for its generation, has the best balance of core/thread count and clock speeds. Yes, there are processors with higher boost speeds, but they usually have lower core counts. Those with higher core counts cannot match the base/boost clock speeds. So while I was thinking of upgrading the CPUs... I think I will stick with them and work within this limit.

Expansion is a bit difficult, though, since there are only 2 PCIe x16 low profile slots. And apparently, limited to 25W. So that rules out most GPUs, unless they are externally powered. But I also found an old catalog that says the R430's PCIe slots are 75W... which is the normal power for a PCIe slot. This got me thinking... could Dell's 25W limit for PCIe slots on 1U servers (2U server's full height slots are rated for 75W, like the ones in my R720) be due more to cooling (thermal limit) than trace width (electrical limit)? After all, expansion cards in rack servers are expected to be cooled by the server's internal fans, and due to air flow inside a 1U server, it only makes sense that the thermal limit is 25W for any passively-cooled card. If it is really a thermal limit, than maybe it is possible to use an expansion card with a higher power rating as long as it is actively cooled. For example, a 40W Quadro P600 which has its own fan. Although a GT 1030 (30W) probably makes more sense.

And if the 25W is really a thermal limit, then there is nothing stopping me from using a PCIe extension cable to connect to a 75W or higher two-slot GPU and place it outside the R430. This is something that I will actually try... once GPU prices become more sane. Right now, trying to get anything better than a GT 1030 is going to break the bank. (I was lucky, I got that GTX 1050Ti for the price of a GT 1030...)

After the R430 arrived, I got about installing Proxmox on it as a hypervisor. There is an internal USB3.0 port for connecting a flash drive for such a purpose, actually. So I got a small external SSD drive and placed it inside the server.

To get to the port, you need to remove the expansion card riser cage.

As you can see, it is actually a tight fit.

With the high boost clock and thread count, I think this will be a video rendering machine. For the time being, I have installed Ubuntu MATE 21.10 and Windows 10 Pro as virtual machines on it. However, only one of them will be running at anytime, to better utilize the high thread count for a single VM. At first, I had wanted to use Windows as the OS for video rendering... but Openshot and Kdenlive are still quite slow in rolling out GPU acceleration support on Windows. So Ubuntu it will be... although first, I have to get my hands on a GT 1030...

After installing the VMs, I thought, hey, Proxmox has a cluster function, why not put the R720 and R430 into a single cluster so that I can manage them together? Well... unfortunately, I found out (the hard way) that you cannot join a node with VMs to a cluster. I set up a new cluster on the R720, which is the main machine. Then I tried to join the R430 to that cluster... and got an error message. Dilemma. Delete the Ubuntu and Windows VMs? Or?

Or backup the two VMs, delete them, join the cluster, and restore the VMs. Which took a bit of time (especially the restore process) but is actually still faster than reinstalling/updating Windows. Yes, spinning up a Ubuntu VM is easy. Windows... is a snail.

Lesson: If you want to have your home servers in a cluster, set up that cluster BEFORE installing virtual machines.

TODO: Install syncthing

Sunday, December 26, 2021

Hits and misses

I had some good deals on Yahoo! Auctions, but also snagged myself some bad ones.

For example, you can find some used servers for good prices. I got myself a Poweredge R320, then a R720, and recently, a R430. The R720 is now my main workhorse server, running several virtual machines, one of which runs several containers for services.I even managed to get a Quadro P400 and a GTX1050Ti, both used, at reasonable prices via auctions. The P400 is being used for video transcoding, while the GTX1050Ti is being used for remote gaming.
 
The R430 is actually quite fast as it came with two Xeon E5-2643 v3 (base clock 3.4 GHz, max speed 3.7 GHz, 6 cores 12 threads each for a total of 12 cores 24 threads). However, it is only capable of fitting in half-length, low profile, single slot cards, so until I can find something that fits, it will be sleeping for a while. I will probably get a PCIe extension cable and run a 75W GPU outside the case. The R320 may eventually become my backup NAS if I can get the harddisks.

At the same time, I had many misses. My current desktop has a Ryzen 3600, which does not come with integrated graphics. I had been wanting to get a Ryzen APU so that I can pass through the GTX1660 Super to a virtual machine. I tried getting used Ryzen APUs (5700G and 4750G) via auctions... but both came as duds. So that's expensive junk. Sigh.

Similarly, I was thinking of getting more graphics cards. So I got a single-slot GTX1050Ti and a Quadro P620 too... and again, both were misses. The single-slot GTX1050Ti wasn't even recognised by the R720. As for the P620, it actually worked for a day. Then all of a sudden, the system could no longer initialise the card, even though it recognises it. So I ended up with two small paperweights and two larger paperweights, all of them expensive.

I guess I need to train my eye to watch out for junk on auctions. I think I have learnt my lesson and will be more careful from now on.

Saturday, December 25, 2021

There is no shortcut

It has been almost two years since China reported the discovery of a new coronavirus, which we know as COVID-19 today. However, we have yet to put an end to its spread; instead, it seems to be spreading even more widely than before.

COVID-19 makes it clear. There is no shortcut. The only way to prevent a virus from spreading is to avoid giving it a host. And the way to avoid providing new hosts is to avoid human contact. There is no other way. Yes, vaccines can help our bodies better fight off infections, but we can still be hosts for the virus for a short period while our bodies are fighting off the virus.

This misconception of the vaccine being the silver bullet is a fallacy used by politicians to appear to be doing something. But no, instead of helping us to quell the spread of COVID-19, the "vaccines are helpful" message instead gave people false hopes that being vaccinated means we can go back to life as normal. We can't. At least, not until we have stopped COVID-19 from spreading. Vaccines will prevent us from becoming seriously ill. They will significantly lower the death rate. But they do not stop the virus.

Meanwhile, the world has bought into the false narrative that vaccines will bring us to the path of recovery. No. That is false hope. The only way out of the woods is to avoid human contact, until the virus dies out from not having any new hosts to infect. We need to bear with that short painful period when our actions and movements are severely limited. Only then will we be able to finally put an end to this.

Until then, we are only prolonging the pain. And the more we have false hopes in the vaccines, the more we think we are safe to interact with each other because we are vaccinated, the virus will teach us that we are wrong. The virus will teach us that, as long as we keep giving it hosts to infect, it will learn to mutate into new variants that can overcome whatever mechanisms we develop against it. One variant may spread easily but is less fatal. But there is no knowing when a variant will be become easier to spread and also more fatal.

There is no shortcut. Vaccines help, but they are not the solution. The solution is to avoid human contact as far as possible. If we cannot get that into our heads, we will never be out of the woods.

Tuesday, December 21, 2021

Kyoto Animation arson copycat

In 2019, an arsonist set fire to Kyoto Animation's Studio One, which resulted in 36 deaths and many injured. It was a horrible event, and led to regulations in Japan that tightened the sales of petrol. Petrol stations had to keep a record of people who purchase petrol in containers (instead of filling the fuel tank of a vehicle), including details such as name, address, and purpose.

Still, someone managed to purchase 10 litres of petrol, and used that to set fire to a clinic in Osaka, resulting in 25 deaths. A newspaper cutting of the Kyoto Animation attack was found in the arsonist's home. The fire was put out in 30 minutes, but by then, 24 had died from carbon monoxide poisoning, and the 25th victim succumbed to wounds today.

A building with a single flight of stairs, fire set at the doorway of the clinic, which blocked access to the stairs (the only way to exit the building).

Why can't we copy the good things? Why must people copy the horrible ones? 😢

Sunday, December 19, 2021

Common commands for setting up a new physical/virtual machine

These are some common commands I use to set up a new physical or virtual machine.

Allow user to execute sudo without password
echo "$USER ALL=(ALL:ALL) NOPASSWD: ALL" | sudo tee /etc/sudoers.d/dont-prompt-$USER-for-sudo-password

Install ssh
sudo apt install ssh

Copy ssh key to another machine
ssh-copy-id -i ~/.ssh/mykey user@host

Install Nomachine
wget https://download.nomachine.com/download/7.7/Linux/nomachine_7.7.4_1_amd64.deb
sudo dpkg -i nomachine_7.7.4_1_amd64.deb

For arm64, the link is
https://download.nomachine.com/download/7.9/Arm/nomachine_7.9.2_1_arm64.deb

Install QEMU guest agent
sudo apt -y install qemu-guest-agent.
sudo systemctl enable qemu-guest-agent
sudo systemctl start qemu-guest-agent
 
To test connection speed, install iperf (sudo apt install iperf), then run
iperf -s
on one machine and
iperf -c 192.168.x.x
on another machine.

To enable auto login on Windows 10, run this command as an administrator
reg ADD “HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\PasswordLess\Device” /v DevicePasswordLessBuildVersion /t REG_DWORD /d 0 /f
then run
netplwiz
and uncheck "Users must enter a user name and password".

If there is a need to set the service tag, this can be done by, for example,
smbios-sys-info --service-tag --set=9QYZF42
If need be, install smbios-utils using
apt install smbios-utils
first.

To transfer Windows OEM license to a VM: (from this reddit post)
This will link the license to the motherboard UUID. And you can transfer it from VM to VM in the future. I suppose you could possibility link it to a made up UUID, although there maybe a checksum or some other security in place?
1. Use to find the motherboard UUID, sudo dmidecode
2. Copy the physical UUID into VM XML file. Example,
<uuid>8bc28570-e584-0000-0000-000000000000</uuid>
Another method, from superuser.com:
On the Ubuntu host, type this command:
sudo strings /sys/firmware/acpi/tables/MSDM

This will print out a few lines, the last line being the activation key contained in the laptop's firmware:
MSDMU
LENOVOTP-N11  
PTEC
#####-#####-#####-#####-#####


Within the Windows guest:
1. Click the search loop.
2. Type activation.
3. Click the Activation settings item that appears.
4. Click the Change product key button.
5. Enter the activation key obtained from Ubuntu command above.
6. Click Activate.
The original product key can also be viewed in Command Prompt using:
wmic path softwarelicensingservice get OA3xOriginalProductKey
To get the UUID of the motherboard using Windows, run in Command Prompt:
wmic csproduct get UUID 
Of course, another way is to use Microsoft support and see if they can help with the transfer.

For a laptop, to prevent Linux from going to sleep when the lid is closed (from here) and switch off the screen after 5 minutes (another good reference is here):
1. Edit /etc/systemd/logind.conf.
Add in the following 2 lines in the file:
HandleLidSwitch=ignore
HandleLidSwitchDocked=ignore
2. Restart the service by typing the following:
systemctl restart systemd-logind.service
3. Edit /etc/default/grub. Change the following line to read:
GRUB_CMDLINE_LINUX="consoleblank=300"
The “300” is the number of seconds before the screen goes to sleep.
4. Then restart so that it sets it in place by typing:
update-grub

Good to have programs installed on the host:
sudo apt install -y ifupdown2 bmon iftop tmux mc htop


Note: This post is really a note to self and will be updated as and when necessary.

Friday, December 17, 2021

Is China to blame for the spread of COVID-19?

It has been almost two years since China announced the discovery of a new virus, which we call COVID-19 today. According to Our World in Data, as of today, there have been more than 273 million cases of COVID-19 infections worldwide, with more than 5 million deaths. There is no dispute that China was the first country to report cases of COVID-19. However, whether COVID-19 was already spreading in other countries at the same time is still something being debated, and will probably remain a mystery forever.

The question is, "Is China to blame for the spread of COVID-19?"

In a way, I think that answer is yes. Not because of the conspiracy theories out there about the virus coming from a Chinese lab, or that it was created as a biological weapon, or that the Chinese government did poorly in containing the virus. Rather, I think it has to do with the fact that, it was reported by China.

Geopolitics has resulted in mistrust of China, and we ended up with a mixed bag of responses. Some countries, especially those nearer to China geographically, took the matter quite seriously and took early measures to watch the situation and adopt the necessary travel controls. However, the United States, given its beef with China, plus the internal political situation which required China to be made a punching bag for everything, took a much different approach. Which eventually led to COVID-19 being politicised, even though it is a medical issue and not a political one. But politics tend to have greater sway than medicine, since one is based on facts (which means only the educated understand what is happening) while the other is based on people's perception (which can led to all kinds of actions depending on individual judgment).

And the moment the United States took a different approach toward COVID-19, its allies in Europe and Australia had to stay more or less aligned. Even if they knew better. And once all those conspiracy theories start to spread, with baseless accusations about China made to consolidate the political base, you end up with a vicious cycle of endless self-indoctrination. The rest is history.

Imagine if the first country to report COVID-19 was Japan. Or New Zealand. Or Brazil. There would not have been that geopolitical aspect to such a report. People and governments around the world would probably have been able to deal with COVID-19 by focusing on it as a medical issue and not a political one. Politicians probably won't use it for the brainwashing of their political bases, and we might actually have some form of consolidated global response to quickly contain the spread.

So yes, in a way, I think we can say that China is a blame. As much as we can say that someone told you your house is on fire, but because he is your rival at work, you didn't believe him. And then, when you return to find your house gone, you blame him for allowing the fire to burn. In a logical world, this would be nonsense. But in the world we live in today, people will believe anything.

Wednesday, December 08, 2021

Turn OS installed on actual physical disk into a virtual machine

Hmm... this looks like an idea...

So i was thinking of doing:
- create a VM with a VirstIO SCSI + regular virtual disk (say scsi0)
- Shell: 'qm set VM-ID -scsi1 /dev/disk/by-id/<my-transplanted-ssd-id>'
- Then from the webui, make scsi1 the VM boot device and probably get rid of the scsi0 created when the VM was created.

1) Since i don't know at all what i am doing, i would like confirmation, comments or pointers.
2) If things go side way with the old hardware running PVE, could i take the SSD, install it back on my other PC and boot from it and run happily?

Thank you in advance.

EDIT:
I did pretty much as above but used 'qm set <VM-ID> -sata0 /dev/disk/by-id/<my-transplanted-ssd-id>', made sata0 the boot device, detach&delete the scsi1 created when creating the VM. And it all seems to work fine. 

Maybe I should convert my current desktop into a Proxmox server, with my current Linux Mint installation (on a SSD) as a VM...

Or maybe create a virtual machine with enough space to copy the entire SSD's onto the virtual disk, and use Clonezilla to turn the SSD's contents into a VM. Ideas... but first, I need a new CPU with integrated graphics, because my current AMD Ryzen 5 3600 processor is on a mini-ITX motherboard that only has one PCI-E slot, so if my graphics card gets passed to a VM, the Proxmox host would be left without any video output.

Additional note: I guess one possibility is to install Proxmox with a desktop environment, then run my existing Linux Mint as a virtual machine.

Pearl Harbor, 80 years later

80 years since the attack on Pearl Harbor that launched the Pacific theatre of World War Two.
 
Not many left who actually lived through that day... and hopefully, no one will ever have to live through something like it again.

Sunday, December 05, 2021

KyoAni Music Festival 2021


KyoAni Music Festival, the 5th Kyoto Animation Thanks Event, took place two weeks ago on November 20 and 21, 2021 at ROHM Theatre Kyoto Main Hall. I had wanted to write about the event earlier, but things (like setting up the rack server) interrupted the priority and before I knew it, the official reports (in Japanese: Day 1 and Day 2) had been posted on the official website. Still, the archive stream is available for a few more days, although they are switching over to the anime-focused version. I haven't seen the anime-focused version yet, but I assume it will be focusing on the projection on the large screen (excerpts of different anime works) that showed during the concert.

Anyway, this post is more about my thoughts on the event, rather than a blow by blow account of the two days.


Day 1 featured the following series: Tamako Market, Tsurune, Sound! Euphonium, Free!, Myriad Colors Phantom World, Munto, and Liz and the Blue Bird.
Day 2 was: Violet Evergarden, Kyokai no Kanata, Maid Dragon, Munto (again), and Chunibyo.

The event spanned two days, and I originally wanted to attend only Day 2 (the one with Violet Evergarden). Given that the event was in Kyoto, which was a bit of a travel (in terms of time and money), I decided to forgo the option of actually attending the event, and opted for the online streaming ticket. So I bought a ticket for Day 2 that came with the commemorative goods (which were delivered a few days before the actual event).

But as the days drew closer, and with all that hype on the official Twitter account, I gave in and bought a streaming ticket for Day 1 too, this time without the extra stuff.

So on November 20, I dutifully logged in to the streaming site, put on my headphones, and waited. Day 1 opened with the Munto series, which I think KyoAni sees as the starting point of its animation fame. This was followed by songs from Tamako Market and Phantom World. It was also nice to hear the songs for Tsurune, a series which I rewatched recently and thus still fresh in my memory. This was followed by the song from Liz and the Blue Bird. I recently rewatched this movie too, so I really love it. Director Yamada Naoko actually wrote the lyrics for one of the songs in the movie.
 

 
This was followed by a surprise. "Special Stage" came on the screen, and the audience was greeted with songs from K-On! series. Wow! TRUE came up to sing "Don't Be Lazy" and was followed by Tadokoro Azusa singing "Fuwa Fuwa Time". It is a pity the actual voice actors of HTT did not actually appear, but I was more than happy to hear the songs from another beloved KyoAni work. I mean, I was wondering why K-On! wasn't on the list for both days. After all, it is a series about music and more than appropriate for a concert. (Maybe because the VA for Mugi was in UK...)

 
This was followed by another series not listed: Hyouka. ChouChou came up to sing "優しさの理由" before the break.

After the break was Free!, a series that I haven't watch (and probably won't) so it didn't really resonate with me. Finally, we got to the final series, Sound! Euphonium, and the songs were performed by the Kitauchi Quartet and TRUE. TRUE was really working hard on Day 1, and she was going to appear in Day 2 as well. For a series about a school band, I had thought there would be more music pieces from Sound! Euphonium. But I guess they focused on the songs and not the music. Anyway, Day 1 ended with all performers singing "Te to te to te".



On to Day 2. I was really looking forward to Day 2, since it will feature Violet Evergarden. Like the day before, I sat down early to log in and don my headphones. Day 2 opened with Munto too, with basically the same song and act by the two main voice actors.

This was followed by songs from the Chunibyo series, which I have... watched. Never got to the end of season 2, though. 😅 Then, Chihara Minori came up to sing the OP and other songs for Kyokai no Kanata series, followed by that idol dance/song in the series, which she sang together with ZAQ and towana.

Next was the Maid Dragon series. The Super Chorogons and fhána performed songs from this series. A pity Miss Kobayashi herself did not make an appearance... I had thought the VA would at least have sent a video message or something.

And the "Special Stage" for Day 2 was... the Suzumiya Haruhi series! Chihara Minori sang "優しい忘却" and this was followed by her, ZAQ and TRUE singing "ハレ晴レユカイ".

The final part of the special (as well as the end of part 1 before the break) was the OP from Lucky Star series, performed by the Super Chorogons.

Finally, after the break, we got to part 2, which was solely Violet Evergarden. Evan Call welcomed everyone to part 2, and it felt like a mini Violet Evergarden orchestra concert. Part 2 kicked off with a special arrangement of music pieces from the Violet Evergarden series, arranged for this event by Evan Call and performed by a quartet and a pianist.


TRUE then took the stage to perform "Sincerely".

This was followed by Chihara Minori's performance of "Amy" and the movie version of "Michishirube".

For "Michishirube", the screen showed the exact cut when the song played in the movie. It goes to show how well the song fit that particular scene. This exact cut can now be used as the new music video for the song, I guess.

And just like during the concert, and during the movie's end credit roll, TRUE performed "WILL" followed by "未来のひとへ". She really worked hard over the two days, singing so many songs. And like in the concert, someone had to clap in between the two songs...

Finally, Yuuki Aira wrapped up this section with her performance, singing "Violet Snow" while playing it on the piano. This was where it all started, and so this is where it ended.

And like Day 1, all the performers for Day 2 came on stage to sing "Te to te to te" to conclude the event.

As you can see, the second part of Day 2 was really a mini Violet Evergarden orchestra concert. This is a series where music really played a crucial role, and it is nice to see it being given that amount of time during the music festival. I am also glad that the organizers made the concert available through online streaming, so that fans who couldn't travel to Kyoto were also able to enjoy this event. (I had some bad experience with the streaming platform, but I decided not to write about it anymore.) I really hope they will continue to adopt such an approach. Plus, I really hope they will hold more Violet Evergarden concerts. Because after comparing this event with the Violet Evergarden orchestra concert... I must say I enjoyed the Violet Evergarden concert a lot more. Maybe because music played such an important role in the series. Maybe because the music was so fitting. (Maybe because I am just such a Violet Evergarden fan...)

Next up: watch the anime-focused version of Day 1 and Day 2, which will start streaming tomorrow and the day after respectively.

This is the song list for Day 1.
 
And this is the song list for Day 2.

Note: All pictures/photos in this post (except the one of the commemorative goods) were taken from KyoAni Music Festival's official Twitter account and the official website.