Wednesday, November 04, 2020

Raspberry Pi 4B change USB boot order and hostname

This is really more a note to self so that I remember how to do things.

To change the boot order for a Raspberry Pi 4B:
sudo -E rpi-eeprom-config --edit
This opens up the current configuration.
Add in:
BOOT_ORDER=0xf14
to try to boot from USB first, then SD card.
BOOT_ORDER=0xf41
is the default, which will try to boot SD card, then USB.

On Ubuntu systems, to change the hostname:
sudo hostnamectl set-hostname newNameHere
Also,
/etc/hosts
should be edited to replace any occurrences of the old hostname with the new one. Then reboot. (Read about this method here.)

Tuesday, November 03, 2020

Raspberry Pi 400 launched

By now, most people would know that the Raspberry Pi 400 has been launched.


The Raspberry Pi 400 is similar to the Raspberry Pi 4B in terms of hardware, except that it has a higher clock speed of 1.8GHz instead of 1.5GHz. Unlike the RPi4B which comes with 2GB, 4GB, or 8GB of RAM, the Raspberry Pi 400 comes with 4GB of RAM. It houses the hardware inside a keyboard, like older computers of the 1980s. All that is needed is power supply, monitor (or even TV with HDMI input) and a mouse (or not...).

Personally, I like the concept. However, the keyboard layouts are limited right now, and I do like having the convenience of a JP106 keyboard layout (but I can live with US keyboard layout) as I need to enter Japanese. My only gripe is that the Raspberry Pi 400 continues to use micro HDMI... on the RPi4B, I can understand using micro HDMI because you need to squeeze two ports onto the small board. But the Raspberry Pi 400 has a lot more space now, so there is no real reason not to use full-size HDMI ports.

I also hope they can make 8GB RAM versions too. This will really make the Raspberry Pi 400 a serious contender for mini desktop PC replacements. Let's see if they make such a move in the coming months.

Sunday, November 01, 2020

Trying to install XFCE on Ubuntu 20.10 using a Raspberry Pi 4B

Note: This was about a failed attempt to install Twister UI in Ubuntu 20.10 on the Raspberry Pi 4B. Don't waste your time reading if you want a working solution.
 
Twister OS is a desktop OS for the Raspberry Pi 4B that allows the user to change between various themes that look like Windows and MacOS. It also comes with BOX86 which allows the Raspberry Pi 4B to run Linux x86 programs on ARM. The easiest way to get it up and running is to download the current release and flash it onto a SD card or USB drive.

However, as of November 1, 2020, Twister OS is still based on 32-bit Raspberry Pi OS. But there are 64-bit OSes for the Raspberry Pi 4B now, like Ubuntu. Ubuntu 20.10 even has a desktop version that works on the Raspberry Pi. At the same time, the creators of Twister OS recently developed Twister UI, which allows the themes of Twister OS to be easily installed on XFCE-based desktops like Linux Mint XFCE and Xubuntu.

So I thought, why not install Ubuntu 20.10 Server, then install XFCE desktop on that, and then try to install Twister UI to see if I can get a 64-bit version of Twister OS?

First, I downloaded Ubuntu 20.10 Server from here and flashed it onto a 128 GB USB flash drive. My Raspberry Pi 4B's EEPROM has already been previously updated to allow USB boot.

Then, I followed the instructions here to log in and install a desktop. For first boot, the username is ubuntu and password is ubuntu, and you will be prompted to change the password after logging in. To install the desktop, first update the system:
sudo apt update
sudo apt upgrade
Then, use the following to install XFCE desktop.
sudo apt install xubuntu-desktop
It will take a while. During the installation, I was asked about display manager, I chose lightdm which is supposed to be the default display manager for xubuntu.

Once the desktop has been installed, I rebooted the system. I was going to follow the instructions on the Twister UI page to install it. Which was to run the following command in a terminal window:
wget https://raw.githubusercontent.com/FlameKat53/Twister-UI-Patcher/main/install.sh && chmod +x ./install.sh && ./install.sh && rm install.sh

Instead, I was greeted with a black screen as lightdm failed to start. It seemed I had to follow something here. Basically, delete the file
/usr/share/lightdm/lightdm.conf.d/50-unity-greeter.conf
Then, create a file called
/usr/share/lightdm/lightdm.conf.d/50-xfce-greeter.conf
with the following contents:
[SeatDefaults]
greeter-session=unity-greeter
user-session=xfce
To do this, I had to remove the USB flash drive, plug it into my PC, then use my PC to delete/create the files.

Booting again from the USB flash drive now allowed me to get into the graphical login page and I was able to start the desktop. But it greeted me with a big error window on entering the desktop and asked me if I wanted to report the crash. At this point, I basically decided to stop trying stashed this idea away.
 
