updates

David Anderson 2024-01-12 19:57:34 -08:00
parent b05cc3b510
commit 49a5bb9fae
1 changed files with 46 additions and 16 deletions

@ -1,45 +1,75 @@
# Volunteer Macintosh Developers needed for BOINC # Volunteer Macintosh Developers needed for BOINC
### Brief Platform Overview ### Brief Platform Overview
The Berkeley Open Infrastructure for Network Computing (BOINC) \<[https://boinc.berkeley.edu](https://boinc.berkeley.edu/)> is open-source software \<https://github.com/BOINC/boinc> for volunteer distributed computing and grid computing. BOINC has allowed over 4 million volunteers from the general public to donate their computer's idle time to humanitarian and scientific research, choosing among dozens of projects. BOINC automatically downloads research applications and data from the selected projects, manages the processing, and returns the completed results. The Berkeley Open Infrastructure for Network Computing (BOINC) \<[https://boinc.berkeley.edu](https://boinc.berkeley.edu/)> is open-source software \<https://github.com/BOINC/boinc> for volunteer distributed computing and grid computing.
BOINC has allowed over 4 million volunteers from the general public to donate their computer's idle time to humanitarian and scientific research, choosing among dozens of projects.
BOINC automatically downloads research applications and data from the selected projects, manages the processing, and returns the completed results.
BOINC includes client, server, and web components, and APIs for connecting other components. BOINC includes client, server, and web components, and APIs for connecting other components.
The BOINC client software runs on each volunteer's computer. It has two main components: The BOINC client software runs on each volunteer's computer.
It has two main components:
* The BOINC Client itself, a daemon which runs in the background and manages (starts, stops, controls) the executables provided by the selected projects * The BOINC Client itself, a daemon which runs in the background and manages (starts, stops, controls) the executables provided by the selected projects
* The BOINC Manager, a GUI application which allows the user to monitor and control the BOINC Client daemon. * The BOINC Manager, a GUI application which allows the user to monitor and control the BOINC Client daemon.
The BOINC Client and Manager are written in C++ as cross-platform code to support MS Windows, Macintosh, Linux, and several other operating systems. While we currently have a number of volunteer developers supporting MS Windows and Linux, our principle Macintosh developer, Charlie Fenton, is winding down his involvement after many years. He is prepared to help a few new Macintosh BOINC developers get up to speed. The BOINC Client and Manager are written in C++ as cross-platform code to support MS Windows, Macintosh, Linux, and several other operating systems.
While we currently have a number of volunteer developers supporting MS Windows and Linux, our principle Macintosh developer, Charlie Fenton, is winding down his involvement after many years.
He is prepared to help a few new Macintosh BOINC developers get up to speed.
### Skills Needed ### Skills Needed
Most of the Macintosh platform-specific work involves the BOINC Manager. Because of the cross-platform nature of the BOINC software, it is designed and built very differently from typical Macintosh applications, so a good understanding of UNIX APIs and programming techniques and tools is important. Familiarity with Xcode is also required. Most of the Macintosh platform-specific work involves the BOINC Manager.
Because of the cross-platform nature of the BOINC software,
it is designed and built very differently from typical Macintosh applications,
so a good understanding of UNIX APIs and programming techniques
and tools is important.
Familiarity with Xcode is also required.
The Manager is built using the wxWidgets cross-platform GUI library \<[http://www.wxwidgets.org](http://www.wxwidgets.org/)>, so the developer should be familiar with wxWidgets or be prepared to learn that. The programmer will need to use creative methods to integrate the UNIX code with Macintosh Cocoa methods. The Manager is built using the wxWidgets cross-platform GUI library \<[http://www.wxwidgets.org](http://www.wxwidgets.org/)>, so the developer should be familiar with wxWidgets or be prepared to learn that.
The programmer will need to use creative methods to integrate the UNIX code with Macintosh Cocoa methods.
The Macintosh implementation of BOINC provides security using UNIX account-based sandboxing, as described in \<[SandboxUser](SandboxUser)> and \<https://boinc.berkeley.edu/sandbox_design.php>. For this and other reasons, the BOINC client software uses a custom installer on the Macintosh, which also requires maintenance. The Macintosh implementation of BOINC provides security using UNIX account-based sandboxing, as described in \<[SandboxUser](SandboxUser)> and \<https://boinc.berkeley.edu/sandbox_design.php>.
For this and other reasons, the BOINC client software uses a custom installer on the Macintosh, which also requires maintenance.
The Mac developer may occasionally need to update the BOINC screensaver or the libraries used by science projects to build their applications for BOINC. The Mac developer may occasionally need to update the BOINC screensaver
or the libraries used by science projects to build their applications for BOINC.
While not essential, it would be helpful if the Macintosh developer can run Microsoft Windows 7 or later, either on a separate PC or on the Mac via Boot Camp, [VirtualBox](VirtualBox) or other software. Since BOINC is cross-platform software, this allows the developer to check that changes made for Macintosh haven't broken any functionality on MS Windows. While not essential, it would be helpful if the Macintosh developer
can run Microsoft Windows 7 or later,
either on a separate PC or on the Mac via Boot Camp,
[VirtualBox](VirtualBox) or other software.
Since BOINC is cross-platform software,
this allows the developer to check that changes made for Macintosh
haven't broken any functionality on MS Windows.
For further information, we suggest reading the following documentation: [HowToBuildBOINC_XCode.pdf](https://github.com/BOINC/boinc/blob/master/mac_build/HowToBuildBOINC_XCode.pdf) For further information, we suggest reading the following documentation:
[HowToBuildBOINC_XCode.pdf](https://github.com/BOINC/boinc/blob/master/mac_build/HowToBuildBOINC_XCode.pdf)
### Help Needed ### Help Needed
BOINC needs several volunteers who are willing to become experienced with the BOINC Mac client so that they can: BOINC needs several volunteers who are willing to become experienced
with the BOINC Mac client so that they can:
* Monitor the BOINC alpha and BOINC developer mailing lists for reports of issues. See [EmailLists](EmailLists) for details. * Monitor the BOINC alpha and BOINC developer mailing lists
* Monitor the BOINC GitHub issues list for reports of issues with the Mac client. See https://github.com/BOINC/boinc/issues for details. for reports of issues.
See [EmailLists](EmailLists) for details.
* Monitor the BOINC GitHub issues list for reports of
issues with the Mac client.
See https://github.com/BOINC/boinc/issues for details.
* Investigate and resolve those issues as needed. * Investigate and resolve those issues as needed.
* Create builds of the BOINC client for testing and distribution * Create builds of the BOINC client for testing and distribution
### BOINC Contribution Information ### BOINC Contribution Information
BOINC is an open source project hosted on Github at https://github.com/BOINC/boinc. Information about the development workflow for contributing code to the BOINC project can be found here: https://github.com/BOINC/boinc-policy#development-processes The information there describes how to create a code contribution submissions and what to expect once you create a pull request. BOINC is an open source project hosted on Github at https://github.com/BOINC/boinc.
Additional information and help for contributing to BOINC can be found by subscribing to the BOINC Developers email list and by participating in the fortnightly "Contributor Call". Additional information and help for contributing to BOINC can be found by subscribing to the BOINC Developers email list.
* You can sign up and read past postings for the BOINC Developer email list here: https://groups.google.com/a/ssl.berkeley.edu/forum/#forum/boinc_dev. * You can sign up and read past postings for the BOINC Developer email list here: https://groups.google.com/a/ssl.berkeley.edu/forum/#forum/boinc_dev.
* Contributor calls are announced on the BOINC Developer email list. Past contributor calls can be reviewed here: https://drive.google.com/drive/folders/1tw7NOMJdGQQfqJrr6cJdcdTzPmocNkQh * Contributor calls are announced on the BOINC Developer email list.
Past contributor calls can be reviewed here: https://drive.google.com/drive/folders/1tw7NOMJdGQQfqJrr6cJdcdTzPmocNkQh
### How to get Help ### How to get Help
If you have a question or need help, you can post a message to the [boinc_dev mailing list](https://groups.google.com/a/ssl.berkeley.edu/forum/#forum/boinc_dev) which Charlie Fenton, the current principle Macintosh developer, monitors. If you are investigating a specific [issue on GitHub](https://github.com/BOINC/boinc/issues), you can post a comment on the issue and use a GitHub 'mention' @CharlieFenton and GitHub will notify him. If you have a question or need help,
you can post a message to the [boinc_dev mailing list](https://groups.google.com/a/ssl.berkeley.edu/forum/#forum/boinc_dev)
which Charlie Fenton, the current principle Macintosh developer, monitors.
If you are investigating a specific [issue on GitHub](https://github.com/BOINC/boinc/issues),
you can post a comment on the issue and use a GitHub 'mention' @CharlieFenton and GitHub will notify him.