Usability Improvements

Body:  Usability Improvements Haiku R1 should be polished and not suffer from BeOS' insufficiencies. If we release a half-baked OS our userbase will turn away. This is a summary of many improvements discussed on the GE-list and elsewhere: TODO for R1 rework window zooming as it often does not work as one would expect add BTextView context-menu with "cut", "copy", "paste", "select all", "undo" improve BTextView keyboard-navigation: move to next/previous word, paragraph, beginning/end of file show the task switcher immediately upon hitting CTRL+TAB (seems to be an R5 bug which causes a too long delay) remove unneeded preferences (menu settings, scrollbar style) combine similar preferences apps (Appearance: UI+screen, Input Devices: mouse+keyboard+keymap, Media: audio+video+sounds, Networking: ppp+networking) modify apps in the source tree to match modifier key functions for lists: Shift-click selects a range, CTRL-click toggles one item parent menu items which don't have a message associated with them should not close the menu when clicked demo apps are not needed by default.

Installer

Body:  Introduction This RFC describes an installation concept that aims to be more natural to the end-user than current package-based installers. The idea behind this concept is to get rid of the whole installation process. The complete application, including its dependencies and data files, is a single self-contained executable (one app, one file). There is absolutely no installation process. Just run and you're done. Delete and it's uninstalled. Replace and you've upgraded.

BFS2 or our next FS

Body:  Possible Candidates ZFS (very cool, snapshots, volume chaining (no more partition management...), interesting for query-only FS, compatible license)XFS (fast, proven, effective) roll our own (much work) Extended File Type System File types become more human-readable: Document, Image, Video, etc. In our local database we store the MIME translations for those types. Multiple-inheritance is supported, too (OGG would inherit from Audio and Video, for example). Instead of specifying attributes for each format individually (MP3 has its own attribute set) the attributes are inherited from the super type (Audio).

Windows and Views in the Haiku app_server

BodyLate last year, we decided to rewrite an important part of the Haiku app_server. Why was that? Let's start out with what the app_server is supposed to do: At the heart, it manages multiple applications simultaneously using the display device as a shared resource. Two of the important system objects through which this is organized are Windows and Views. Through views, the applications can draw information onto the screen, while a window is merely some sort of container for views.

The Attack Of The Warriors, Part 2: IO-Warrior24 - 16 Bit Multipurpose I/O Ports

BodyThe code discussed in this article can be found here. The IO-Warrior24 device from Code Mercenaries is equipped with 16 general purpose I/O (input/output) pins. When enabling the so-called special mode functions, more or less pins are reassigned to serve a special purpose. You can select between: I2C, IIC: a two-wire serial Inter-IC-Bus allowing connection to RAMs, EEPROMs, ADCs,DACs and a lot more. LCD: parallel communication with alphanumerics Liquid-Christal-Display units SPI: a four-wire serial Serial-Peripheral-Interface-Bus similar to I2C LED-Matrix: a serial communication bus to control LEDs in a multiplexed matrix configuration RC5IR: Infrared Remote control according to the RC5 code We'll now examine this impressive manifold of functions step-by-step.

Dependency Hell

BodyI suspect most readers have heard of this in reference to various Linux distributions. This describes the situation where package A requires package B that then requires package A, directly or indirectly, and you end up requiring a whole group of packages that seem to be entirely unrelated to installing package A, that include a lot of functionality of B. Well, that's just a higher level abstraction of what I will discuss in this article.

The Attack Of The Warriors, Part 1

The code discussed in this article can be found here.

The warrior family MouseWarrior, KeyWarrior, JoyWarrior and IO-Warrior of the German company Code Mercenaries (www.codemercs.com) enables you to communicate with your PC via USB in a manifold way to various external devices. All members of the family are full USB V1.1/2.0 compliant, low speed devices using the HID 1.1 (Human Interface Device) device class. If you are missing the GeekPort - it's back again.

Let's start with a really simple device, the JoyWarrior24 A8-8 USB joystick controller.

Managing Your Replicants: XShelfInspector and XContainer

BodyThe source discussed in this article can be found here. The original BeOS distribution from Be. Inc. contains two applications to help you manage your replicants: ShelfInspector and Container. Both can be found in the .../sample-code/application_kit/ folder. It's a good idea to read Be's original readme.txt concerning ShelfInspector. Both enhanced applications -- XShelfInspector and XContainer -- are working closely together like the original ones; however, some improvements have been added so one can use them more comfortably.

TransRepliShow: Dragging Replicants Transparently

BodyThis article follows up on Dr. Reh's previous newsletter article, RepliShow: A Replicable Image Viewer. The code discussed is available here for your convenience. Just remember Seth Flaxman's RepliShow: While dragging the replicant you only see the border lines of an empty rectangle - not very Be-like. However, only a few lines of code are necessary to obtain a rectangle containing the dragged image and looking transparently. Because the dragging action is managed by the BDragger class we need to do some subclassing.

Using Subversion with the Haiku Source Repository

2011-November: This document is now obsolete. Subversion is no longer in use. We are in the process of consolidating and re-organizing the website documentation. For now please refer to the in-progress website documentation.

As we've already announced earlier, we're planning to switch our version control system from CVS to Subversion. While CVS is working nice basically, it's much too limited to serve as a good foundation for a project of a size like ours.

The following document should give you an introduction on how to use Subversion with our repository - it will not provide you with many details, but with some pointers in case you want to know more about Subversion. The current version of Subversion is 1.1.3.