Update November 2, 2020: I am going to give it another try again when I have time. The next method would be to install Ubuntu 20.10 Desktop, then use
sudo apt install xubuntu-desktop
to install XFCE.
 

Saturday, October 31, 2020

Violet Evergarden the Movie: Cast greeting event to thank fans

Today, there was a cast greeting event for Violet Evergarden the Movie to thank fans, with more than one million tickets sold so far.

So I diligently booked my ticket for the event, which took place live in Kyoto but with live broadcast at theatres around Japan. Not being loaded with cash, I had to make do with the live broadcast at the local theatre instead of going to Kyoto.
 

This was my fifth viewing of the movie in the same theatre, breaking any previous records. My body has been more or less programmed to know when to cry. But... when Ishikawa Yui (the voice actor for Violet) asked if anyone has watched the movie for 20 times or more... there were such people. Compared to them, I guess I can't be called a fan... those are the true fans. Wow! More than 20 times since September 18, which is six weeks ago. More than 20 times in 44 days...
 
More about the event. This time, in addition to Ishikawa Yui (Violet) and Namikawa Daisuke (Gilbert), director Ishidate Taichi and sound director Tsuruoka Yota were at the event to thank fans for watching the movie. They also talked about bit about some background episodes during the movie's production, mostly to do with the sound aspect (voice recording and music).
 
For example, when the visual contents were done, sound director Tsuruoka actually went to Kyoto to meet director Ishidate to give his comments, which eventually led to some changes. Director Ishidate also mentioned that many people within Kyoto Animation gave their feedback on the visual contents too, especially Ogawa Taiichi (who is the enshutsu 演出 [staging?] for this movie). Also, some of the visual contents were edited to fit the voice acting. The voice recording for the beach/sea scene at the end of the movie was done with both actors together. Usually, for such scenes when people talk over each other, the voices are recorded separately, then pieced together. Sound director Tsuruoka said he took quite a bit of risk having them record the scene together, which meant no cutting/editing.
 
Oh, Ishikawa Yui came with a hairdo that uses braids and bun, like Violet's (although Violet's has two buns), and she had a red (more like maroon, but that could also be due to the lighting and camera) ribbon too.

Anyway, the movie is slated to air in Dolby Cinemas from November 13.
I guess this means Violet Evergarden the Movie will be the first movie I watch in a Dolby Cinema. 😅
 
There will also be a staff talk show event on November 12 in Kyoto, but it is not going to be broadcast. I guess I will have to give that a miss... I am not exactly rich enough to be traveling to Kyoto for a movie.

Oh, by the way, I now have two of these.

My overall thoughts on Violet Evergarden The Movie

Events:
 
Translations of short stories:
Gilbert Bougainvillea and the Fleeting Dream (unofficial translation of "ギルベルト・ブーゲンビリアと儚い夢")
The Starry Night and the Lonely Two (unofficial translation of 星降りの夜とさみしいふたり)
Diethard Bougainvillea's If (unofficial translation of ディートフリート・ブーゲンビリアIf) 
The Tailor and the Auto-Memories Doll (unofficial translation of 仕立て屋と自動手記人形)
Laura and the Auto-Memories Doll (unofficial translation of ローラと自動手記人形)
Flowers and the Auto-Memories Doll (unofficial translation of 花と自動手記人形)
 
Tellsis (Nunkish) translation:
Last line of Violet's final letter to Gilbert
 
Insights on the movie:
 
Audio commentary notes:
 
 
All posts related to Violet Evergarden.

Thursday, October 29, 2020

Convert WebP image to JPEG and batch renaming of extensions from .jpeg to .jpg

This is just a small note to myself.

To convert a WebP image to JPEG, use ffmpeg, which will automatically detect the input and output formats. The easiest is:
ffmpeg -i image.webp image.jpg
ffmpeg also allows other things like scaling and such, but I will look up those options if I really need them.

To batch rename files with .jpeg extension to .jpg instead:
find . -type f -name '*.jpeg' -print0 | xargs -0 rename 's/\.jpeg/\.jpg/'
If rename is not installed, it needs to be installed using
sudo apt install rename
first.

Tuesday, October 27, 2020

Save an entire web page as single HTML file using Monolith

There are times when I find nice articles on the web and want to save them for viewing later. There are various tools to do so, one of which is Joplin, but recently, I came across Monolith.

What makes Monolith special is that everything needed to render a web page is embedded into the HTML file, allowing you to view the HTML file offline too. And it is easy to install using snap.

Simply
sudo snap install monolith
to install.

To use, the command follows something like
monolith http://website.com/webpage/page -o output.html
where
http://website.com/webpage/page is the webpage to save
and
output.html is the name of the HTML file you want to save it to.

