Haiku (Pt. 1)
- - - - - - - 

I tried out Haiku. I'm going to write a phlog or few about it.


_BACKGROUND_______

In the late 90s I had really really wanted a computer running
BeOS. I did not have the money for such a system (I was using
hand me down 386 machines running Windows 95 in those days).

Fast forward to now. I have been, like many others lately,
thinking about other options outside of Linux. Without making
this phlog about those reasons, lets just say I am not happy
with a number of things about the direction of Linux. So, I
decided to do what seems a popular option: buy a cheap Think
Pad and put BSD on it.

I put FreeBSD on it. There was mostly minimal fuss working
with the FreeBSD installer and I got it on the laptop with
relative ease. However, the BSD docs seemed to be incomplete
or just plain wrong (likely outdated rather than wrong) in a
number of places. In the end I had a lot of trouble getting
the right video driver set up and could not get X11 up and 
running. I was able to get xmd as a login screen very briefly
but it would not actually let me log in to an x session. I
kept getting a "no screen found" error. After a lot of time
and effort I decided to scrap it. I tried out GhostBSD. It
installed no problem. Everything worked... but I didnt like
it. The whole point was that I did not want a whole desktop
environment... I just wanted a tiling WM and a few basic 
things that I use regularly. So I put Awesome on it, since
I found evidence that it would work. It did... but I still
knew it was sitting atop a lot of stuff I did not need and
did not want.

From there I decided, lets get weird with it. I have this 
extra laptop... what systems have I always wanted to try on
actual hardware? Plan9/9Front was my first thought, but
after the headache I had with FreeBSD I figured maybe that
was a little much for the moment (I may be wrong, but I
assume the installation would end up just as problematic).
Then it dawned on me: Haiku is supposedly stable at this
point. So I decided to try it out, and here is how it has
gone so far...


_INSTALLATION______

The uncompressed iso was just over 800mb. I put it on a USB
drive, plugged it in, and switched the laptop on. Once I 
selected my boot option I was quickly greeted with a very
lovely splash screen and a few options. I chose install.
The intaller is a graphical installer and required no
configuration on my system to get the video running. All
of the GUI stuff was very polished. Similar to many other
installers it asks for a few basic bits of information and
requests some guidance for partitioning and the like. The
install was _fast_. Then a reboot and I was in.


_FIRST_THOUGHTS____

