My third day with Haiku: the big picture is starting to emerge

My third day with Haiku: the big picture is starting to emerge
TL; DR: Haiku could be a great open source desktop operating system. I really want this, but it still needs a lot of fixing.

Two days I study Haiku, unexpectedly good operating system. Today is the third day, and I like this OS so much that I constantly think: how can I make it an operating system for every day? In terms of general ideas, I like the Mac better, but here's the problem: it doesn't come with open source, and you have to look for open source alternatives.

Over the past 10 years, this has most often meant Linux, but it also has its own problem set.

Haiku operating system featured on DistroTube.

I tried Haiku as soon as I heard about it and was immediately impressed - especially with a desktop environment that "just works" and also clearly far superior to any Linux desktop environment I know of conceptually. Want Want want!!!

Let's see the real work on the third day!

Missing Applications

The accessibility of applications is a very β€œlife-changing” aspect of any operating system, old subject. As far as Haiku is concerned, I know that for most cases there are different options available.

However, I still can't find apps for my daily needs:

  • markup editor (for example typora). Of course have cutemarked, but it doesn't seem to have any buttons or keyboard shortcuts for laying out text. Also have Ghost, but he has no keyboard shortcut to mark up text as inline code, or a block of code.
  • screen capture to animated GIF (for example Peek). There is BeScreenCapture, but he does not know how.
  • Software for 3D printers (for example, Ultimaker Cure, PrusaSlicer).
  • 3D CAD (eg. FreeCAD, openSCAD, or embedded in onshape). There is LibreCAD, but it is only 2D.

Development Model

What does Haiku need to be successful, in terms of available applications? Of course, to involve developers.

At the moment, the Haiku development team has certainly done a lot of work in implementing various popular applications, however, to be completely successful as a platform, it is necessary to be able to easily create versions of applications for Haiku. Building an application for Haiku should ideally be another option in an existing Travis CI or GitLab CI build matrix. So how does a company like Ultimaker, maker of the popular open source Cura 3D printer software, go about building their applications for Haiku?

I'm convinced that the classic "maintainer" approach that builds and maintains packages for a specific Linux distribution doesn't scale with a large list of applications. It can be argued whether 3D printer software is on this list, but, for example, software for organizing a particular school's timetable is. What does Haiku offer for such applications? (They are usually written using Electron, available for all operating systems, under Linux they are most often wrapped in AppImage, which means delivery to all users without any problems).

LibreOffice

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

In my case (Kingston Technology DataTraveler 100 USB stick) it takes about 30 seconds to start, and the developers suggested that a normal launch of applications should not exceed 4-5 seconds (in the case of using a regular hard drive [on my SSD, everything started in less than a second, - approx. translator]).

I would like to somehow see the progress of launching a large application, for example, a β€œjumping icon”, changing the cursor, or something else like that. The LibreOffice splash screen only appears after a few seconds, and before that you don't know what's going on.