The GitHub repository contains other information like how to build it and other options available when running it. Windows binaries are also available. Unfortunately, there is no GUI frontend available for Monolith right now, although it should not be too difficult to come up with something, just a frontend to run the monolith command.

Monday, October 26, 2020

Watching Violet Evergarden the Movie for the fourth time

Violet Evergarden the Movie is the first movie which I have watched four times at a theater. And also the first movie which I have watched four times at the same theater. The first time was on opening day. The second time for the cast greeting event. The third time was to confirm the last line of Violet's letter. And the fourth time over the recent weekend was to see how the turnout is as well as to get the plastic folder.

And I have received some movie-related merchandise too, including the aforementioned plastic folder.

Why does the story of Violet Evergarden resonate with me?

For one, it is about ex-military personnel fitting into a world after military service. Being ex-military myself, it is something that I can appreciate, somewhat. Not fully, since my military experience is very different from Violet's, but the weight of a commander's decisions and having to live with consequences on the lives of others... that is something that I can understand.

Another is writing for others. As a translator, I am, in a way, like Violet. I take someone's words, and turn them into words that someone else (speaking another language and from another culture) can understand. I can appreciate how difficult it is to express thoughts and ideas, and the difficulty in choosing the right words and fitting expressions.

Anyway, there will be another cast greeting event this coming Saturday (31 October 2020) which will take place in Kyoto. While I won't be heading to Kyoto for the event (tickets are limited and the travel is costly), I do hope to get tickets to the local theater which will be broadcasting the event live. Wish me luck!

My review of Violet Evergarden the Movie (2020) can be found here.

Friday, October 23, 2020

Upgrading to Ubuntu 20.10 from the command line

Ubuntu 20.10 is out today. I run Ubuntu Core on my Raspberry Pi 4B (4GB RAM version) and I thought I would go ahead to upgrade it to 20.10, since 20.10 also seems to add in other support for RPI-EEPROM and allows USB boot. So I followed the guide here on how to upgrade to Ubuntu 20.10.

Basically:
First
sudo apt update && sudo apt dist-upgrade
Then
sudo nano /etc/update-manager/release-upgrades
Change
Prompt=lts
to
Prompt=normal
Then,
sudo do-release-upgrade -d
This will start the upgrade process. It will take some time, and there will be a few prompts along the way. The default options usually work, but for the option to restart services while upgrading, it is safe to select 'Yes' instead of the default 'No'.
 
Once the upgrade is done, reboot.
sudo reboot

