My third day with Haiku: a complete picture is starting to form.

My third day with Haiku: a complete picture is starting to form.
TL;DR: Haiku could become a fantastic desktop operating system with open-source code. I really want this to happen, but a lot more fixes are needed.

For two days, I've been exploring Haiku, an unexpectedly good operating system. It's now the third day, and I like this OS so much that I keep thinking: how can I make it my daily operating system? In terms of overall ideas, I prefer Mac, but unfortunately, it comes without open-source code, and I have to look for alternatives with open-source.

Over the last 10 years, this has often meant Linux, but it also has its own set of problems..

Play video

The Haiku operating system was presented on DistroTube.

I tried Haiku as soon as I heard about it, and was immediately impressed—especially with the desktop environment that 'just works', and it clearly surpasses any Linux desktop environment I conceptually know. I want, want, want!!!

Let's take a look at real usage on the third day!

Missing applications

Application availability is a very 'fateful' aspect of any operating system, an old topic. As far as Haiku is concerned, I know that there are various options available for most cases.

However, I still can't find applications for my everyday needs:

  • a markup editor (for example, Typora). Of course, there is CuteMarkEd, but it seems to lack buttons and keyboard shortcuts for text markup. There's also Ghostwriter, but it has no keyboard shortcut for marking text as inline code or a code block.
  • screen capture to animated GIF (for example, Peek). There is BeScreenCapture, but it can't do that.
  • Software for 3D printers (for example, Ultimaker Cura, PrusaSlicer).
  • 3D CAD (for example, FreeCAD, OpenSCAD, or built-in in Onshape). There is LibreCAD, but it only does 2D.

Development model

What does Haiku need for success, in terms of available applications? Certainly, attracting developers.

Currently, the Haiku development team has undoubtedly done a tremendous job implementing various popular applications. However, for complete success as a platform, there needs to be an easy way to create application versions for Haiku. Ideally, building an application for Haiku should be just another option in the existing Travis CI or GitLab CI build matrix. How can a company like Ultimaker, the creator of the popular open-source software Cura for 3D printers, consider building its applications for Haiku?

I am convinced that the classic approach of having a maintainer who assembles and supports packages for a specific Linux distribution does not scale well with a long list of applications. One might argue whether 3D printer software is on that list, but, for example, scheduling software for a specific school is present. What does Haiku offer for such applications? (They are usually written using Electron, available for all operating systems, often wrapped in AppImage, which means delivery to all users without significant issues).

LibreOffice

It is clear that having LibreOffice for Haiku is no small feat, something users of BeOS could only dream of. However, not everything is perfect.

In my case (Kingston Technology DataTraveler 100 USB stick), it takes about 30 seconds to launch, and the developers suggested that a regular application launch shouldn't exceed 4-5 seconds (when using a regular hard drive [on my SSD everything launched in less than a second, — translator's note]).

I would like to see some indication of progress when launching a large application, for example, a 'bouncing icon', a cursor change, or something similar. The LibreOffice splash screen appears only after a few seconds, and prior to that, you don't know what's happening.

