wiki:GoogleCodeInIdeas2017

Version 2 (modified by scottmc, 21 months ago) (diff)

Cleanup

Google Code-in Ideas 2017

This is the brainstorm page for the Google Code-In contest for 2017. As such, some or many of these may not end up being in our final released list of tasks that end up in Google Code-In. If you are a student, DO NOT start working on these ahead of time as they are ALL subject to change.

Our aim for this year will be to help bring Haiku closer to a Beta 1 release. This will be a good chance for you to see your work end up in a released product! We hope to have a large number of fun tasks this year. Whether this is your first time learning about Haiku, or your second or third time competing in the Code-In, we will have tasks suited to a variety of skill levels.

For Haiku Users and Developers, this is your chance to suggest some task ideas that students would be able to complete in about 2-4 hours of work time spread out over a few days. You can suggest bigger tasks, but they should be ones such that they could be broken down into smaller parts that fit this 2-4 hour timeline.

General Information

Google has announced that they are going to hold Google Code-In 2017 as disclosed in this blog post.

If you are interested in submitting an idea for a task then you can make one by posting on this topic in our forum.

For students interested in participating in Google Code-In 2017 be sure to read through Google's Getting Started Guide.

1. Code: Tasks related to writing or refactoring code

For coding tasks students should make sure to follow Haiku's coding guidelines.

1.1 Code an app for Haiku (including multi-part tasks)

Example task Example Skills Example link
XCode a Password Manager using Haiku's BKeystoreUI design, C++Seahorse, Haiku ticket on subject
XCode a simple Photo post-production app (red eye remover)UI design, C++
XCode an Advanced Download Manager iGetter, FOLX
XCode a Graphical Profiler/Tracer KCachegrind, AMD CodeAnalyst, Stackify
XCode a Graphical Crash Reporter Apple Crash Reporter, Goolge Breakpad (MIT)
XCode a graphical interface for Haiku's RemoteDesktop RemoteDesktop
XCode a ScreenReader for Haiku Haiku ticket on subject
XCode a graphical event/syslog viewer Ticket on subject
XCode a speech recognition app Ticket on subject
XCode a Haiku notification Center Ticket on subject
Code a Currency Converter
Code a system Dictionary
Code a vector graphics editor (reuse Icon-O-Matic code)
Code a CountDown/StopWatch/TimeZoneCheck app
XCode a Action Automation app Xnee, Apple Automator, Automise
Code a Video Manager cosmos
Code a Subtitle Editor Gnome Subtitles
Code a Hardware compatibility analysis appC++, Pythonto be used with this web app
XMerge Spider Solitaire and Klondike from previous GCI into a single "card game" appC++
Code a game of IshidoC++Can use tilesets from BShisen / SDLopan
XCode a MIDI event viewer for debugging MIDI devices and appsC++
Code an easy to use attribute manager for Haiku C++Tags
Code a text document manager takes advantage of metadataC++idocument
XMerge bknob and bdial together and upstream to Haiku repoC++bknob, bdial
Improve map application from 2016 Google Code-InC++https://github.com/raefaldhia/Maps
Code an SQLite workbench app C++http://sqlitebrowser.org/

1.2 Develop a web app, a plugin or fix a issue related to Haiku's web infrastructure

Example task Example Skills Example link
XFix a bug in our web app that records hardware compatibility Codebase on Github
Fix a bug in our documentation translation tool tickets on trac
Fix a bug in our copy of Pootle tickets on trac

1.3 Refactor, clean up or improve Haiku code

Example task Example Skills Example link
Fix a issue in Mail Wiki page on Mail
XFinish the network VirtIO driver for Haiku C++ Ticket on subject
Implement a console/serial VirtIO driver for Haiku C++
Add missing devices to our ice1712 driverC++ Ticket on subject

1.4 Fix a broken recipe in haikuports

Many recipes on Haikuports need to be updated to the current format. We are working on bots to autobuild all of these, but there is a lot of work that needs to be done in order for those to work smoothly. This is one place we could use much help, as it is one of the big blockers to the upcoming Beta1 release.

In particular, software listed in #10267 should be checked and recipes provided where they are still missing.

1.5 Fix bug listed in Haiku's Trac

Lots of open issues, we will post tasks for specific open Haiku issues.

1.6 Fix bugs or add features to the various Haiku Apps hosted at Haiku Archives

https://github.com/HaikuArchives
150+ Haiku applications, many with open bug reports you can try fixing. Here are some examples:

Applications with 4 or more open issues
Example task Example Skills Example link
Vision https://github.com/HaikuArchives/Vision/issues
Beam https://github.com/HaikuArchives/Beam/issues
BurnItNow https://github.com/HaikuArchives/BurnItNow/issues
Pe https://github.com/HaikuArchives/Pe/issues
Weather (written by past GCI students) https://github.com/HaikuArchives/Weather/issues
BePDF https://github.com/HaikuArchives/BePDF/issues
ArmyKnife https://github.com/HaikuArchives/ArmyKnife/issues
Jabber4Haiku https://github.com/HaikuArchives/Jabber4Haiku/issues
WheresMyMouse https://github.com/HaikuArchives/WheresMyMouse/issues
Filer https://github.com/HaikuArchives/Filer/issues
BeGet https://github.com/HaikuArchives/BeGet/issues
Tipster https://github.com/HaikuArchives/Tipster/issues
BeIndexed https://github.com/HaikuArchives/BeIndexed/issues
Hare https://github.com/HaikuArchives/Hare/issues
Finance https://github.com/HaikuArchives/Finance/issues
ClipUp https://github.com/HaikuArchives/ClipUp/issues
BShisen https://github.com/HaikuArchives/BShisen/blob/master/TODO
A-Book https://github.com/HaikuArchives/A-Book/issues
FtpPositive https://github.com/HaikuArchives/FtpPositive/issues
ArtPaint https://github.com/HaikuArchives/ArtPaint/issues
Organizer https://github.com/HaikuArchives/Organizer/issues
Paladin https://github.com/HaikuArchives/Paladin/issues
SimplyVorbis https://github.com/HaikuArchives/SimplyVorbis/issues
PhotoGrabber https://github.com/HaikuArchives/PhotoGrabber/issues
BeAE https://github.com/HaikuArchives/BeAE/issues
Masterpiece https://github.com/HaikuArchives/Masterpiece/issues
Globe https://github.com/HaikuArchives/Globe/issues
FilWip https://github.com/HaikuArchives/FilWip/issues
DocumentViewer https://github.com/HaikuArchives/DocumentViewer/issues

1.7 Fix issues reported by Coverity

https://dev.haiku-os.org/wiki/Coverity

1.8 Write recipes for HaikuPorter

Try building other open source apps on Haiku and write a recipe to allow HaikuPorter to build it.

Add new port targets here

1.9 Add scripting interfaces to applications to make it more useful

Scripting is used in Haiku to interact programmatically with applications,like with the hey CLI tool. All apps already support basic scripting through the App Kit, but some would benefit from more specific scripting interfaces.

Applications that needs specific scripting interfaces
Example app Example need
XMagnify Make Magnify controllable by scripting, like zoom factor, and other actions.
XMediaPlayer Expose the current track as a scripting object, possibly reusing SoundPlay's interface.

1.10 Add accessibility features to applications to make them more useful to disabled people

Haiku already has some applications that could be useful for accessibility, but aren't really tailored with it in mind. The idea is to make them more useful in this context.

Applications that needs accessibility features
Example app Example need
XMagnify Make Magnify follow caret when mouse is not moving. Make Magnify "dockable" to the screen bottom or top.

2.0 Documentation/Training

Tasks related to creating/editing documents and helping others learn more.

Example task Example Skills Example link
XWrite an article on how to use unit tests when developing HaikuEnglishTicket on subject
XConvert AMD SimNow article to markdown and updatehtml, markdownhttps://github.com/haiku/website
XConvert QEMU article to markdown and updatehtml, markdownhttps://github.com/haiku/website
XConvert KVM article to markdown and updatehtml, markdownhttps://github.com/haiku/website
XConvert VMware Workstation article to markdown and updatehtml, markdownhttps://github.com/haiku/website
XConvert VMware Fusion article to markdown and updatehtml, markdownhttps://github.com/haiku/website
XConvert Parallels Desktop article to markdown and updatehtml, markdownhttps://github.com/haiku/website
XWrite an article on how to run Haiku with veertuEnglishhttps://veertu.com
XWrite an article on how to run Haiku with ProxmoxVEEnglishhttp://www.proxmox.com/
XWrite an article on how to run Haiku with XenEnglishhttps://www.xenproject.org
XAPI documentation for Network Kit classes
XAPI documentation for Keystore

2.1 Learn to program with Haiku

Work through the Haiku programming books learning how to program in C++ as you go.

2.2 Write a new lesson for the programming with Haiku books

Write a lesson covering a Haiku related topic that isn't already covered in the book(s).

3.0 Outreach/Research

Tasks related to community management, outreach/marketing, or studying problems and recommending solutions.

Example task Example Skills Example link
XResearch the current status of the Scooby codebase Wiki page on Scooby
Investigate Trac-Buildbot intergration Python, htmlTicket on subject
XInvestigate our AMD GPU support and update our wiki to match Haiku Wiki page on AMD/ATI video cards
XInvestigate our NVidia GPU support and update our wiki to match Haiku Wiki page on NVidia video cards
XInvestigate our Intel GPU support and update our wiki to match Haiku Wiki page on Intel video cards
XInvestigate our VIA GPU support and update our wiki to match Haiku Wiki page on VIA video cards

4.0 Quality Assurance

Tasks related to testing and ensuring code is of high quality.

4.1 Test builds of Haiku on various hardware and see if certain issues still exist or not


Examples:

5.0 User Interface

Tasks related to user experience research or user interface design and interaction

5.1 Improve UI on old BeOS/Haiku apps

Convert old BeOS/Haiku programs from Haiku Archives to use layout management and improve the UI, see 1.6

5.2 Improve UI of a Haiku component

6.0 Design and artwork

  • Wallpapers, T-Shirt designs
  • New small "square" platform logo to replace the current one
  • New Haiku sticker design