Third-party repositories will be disabled, so you can reenable them by:
sudo sed -i '/deb/s/^#//g' /etc/apt/sources.list.d/*.list
sudo sed -i 's/focal/groovy/g' /etc/apt/sources.list.d/*.list
sudo apt update
 
Some may not support 20.10, so you will need to temporarily disable them. For example, Jellyfin.
sudo nano /etc/apt/sources.list.d/jellyfin.list
Then, add a '#' in front to disable it.
# deb [arch=arm64] https://repo.jellyfin.org/ubuntu groovy main # disabled on upgrade to groovy
 
This should allow sudo apt update to work. 

By the way, Ubuntu now supports USB boot via the EEPROM, and you can find instructions here (after upgrading to 20.10). I have not tried it yet since I do not need USB boot on my server yet.

Here's the result from neofetch after upgrading.

Hope this helps! Remember, upgrading a system always comes with risks, so do so at your own risk! I won't be responsible if anything fails. All I can do is share what worked for me.

Wednesday, October 21, 2020

Fly Me to the Moon (トニカクカワイイ)

(Picture source: MyAnimeList)
 
I like love stories, and Fly Me to the Moon (トニカクカワイイ, Tonikaku Kawaii) is a manga series that has been turned into an anime that is currently airing this season. I really love this series which explores two strangers who suddenly got married and are slowly learning about each other and love as they live their lives together.


The protagonist is Nasa, who fell in love at first sight with Tsukasa. So much so that he got distracted and got hit by a truck. But he forced himself to his feet so that he could go after her to tell her his feeling. Tsukasa agreed to go out with him if he would marry her. Which he promptly promised. Then there was a blank of almost three years, until out of the blue, Tsukasa showed up at Nasa's door on his 18th birthday with a marriage application form.
 
 
The story gives me the warm and fuzzy feeling as the two teenagers slowly grow together. Even though they are married (technically), you see their emotional and physical relation develop in tandem. It is fun and heartwarming to see them grow.

Throughout the story, it is hinted that Tsukasa could be related to Kaguya-hime, a figure in Japanese folklore that came to Earth from the moon but eventually returned to the moon. A moon fairy or deity. I am looking forward to how this part of the story goes.

Anyway, the anime series is ongoing, the manga serialization is ongoing, and I am diligently chasing them to see how this cute couple turn out.

Tuesday, October 20, 2020

New web UI for Marlin running on ESP32-based boards

There is a new web UI for Marlin being developed. While I have not tested it yet, it should run on the MRR ESPA and MRR ESPE boards.
 
 
Instead of being based on a third-party library like ESP3DLib (which allows Marlin to run the ESP3D webserver on ESP32-based boards), the web UI is part of Marlin source code itself. Marlin did have a simple web UI (more like a terminal window) and this new web UI makes it much more easier to use ESP32-based boards without having to rely on a third-party library.
 
The code is still under development so expect lots of issues. If you want something tried and tested, ESP3D is a tested web UI, and ESP3DLib has been tested quite extensively in the past year.

Friday, October 16, 2020

Strategic consistency and strategic surprise

I attended an online seminar recently and it made me think about the issue of strategic consistency versus strategic surprise. I link it back to Sun-tzu's Art of War, to the concept of orthodox 正 and unorthodox 奇.

Strategic consistency is the orthodox. By acting in a consistent manner, a nation earns the trust of its allies because its allies know what to expect. At the same time, it allows adversaries to predict each other's actions and map out their own responses. While this may seem boring and predictable, it prevents strategic miscalculations which may result in disaster for both sides.

However, a predictable contest is a boring one, and one in which the winner is more or less fixed. What makes international relations so interesting is the concept of strategic surprise. While strategic consistency means we know more or less what a nation will do, once in a while, a strategic surprise can be used to gain an advantage. Strategic surprise is built on strategic consistency, though. It is precisely because, due to strategic consistency, we expect a nation to act in a certain way, that when it does something else, it becomes a strategic surprise.

So strategic consistency sets the ground and fixes mindsets, while strategic surprise is like the winning blow. In that case, why not just rely on strategic surprise?

Because strategic surprise without strategic consistency is no longer a surprise; it is just strategic inconsistency. When a nation acts in an inconsistent manner all the time, no one knows what it will do. Allies cannot trust it. Adversaries, since they cannot make reliable predictions, will be all the more cautious to guard against all possibilities. Strategic inconsistency not only alienates allies, it also makes adversaries more prepared.

Giving an example, look at the United States. Before Trump was elected, the United States was consistent in its policies, and this strategic consistency allowed it to gain the trust of allies as well as other like-minded nations. When Trump was elected, the United States became more unpredictable. While it was a strategic surprise at first, as allies and adversaries both realise the lack of consistency in U.S. policy, we see allies becoming uncertain about how much they can rely on the United States. And adversaries become more cautious as they guard against more possibilities, but also more bold since they see U.S. allies becoming less trusting of the United States.

Strategic consistency with strategic surprise is the masterful application of orthodox and unorthodox methods. Strategic inconsistency, however, is just being consistently inconsistent, and is purely orthodox without the winning blow of the unorthodox.

Wednesday, October 14, 2020

An impossible wish

「強く願うと思いはかなうものだな」
「強く願ってもかなわない思いはどうすればよいのでしょうか」
"Wishes come true if one hopes for them strong enough."
"What should one do if one's wish will not come true no matter how strong one hopes?"

Yes, what should one do when one's wish is a wish that cannot be fulfilled?

(The quote is from Violet Evergarden the Movie.)

Saturday, October 10, 2020

秋雨細細,楓葉漸紅

秋雨細細
楓葉漸紅
深夜風起難入眠
明月皎皎
窗前如晝
獨望星空淚兩行


Friday, October 09, 2020

KyoAni releases first 10 minutes of "Violet Evergarden the Movie"

KyoAni has released the first 10 minutes of Violet Evergarden the Movie on YouTube.


The movie starts with a view of an iconic house from the anime series. That house can be immediately recognised because of its unique design.

3 minutes into the movie, tears are welling in my eyes.

This is me, 7 minutes into the movie.
😭

I have watched this 3 times in the theaters, and watching the same 10 minutes for the 4th time on YouTube still made me cry.

This is the power of Kyoto Animation.

I probably need to watch it again in the theaters. 😂😅


My review of Violet Evergarden the Movie (2020) can be found here.

Thought after reading "Japanese musician violently attacked in New York for being 'Chinese'"


To many, the United States is the leading advocate for human rights in the world. For gender equality. For democracy. For fighting racism.

Yet it seems that this is just a case of not wanting to face up to one's own problems.

We all know how that feels. It is easier to point out the issues of others rather than to work on the issues we have. It is easier to criticise someone for being lazy than to fight our own laziness. It is easier to scold someone for being late than to make sure we are punctual all the time.

Now, it just feels like, all along, the United States has been going around the world telling everyone to pull up their socks because it doesn't want to pull up its own.

Sigh.