My third day with Haiku: a complete picture is starting to form.
Bouncing application icons as a sign that applications have launched.

  • The keyboard shortcuts shown in the menu are incorrect (it's labeled Ctrl+O, but actually Alt+O works; I checked: Alt+O works, while Ctrl+O does not).
  • Alt+Z does not work (for example, in Writer).
  • The problem 'Application LibreOffice has aborted the shutdown process' [this is intentional, — translator's note].

Application launch times

NOTE: Please take this section with a grain of salt. Performance is actually excellent if you rely on the opinions of others. My results vary greatly... I suspect my setup specifics and the measurements I’ve taken so far are unscientific. I will update this section as new ideas/results emerge.

Application launch performance (for non-native apps)... is not that great, with a difference of about 4-10 times. As you can see, only 1 CPU core was utilized when launching non-native applications, for reasons I don't understand.

My third day with Haiku: a complete picture is starting to form.
How I perceive the application launch speed.

  • Start Krita takes about 40 seconds on a Kingston Technology DataTraveler 100 flash drive connected to a USB2.0 port (Krita AppImage launches in a fraction of a second on Xubuntu Linux Live ISO via USB2; more testing needed). Correction: About 13 seconds on a SATA SSD with ACPI disabled.

  • Start LibreOffice takes 30 seconds on a Kingston Technology DataTraveler G4 flash drive connected to a USB2.0 port (a fraction of a second on Xubuntu Linux Live ISO via USB 2; more testing needed) Correction: Less than 3 seconds on a SATA SSD with ACPI disabled.

I have also heard that the latest developments will improve performance on SSDs by more than 10 times. I am waiting with bated breath.

Other reviewers constantly praise Haiku for its speedy operation. I wonder what is wrong with my system? Correction: Yes, ACPI is broken on my system; if disabled, the system runs faster.

I conducted several tests.

# 
# Linux
#
me@host:~$ sudo dmidecode
(...)
Handle 0x0100, DMI type 1, 27 bytes
System Information
 Manufacturer: Dell Inc.
 Product Name: OptiPlex 780
​me@host:~$ lsusb
Bus 010 Device 006: ID 0951:1666 Kingston Technology DataTraveler 100
# On a USB 2 port
me@host:~$ sudo dd if=/dev/sdc1 of=/dev/null bs=64k count=4096
4096+0 records in
4096+0 records out
268435456 bytes (268 MB, 256 MiB) copied, 7.03517 s, 38.2 MB/s
# On a USB 3 port
me@host:~$ sudo dd if=/dev/sdc1 of=/dev/null bs=64k count=4096
4096+0 records in
4096+0 records out
268435456 bytes (268 MB, 256 MiB) copied, 2.08661 s, 129 MB/s
#
# Haiku - the exact same USB stick
#
/> dmidecode
# dmidecode 3.2
Scanning /dev/misc/mem for entry point.
# No SMBIOS nor DMI entry point found, sorry.
# On a USB 2 port
/> dd if=/dev/disk/usb/1/0/raw of=/dev/null bs=64k count=4096
4096+0 records in
4096+0 records out
268435456 bytes (268 MB, 256 MiB) copied, 7.44154 s, 36.1 MB/s
# On a USB 3 port
/> dd if=/dev/disk/usb/1/0/raw of=/dev/null bs=64k count=4096
4096+0 records in
4096+0 records out
268435456 bytes (268 MB, 256 MiB) copied, 7.47245 s, 35.9 MB/s

For full transparency, I checked everything on two different machines with Linux and Haiku. If needed, I will redo the tests on a similar machine. It is still unclear why applications launch slower than via usb2.0 on Linux. Update: There are many USB-related errors in the syslog of this machine. So the results above may be atypical for Haiku as a whole.

As the saying goes: if you can’t measure it, you can’t manage it. And since there is a desire to improve performance, I think a set of tests is in order 🙂

Keyboard shortcuts

For users migrating from other operating systems, Haiku excels when it comes to keyboard shortcuts. Personally, I particularly appreciate the Mac-style shortcuts, where you hold the key to the left of the spacebar (‘Ctrl’ on Apple keyboards, ‘Alt’ on others) while typing a letter or number. Since Haiku performs really well in this area, I feel that the following options could be considered:

Keyboard Shortcuts on the Desktop and for It

I like that you can click the icon and press Alt-O to open it, or use the more traditional Alt-down combination.

Likewise, it would be nice if you could press Alt-Backspace to move a file to the trash, in addition to Alt-T.

To display the desktop: it would be nice to apply Alt-H to ‘Hide’ and Shift-Alt-H to ‘Hide All’. And perhaps it would be useful to introduce a Shift-Alt-D combination to ‘Show Desktop’.

Shortcuts in Dialogs

I open StyledEdit, type text. I press Alt-Q. The program asks if I want to save. I press Alt-D to ‘Do Not Save’, Alt-C for ‘Cancel’. But this doesn’t work. I try using the arrow keys to select the button. That doesn’t work either. I repeat the same actions in a Qt-based application. Here, at least, the arrow keys work for selecting the button. (Control keys for selecting buttons were initially used in Mac OS X, but developers seem to have forgotten about this possibility since then.)

Shortcuts for Taking Screenshots

It would be great if you could press Alt-Shift-3 for a screenshot of the entire screen, Alt-Shift-4 for a cursor to select an area of the screen, and Alt-Shift-5 for the current active window with its decoration.

I wonder if this can be configured manually, but it's probably not possible. At least, my attempt yielded no results [I should have tried to wrap it in a script! — Translator's note].

My third day with Haiku: a complete picture is starting to form.
Almost. But not quite. The ‘-bw’ option is ignored, plus additional default settings are needed.

Other Things on the Keyboard

You can feel the developers' care, so I will continue to describe my experience with the keyboard in Haiku.

It's impossible to enter national symbols.

The character «`» is special; it can be part of another character (like «e») or stand alone. Different operating systems handle it differently. For example, I can't enter this character on a German keyboard in KWrite; if I try to enter it, nothing happens. When I input this character in QupZilla, I get «>>». In native applications, the character can be input, but it requires double pressing for it to appear. To enter it three times (which is often needed when marking up code blocks, I type it that way constantly), I have to press the key six times. On Mac, the situation is handled more intelligently (three presses are sufficient while maintaining normal input of diacritical marks).

Java Applications

Missing JavaFX? Java to the rescue, right? Well, not quite:

pkgman install openjdk12_default
/> java -jar /Haiku/home/Desktop/MyMarkdown.jar
Error: Could not find or load main class Main
Caused by: java.lang.NoClassDefFoundError: javafx/application/Application

Let's take another route:

/> /Haiku/home/Desktop/markdown-writer-fx-0.12/bin/markdown-writer-fx
Error: Could not find or load main class org.markdownwriterfx.MarkdownWriterFXApp
Caused by: java.lang.NoClassDefFoundError: javafx/application/Application

It turns out that in real life, Java applications are not as portable as advertised. Is JavaFX available for Haiku? If so, why isn't it installed alongside openjdk12_default?

Double-clicking the jar file doesn't work

I'm surprised that Haiku has no idea how to handle a double-click on a .jar file.

Bash behaves strangely

Since there is bash, it was expected that pipes would work:

/> listusb -vv > listusb.txt
bash: listusb.txt: Invalid Argument

Conclusion

Why am I writing these articles? In my opinion, the world genuinely needs an open-source operating system like Haiku, clearly focused on PCs, and also because I find increasingly frustrating that Linux desktop environments do not work together.. I'm not arguing that creating the desired desktop environment for PCs requires an entirely different kernel or that a similar environment can be achieved on top of the Linux kernel, but I am curious what kernel experts would say about this matter. For now, I'm just playing around with Haiku and taking notes in the hope that they will be useful for Haiku developers and/or the interested public.

Try it yourself! After all, the Haiku project provides images for download from DVD or USB, created daily.. To install, simply download the image and write it to a flash drive using Etcher..

Have questions? We invite you to our Russian-speaking Telegram channel..

Error Overview: How to Shoot Yourself in the Foot with C and C++. A Collection of Haiku OS Recipes

From author Translation: this is the third article in the series about Haiku.

List of Articles: The first, The second.

Source: habr.com

Buy reliable website hosting with DDoS protection, VPS VDS servers 🔥 Buy reliable website hosting with DDoS protection, VPS VDS servers | ProHoster