From 90eef160a4af7849ac2a473606d12cdf1be99a89 Mon Sep 17 00:00:00 2001
From: jt15s <75475674+jt15s@users.noreply.github.com>
Date: Wed, 6 Jan 2021 16:51:30 +1100
Subject: [PATCH 1/3] Update 2020-12-31_hello_from_the_haiku_promotion_team.md
Added a statement on what we will try to do to get more people using Haiku for research purposes.
---
.../jt15s/2020-12-31_hello_from_the_haiku_promotion_team.md | 2 ++
1 file changed, 2 insertions(+)
diff --git a/content/blog/jt15s/2020-12-31_hello_from_the_haiku_promotion_team.md b/content/blog/jt15s/2020-12-31_hello_from_the_haiku_promotion_team.md
index 8b5b64ad2..3946dd05e 100644
--- a/content/blog/jt15s/2020-12-31_hello_from_the_haiku_promotion_team.md
+++ b/content/blog/jt15s/2020-12-31_hello_from_the_haiku_promotion_team.md
@@ -60,6 +60,8 @@ We aim to attract more research groups by promoting the uses of Haiku for resear
Additionally, we have participated in [Google Summer of Code](https://summerofcode.withgoogle.com/) and [Google Code-In](https://codein.withgoogle.com/) (when it was still operating), providing opportunities for students to contribute to our project and develop their coding skills. We also participated in the [Semester of Code](http://semesterofcode.com/) but unfortunately we didn't receive any student applications.
+We aim to try to attract more research groups by promoting the uses of Haiku for research, and we also want to try to reach out to Auckland University and see if their UI research group is interested in coming back to Haiku to conduct any future research.
+
### Businesses
Businesses can benefit from Haiku as an operating system, and personally, I see Haiku as a lightweight alternative to the proprietary desktop operating systems businesses currently use.
From cde41543f7e677f2a819ba0593f1e5405fbeda4e Mon Sep 17 00:00:00 2001
From: jt15s <75475674+jt15s@users.noreply.github.com>
Date: Sat, 16 Jan 2021 19:38:47 +1100
Subject: [PATCH 2/3] Update
content/blog/jt15s/2020-12-31_hello_from_the_haiku_promotion_team.md
Co-authored-by: humdinger
Be aware: API design and kernel-related work requires a higher level of skill, and user interface design usually involves a lot more thought than other work. A significantly more convincing proposal is required for tasks involving those. Getting started with the design early (before the application period ends) is recommended, to maximize your chances of being selected, and allow a larger part of the coding period dedicated to coding tasks.
+If you find one of the "big" ideas interesting, but feel that you cannot complete it within the allotted coding time, feel free to suggest splitting it @@ -30,7 +32,7 @@ other accepted mentoring organizations must coordinate with both Haiku and the other mentoring organization beforehand.
-Haiku has a native WebKit port which uses the WebKit1 API. This port is not complete and there are several bugs and minor problems which need to be fixed. The plan is to replace this with a more up to date port based on the WebKit2 API. Based on the work completed in GSoC 2019, WebKit2 on Haiku is now able to render some web pages. The goal of this project is to continue this work, making the WebKit2 port more reliable, render all pages, handle input events, etc, and make it usable for the WebPositive browser.
-The web browser is an important part of the operating system today. It is difficult to attract and retain users if we don't provide a good web browser. When we started our efforts with WebKit, WebKit2 wasn't ready for our use yet, but today it is more mature and it is time to migrate to it.
-XMPP is a modern communication protocol for instant messaging. It has open standards and several free software client and server implementations.
Currently, the available native clients for Haiku are quite simple and don't even allow to replace all IRC features. The goal of this project is @@ -104,7 +106,7 @@
The main features to implement are more complete support for multi-user chat (in particular, moderation aspects, allowing to manage channel permissions, kick and ban users, etc) as well as any other feature considered useful: activity notification, pictures and file sharing, whiteboard collaboration, …
-Most of Haiku communication channels are currently hosted on IRC servers. IRC is a simple protocol, but it lacks modern features and is difficult to use from unstable connections or using mobile phones. @@ -112,7 +114,7 @@
Since we prefer to support open source software and usage of Haiku, XMPP is a good candidate, if we can have a working native client allowing to use it. We don't want people to instead use closed-source software or undocumented protocols.
-VirtualBox is a virtual machine allowing to run an operating system inside of another. Porting it to Haiku would allow Haiku users to run another system, such as Windows or Linux, when they need to run an application that is not yet available for Haiku. This would make using Haiku as their primary operating system a viable approach for more people.
+VirtualBox is a virtual machine that allows users to run an operating system inside of another. Porting it to Haiku would allow Haiku users to run another system, such as Windows or Linux, when they need to run an application that is not yet available for Haiku. This would make using Haiku as their primary operating system a viable approach for more people.
Starting from this preliminary work, continue and complete the port. This includes writing a native GUI for VirtualBox, getting it to run, and more importantly, work on the virtualization driver which will allow virtualbox to run the emulated machine using the native CPU. This makes the emulated system run at close-to-native speed, whereas a software emulation would be unbearably slow.
@@ -130,7 +132,7 @@QEMU is a virtual machine which allows running an operating system inside of another. While there already is a Haiku port, it currently does not support any acceleration system through native virtualization (through Intel VT-x and AMD SVM.) This makes it too slow for many uses. Fixing this would allow Haiku users to run another system, such as Windows or Linux, when they need to run an application that is not yet available for Haiku. This would make using Haiku as their primary operating system a viable approach for more people.
@@ -144,9 +146,7 @@Haiku is meant to be an easy to use graphical operating system. It should provide a GUI to manage devices and drivers. This is currently implemented in the "Devices" preferences, however it does little more than listing devices @@ -154,7 +154,7 @@
The goal of this project is to extend the functionality of Devices preferences to make it a more complete and useful tool. This includes working on the following features:
There are many open source 3rd party applications for Haiku that could use improvements. Whether it is resolving bugs, adding features, updating the coding style, updating them to use the Locale and Layout Kits, or anything else imaginable! Writing applications from scratch is also possible.
+There are many open source 3rd party applications for Haiku that could use improvements. Whether it is resolving bugs, adding features, updating the coding style, updating them to use the Locale and Layout Kits, or anything else imaginable, working on third party applications for Haiku is an often-overlooked aspect of the Project. Writing applications from scratch or porting applications you may already have written for other platforms is also a good idea.
Haiku comes with a video driver for intel chipsets. However, on many supposedly supported devices, the driver will +
Haiku comes with a video driver for Intel chipsets. However, on many supposedly supported devices, the driver will only produce a black screen with no output, confusing users and forcing them to fallback to VESA video modes.
The goal of this project is to improve the driver and fix the different problems, making sure we get video output @@ -207,9 +205,9 @@
Haiku uses a FreeBSD network compatibility layer to support many network devices (ethernet and wireless) using drivers written for the FreeBSD project. This allows reusing network drivers with very little changes, considerably decreasing the effort needed to get good hardware support in Haiku.
However, this layer only supports PCI devices, and doesn't work with USB ones. Adding support for USB to the compatibility layer would bring us support for a range of devices like so-called USB tethering, as well as USB to Ethernet and WiFi dongles.
@@ -226,9 +224,9 @@Haiku does not currently support GPU acceleration, for 3D or otherwise. Reusing most of the DRM drivers from Linux, and Mesa's Gallium userspace components, @@ -317,9 +315,7 @@
Haiku already has some power management support in the form of a CPU idling driver. This is however clearly not sufficient, and there is room for improvements in several areas in order to make Haiku use less power and make laptops running Haiku last longer on battery.
Some investigation is required to identify the main issues in Haiku leading to suboptimal performance. There are however a few already known problems:
@@ -331,9 +327,7 @@Haiku has great support for its own file system, but most others are only available read-only. It is way better for interoperability with other systems to be able to write to these disks from Haiku.
@@ -359,13 +353,11 @@Haiku currently supports NTFS using code from the NTFS-3G project, which is -distributed under the GPL license. We would prefer to use Apple implementation, -which is under 3 clause BSD, more suitable for us.
+distributed under the GPL license. We would prefer to use Apple's implementation, +which is under the 3 clause BSD license, which is a more suitable license for us.Investigate the code in Apple NTFS driver and see how to map it to Haiku filesystem APIs, either by adding a compatibility wrapper (preferred, it makes updates easier), or by adjusting the NTFS code.
@@ -376,25 +368,23 @@Some filesystems can only be read, but not written, from Haiku. The goal of this idea is to add write support for one of these filesystems (of your choice, from the list below).
In its current state, Haiku is rarely used as the single operating system on a computer. It is common to dual boot it with other systems such as Linux or FreeBSD. In this setup, it is very convenient when each system can access and modify the other's files. Disk partitions and data can then be shared more easily.
-Some of the filesystems (or specific features of them) in Haiku are relatively new, and not considered perfectly tested and stable yet. The goal of @@ -444,9 +432,9 @@
on Intel CPUs. The feature tags TLB entries with the Id of the address space and allows to +
The feature tags TLB entries with the Id of the address space and allows to avoid TLB invalidation on the context switch, it is available only on x86-64.
The goal of this task is to propose possible designs, implement the feature, extend the performance logs to measure impacts when the feature is enabled, and potentially also to mitigate the @@ -461,7 +449,7 @@
With the decline of internet freedoms (Government IP Blocks, Net Neutrality reductions), the usage of encrypted virtual networks is increasing across all platforms. Haiku's VPN implementation is severly lacking. To improve global access to Haiku as a desktop platform of choice, our VPN support needs a lot of work. OpenVPN or Wireguard are both great options.
@@ -533,9 +521,9 @@Finish porting the PPP implementation to our new network stack. Add phone-line modem support, including HDLC framing and VJC compression (porting both algorithms is sufficient, but make sure the license is compatible to MIT). Implement CHAP authentication, and add support for configuring these to the new network preflet GUI. Find and fix bugs.
@@ -547,18 +535,18 @@The base framework for IPv6 support was implemented as a Google Summer of Code 2010 project. Even so, there remains a lot of smaller cleanup/finalization tasks that can be done as a project. @@ -579,20 +567,20 @@
MDNS (known as Bonjour for Apple devices and usually implemented using Avahi on Linux) is a protocol allowing to discover devices in the local network and their capabilities. The goal of this project is to implement MDNS in Haiku and integrate it in our name resolution system and user interface.
-MDNS is part of the IPP Everywhere and Airprint specifications, which allow to use networked printers with a single generic driver, instead of a specific driver for each printer. Having an implementation in Haiku would allow easier setup and use of printers, a required feature for a desktop operating system.
-The current solution for text editing in Haiku is the BTextView. It is a rather simple view providing basic text editing features and limited styling. @@ -647,7 +635,7 @@
The HaikuDepot application includes preliminary work on a rich text view, which it uses to provide the description of packages. This could be used as a starting point for this work.
@@ -664,7 +652,7 @@Go (or Golang) is a popular cross-platform general-purpose programming language which is known for its direct compilation to static executables, concurrency model used in its goroutines and its enforced standard style of programming. It has been used by many developers to create command-line tools, static site generators, high-performance servers and many other applications requiring Go. -
Haiku uses Jam as its main build system. Unfortunately, Perforce is not actively maintaining the tool anymore and the codebase is not very clean. Ingo Weinhold started work on a complete rewrite of the tool in C++, with the aim of being @@ -819,9 +807,9 @@
Haiku has its own coding guidelines which describe how the code should be formatted. There is a tool for reformatting or checking if code follows these guidelines, but it has to be compiled on the @@ -837,9 +825,9 @@
Allegro is a gaming library. Older version (4.4) did support Haiku, but this support was dropped from the newer versions (starting from 5.0). The library should be ported to Haiku, allowing to run the bundled examples and possibly @@ -854,9 +842,9 @@
app_server is Haiku's graphics server and the equivalent of X11 or Wayland on other UNIX systems. It currently supports only one video output, but should be able to do more.
While the API already allows this for the most part (with the BScreen class), there is no actual implementation behind it and parts of the code assume only a single screen.
Some drivers implement minimal support for multiple displays, but not all of them. This task may involve updating the video drivers to handle multiple monitors correctly.
app_server is the graphics server in Haiku. It handles the rendering and display of application windows, desktop, and everything that is shown on screen.
The Interface Kit is the API allowing apps to send commands to app_server and show things on @@ -896,9 +884,9 @@
app_server is the graphics server in Haiku. It handles the rendering and display of application windows, desktop, and everything that is shown on screen.
Freetype (in combination with agg) is used to render text. While it provides @@ -919,9 +907,9 @@