My third day with Haiku: the big picture is starting to emerge
Bouncing app icons as a sign that apps are running.

  • The keyboard shortcuts shown in the menu are erroneous (signed Ctrl + O, but in fact Alt + O, I checked: Alt + O works, but Ctrl + O does not).
  • Alt+Z doesn't work (for example in Writer).
  • Problem β€œApplication LibreOffice has aborted the shutdown process” [it's so conceived - approx. translator].

Application launch time

NOTE: Please take this section with a grain of salt. The performance is actually excellent if you rely on other people's opinions. My results are very different... I assume that the specifics of my setup and the measurements made so far are unscientific. I will update this section as new ideas/results emerge.

Launch performance of (non-native) apps… not that great, about 4-10x difference. As you can see, only 1 CPU core was used when running non-native applications, for some reason I don't understand.

My third day with Haiku: the big picture is starting to emerge
As I see the speed of launching applications.

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

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

I also heard that the latest developments will improve performance on SSD by more than 10 times. I wait with bated breath.

Other reviewers consistently praise Haiku for its peppy performance. Wondering what's wrong with my system? Correction: yes, broken ACPI on my system; if disabled, the system works faster.

I did some 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 complete transparency, I tested everything on two different machines with Linux and Haiku. If necessary, I will repeat the tests on a similar machine. It's still unclear why applications run slower than via usb2.0 on Linux. Update: There are many USB related errors in the syslog of this machine. So the above results may not be typical for Haiku in general.

As the famous saying goes: if you can't measure, you can't manage. And since there is a desire to improve performance, then I think the test suite is in order πŸ™‚

Keyboard shortcuts

For defectors from other operating systems, Haiku is great when it comes to keyboard shortcuts. Personally, my favorite Mac-style keyboard shortcuts are when you hold down the key to the left of the space bar ("Ctrl" on Apple keyboards, "Alt" on others) while typing a letter or number. Since Haiku does really well in this area, I feel like the following options could be considered:

Keyboard shortcuts for and on the desktop

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

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

To display the desktop: It would be nice to use Alt-H to "Hide" and Shift-Alt-H to "Hide All". And maybe it would be nice to enter a combination of Shift-Alt-D - to "Show desktop".

Combinations in dialog boxes

I open StyledEdit, I enter the text. I press Alt-Q. The program asks if it should be saved. Press Alt-D for Don't Save, Alt-C for Cancel. But it doesn't work. I'm trying to use the arrow keys to select a button. Doesn't work either. I repeat the same steps in a Qt-based application. Here, at a minimum, the arrow keys work to select a button. (Control keys for selecting buttons were originally used in Mac OS X, but developers have since seemingly forgotten about this feature.)

Screenshot shortcuts

It would be great if you could press Alt-Shift-3 to take a screenshot of the entire screen, Alt-Shift-4 to bring up a cursor that allows you to select an area of ​​the screen, and Alt-Shift-5 to the currently active window and its decoration.

I wonder if this is manually configured, but most likely this is not possible. At least that attempt didn't work for me.I should have tried wrapping it in a script! - approx. translator].

My third day with Haiku: the big picture is starting to emerge
Almost. But not really. "-bw" is ignored, plus additional default settings are needed.

Other things on the keyboard

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

Unable to enter national characters

The character "`" is special, it can be either part of another character (for example, "e") or independent. In different operating systems, its processing also differs. For example, I can't type the given character on a German keyboard in KWrite; If you try to enter it, nothing happens. Entering the same character in QupZilla results in ">>". In native applications, the character is entered, but you need to double-tap it for it to appear. To enter it three times (this is usually required when marking code blocks, I type it all the time), you need to press the button 6 times. On Mac, the situation is handled more intelligently (three taps are enough while maintaining the usual input of diacritical characters).

Java Applications

Missing JavaFX? Java comes to the rescue, doesn't it? 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 go the other way:

/> /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 there JavaFX for Haiku? If so, why isn't it installed along with openjdk12_default?

Double click on jar file not working

Surprised that Haiku has no idea how to handle double clicking on a .jar file.

Bash is acting weird

Since there is bash, pipes were expected to work:

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

Conclusion

Why am I writing these articles? In my opinion, the world really needs an open source operating system like Haiku that is explicitly targeted at the PC, and also because I am increasingly annoyed by the fact that desktop environments for Linux do not work together. I'm not arguing that a completely different kernel is needed to create the desired user environment for a PC, or that one can get a similar environment on top of the Linux kernel, but I'm interested in what kernel experts have to say about this. In the meantime, I just dabble in Haiku and take notes in the hope that they will be useful to the Haiku developers and/or the interested public.

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

Got questions? We invite you to the Russian-speaking telegram channel.

Error overview: How to shoot yourself in the foot in C and C++. Haiku OS Recipe Collection

From Author Translation: This is the third article in the Haiku series.

List of articles: First, The second.

Source: habr.com

Add a comment