I, as you may imagine from my earlier mentioning of wanting
a tiling WM and a terminal, am not much for a mouse centric
computing experience (which makes me question whether or 
not I'd really like Plan9 either). The system is very much
a traditional desktop system. The icons and graphics are 
all very polished and sharp. It booted up really quickly
and was very very snappy.

The Haiku desktop reminds me a lot of my experiences using
the pre OSX Mac OS. I cannot say that I love it, but it is
interesting and feels like a modern take at a retro kind
of desktop system.

Most basic applications are present: terminal, text editor,
media applications, etc. The Wifi worked out of the box; I
just needed to enter in my network details and all was well.

The font rendering of the system seems a little off, in 
particular in the terminal application (which seems to be
an xterm running bash).

Speaking of the terminal, it is glitchy and leaves a bit
to be desired. Most of the GNU tools you might expect are
present (gawk, gcc, make, info). Sadly, the only terminal
editor I could find on the system was Nano. For those that
do not know: I despise Nano. Once I realized that I thought,
"oh, I must just need to grab stuff with their package 
manager". So I took a look at that... the system comes with
around 90% of what is available from their package manager.
No Vim/Vi/Emacs/Ed/etc to be found. So, being on a quest
to make this work and be usable to me while still trying to
give Haiku a chance to be itself I pulled (git is installed
by default) my text editor (Hermes) and tried building it
from source. I got a small compile error about basename
not existing. I had gotten the same error on OSX and had 
already made a preprocessor IFDEF for handling that, so I
just added testing for haiku to that so that libgen.h would
be loaded and I was in business. It compiled and I now had
a working editor. I am using that editor now as I type this.
The only weirdness in the Haiku terminal is that the cursor
seems to randomly disappear and reappear, but it does not
affect general usage.

I searched out other repos and found that there were more
that could be added. Doing so got me some better fonts but
not a whole lot else.

So I decided to see what kind of customizations could be
done to the GUI system. Turns out they take a GNOME sort
of approach and do not offer much in the way of user
customization to applications or the system itself. I am
mixed on this. There is something to be said for simple
and functional... if it works well. For the most part it
does. 

Haiku uses an odd dock/launcher thing that sits somewhere
between the windows start menu, a dock, and a system tray.

Not all of the shortcut keys have been working for me as
the docs state they should, but I do like a lot of the way
things were designed in that regard. Navigating workspaces
is really easy. As far as I can tell there are four work-
spaces. Each of those has multiple rows and columns worth
of desktops that can be navigated. This ends up being so
much as to feel like overkill for me. That said, navigating
around them and between windows is pretty wuick and easy
once you get the hang of it. The only thing I do not like
is that there is no indication when you switch column, row,
or workspace which one you have moved to. You just have to
track it in your head. Which is mostly ok, but is a little
annoying. They do have a "workspaces" application that you
can run to move between them by clicking on the one you want
in a grid... but I dont care for that workflow and it is
just one more floating window to deal with.

Speaking of floating windows, they do have a cool-ish thing
going on where windows can be snapped together and then
moved as a group. This can happen on the sides or on the top
or bottom. THe windows also allow for a stacked system where
you drop them on top of each other while holding the super
key and they will form a single unit with one displayed at
a time and a tab-bar-like structure along the top allows you
to switch to different ones quickly (hot keys are available
for that switching as well. 

It comes with openssh and I had not issues using the terminal
to connect to some of my favorite pubnixes (which brought
me back to a more normal computing environment).

Haiku also comes with a web browser. It was nothing to write
home about, but did seem serviceable if possibly a little
outdated. I do not know off the top of my head what render
engine it uses and dont feel like looking it up, but I will
write more on the browser in my next entry in this series.

The system seems stable and light. It does not seem to run
heavy at all. The file structure/layout is a huge mystery
to me. It does not follow the unix/linux style and I have
not worked it out fully where things should go. There seems
to be a duplication or mirroring happening in two areas of
the filesystem as well that I have not found good details on.
The documentation is great for getting installed and for
the basics, but is lacking from that point forward. I did
start digging into the development docs a bit. All of their
main dev seems to be in C++, which does not appeal to me
at all as I just never felt comfortable in the traditional
OOP languages (Java and C++ come to mind, smalltalk too I
suppose, though my experience there is more limited). They
have some tools for building packages and doing ports and
I may decide to play around with those at some point if I
end up sticking with Haiku for logner than a test drive.

All of the hardware for the thinkpad that I have tried has
worked out of the box with no config: video, wifi, and the
trackpoint are all working. I have not tried sound yet but
will try to do so tomorrow and report back. The media keys
do not work, but I think that is a solvable problem. They
provide a number of utilities for modifying the keymap and
for building shortcuts (running commands based on key 
combinations).

In the end, my first impressions are that it is a stable and
light system that would be great for someone like my Mom.
Maybe not so much for me. I am going to spend a little time
with it though and dive a little deeper. I'll do another
update or two as that happens.

Oh! I forgot to mention: part of the filesystem weirdness
likely comes from the fact that Haiku (and BeOS before it)
is a single user system with no support for multiple users
at all; by design.


_UP_NEXT_______

I found out that there is a system similar to Gentoo portage
for Haiku. I looked into it and it seems that if I want to
apply some diffs and build some recipes I can get Vim and
tmux and a number of other goodies. I wonder if I can get
ST to build on it. It would be nice to leave their terminal
behind me.

I plan to try out this system and report back about my
successes and failures. I will also try to get some sound
or a movie running and see how that goes.

If you have made it this far, thank you for reading my more
or less unedited ramblings about a kind of odd kind of too
vanilla (so far) opperating system. There are lots of cool
things about Haiku (its filesystem allows attributes to be
added to files and then to query for those attributes...
which is kidn of cool; for example) that I hope to talk more
about in future phlogs.