= Google Code-in Ideas 2013 = This is the brainstorm page for the [http://code.google.com/opensource/gci/2013/ Google Code-In]. Google has announced that they are going to hold Google Code-In 2013. [http://googleblog.blogspot.com/2013/10/50-million-lines-of-code-and-counting.html Google Summer of Code 2014 and Google Code-In 2013 Announcement] [http://www.google-melange.com/gci/homepage/google/gci2013 Google Code-In Homepage] == New task ideas for 2013 == == 1. Code: Tasks related to writing or refactoring code == For coding tasks students should make sure to follow Haiku's coding guidelines: (https://www.haiku-os.org/development/coding-guidelines) || Fix ICO translator so that it rejects bad input bitmaps in Identify #726 ||siarzhuk|| || Fix "Devices" app so that you can copy text that is displayed #8880 || || ||[StyledEdit] Support "Export" feature utilizing text translators. Fix #9394||siarzhuk|| ||[STXT Translator] Wrap and use ICU's Character Set Detection feature. Fix #9395||siarzhuk|| ||Improve "top" utility screen redraw. Fix #9509||siarzhuk|| ||Add RTF output to RTF Translator. Fix #8873||siarzhuk|| ||[StyledEdit] add icons to Open... menu. Fix #9999||siarzhuk|| ||StyledEdit "Save As..." window does not open under certain circustances.Fix #10032||siarzhuk|| ||StyledEdit: the find panel is modal, and doesn't allow to interact with the document.Fix #10053||siarzhuk|| ||libarchive: implement support for BFS extended attributes in zip format||siarzhuk|| ||DriveSetup: Popup menu for partition entries and make DriveSetup window zoomable. Fix #9906 and #6265||siarzhuk|| ||DriveSetup:Add a "FixMBR" command. Fix #5980||siarzhuk|| == 2. Documentation/Training: Tasks related to creating/editing documents and helping others learn more == ||Create a generic .recipe for a library||scottmc|| ||Create a generic .recipe for a Haiku app||scottmc|| ||Create a generic .recipe for a command line app||scottmc|| == 3. Outreach/Research: Tasks related to community management, outreach/marketing, or studying problems and recommending solutions == || Present a Haiku lightning talk (about 5 minutes long) at a local Linux User Group or similar interested group. (5 or so slides on a specific part of Haiku) || || Present Haiku at a local Linux User Group or similar interested group. (20 or so slides and demo time) || == 4. Quality Assurance: Tasks related to testing and ensuring code is of high quality == == 5. User Interface: Tasks related to user experience research or user interface design and interaction == ||Design UI mockups for the Terminal profiles support. More info in ticket:5030#comment:8||siarzhuk|| ------------------------------------------------------------------------------------------------------------ == These are imported from our GCI 2012 ideas page and many will be removed and/or changed and more will be added. == Developers and documenters: Suggested tasks can be added below if you have wiki edit rights. Prospective Students: This page should give you an idea of what tasks may be available for Haiku, should we get selected for GCI 2013. == 1. Code: Tasks related to writing or refactoring code == For coding tasks students should make sure to follow Haiku's coding guidelines: (https://www.haiku-os.org/development/coding-guidelines) || Resolve any open Haiku trac ticket || <== Need to search through these and create tasks for ones that students could handle || Add Haiku native GUI to the cmake port, (http://ports.haiku-files.org/ticket/236) || || Bluetooth Stack/UI Improvements (http://docs.google.com/View?id=dc8wsckv_6d8qdzbfz) || || Create a linux package (.deb / ppa) for bfs_fuse || || Research and implement AMD SimNow HDD image build target || || Add support for syntax highlighting of XML files in Pe. (http://developer.berlios.de/bugs/?func=detailbug&bug_id=18703&group_id=5154) || || Fix BGLView /OpenGL resize bug when direct mode is enabled #7050 || || Fix [screen_blanker] crashes in BGLView::DirectConnected () #8898 || || Implement Missing/Incorrect POSIX Functionality defined in header files || [#sz_note1 SZ's note 1] || || Add BFS attribute support to an archive format || [#sz_note5 SZ's note 5] || || Cleanup and Perform code audit on Haiku's GameSound classes || || Implement missing sysconf definitions || [#sz_note1 SZ's note 1] || || Fix SDL custom cursors on Haiku || || Bluetooth - Retrieve Discovery and DevClass in Startup || || Write a working .bep file to allow haikuporter to build MySQL [http://ports.haiku-files.org/ticket/342] || || Implement clock and timer support in Haiku || [#sz_note1 SZ's note 1] || || Implement #3207 || [#sz_note1 SZ's note 1] || || Implement B_OUTLINE_RESIZE #2724 || || Use ICU API for line breaking || || Implement asynchronous I/O #5683 || [#sz_note1 SZ's note 1] || || Investigate and find correct fix for bfs: wrong error mapped #2708 || sz:unclear - was checked during GCI2012, unconfirmed and just closed without results. || || Create a .bep file for Haikuporter to build Apache Harmony on Haiku || || Fix BGLView /OpenGL resize bug when direct mode is enabled #7050 || || Fix webpositive so that it can render arabic fonts. #6352 || || Fix StyledEdit so that it properly checks for valid utf-8 when loading a file #6447 || sz:too complicate to be solved in 3 days|| || Cleanup and Perform code audit on Haiku's GameSound classes #332 || || Bluetooth - Retrieve Discovery and DevClass in Startup || || Fix SDL custom cursors on Haiku || || Implement missing sysconf definitions #2044 || [#sz_note1 SZ's note 1] || || Implement BGLScreen #1182 || || Review and implement any missing functions and definitions in , , , #7008 || [#sz_note1 SZ's note 1] || || Rewrite ISA.h and PCI.h headers #1576 || [#sz_note1 SZ's note 1] || || Create fix for handling _POSIX_VDISABLE Correctly #3416 || || Check fix for Allegro and improve on it if it's not working as expected. (http://ports.haiku-files.org/ticket/581) || || Check scummvm port and bring up to latest release (http://ports.haiku-files.org/ticket/501) || || Port libs3, create a working .bep so that it builds cleanly using haikuporter (http://ports.haiku-files.org/ticket/563) || || Create a clean .bep and patch for building freedroid on Haiku using haikuporter (http://ports.haiku-files.org/ticket/464) || || Check protobuf port and bring up to latest release (http://ports.haiku-files.org/ticket/282) || || Check hedgewars port and bring up to the latest release (http://ports.haiku-files.org/ticket/469) || || Check xut port and bring up to the latest release (http://ports.haiku-files.org/ticket/471) || || Create bep files for 3 of the 9 font sets listed in HaikuPorts trac ticket 560 (http://ports.haiku-files.org/ticket/560) || || Create bep files for 3 of the 9 font sets listed in HaikuPorts trac ticket 560 (http://ports.haiku-files.org/ticket/560) || || Create bep files for 3 of the 9 font sets listed in HaikuPorts trac ticket 560 (http://ports.haiku-files.org/ticket/560) || || update haikuporter to support building haiku x86_64 packages (ports.haiku-files.org/ticket/629) || || Update .bep files for all packages listed in OptionalPackages and LibPak for x86_64 support (ports.haiku-files.org/ticket/630) || <== break into several smaller tasks || || Create a .bep file for haikuporter to build latest release of libass (http://ports.haiku-files.org/ticket/494) || || Create a .bep file for haikuporter to build mysql (http://ports.haiku-files.org/ticket/342) || || Create a .bep file for haikuporter to build Xapian (http://ports.haiku-files.org/ticket/651) || || Add a GUI to Transmission || || Create a .bep file for haikuporter to build HaikuTwitter (http://code.google.com/p/haikutwitter/) || || Create a .bep file for haikuporter to build freepascal (http://ports.haiku-files.org/ticket/372) || || Create a .bep file for HaikuPorter to build Beezer (https://bitbucket.org/cpr/beezer/) || || Create a .bep file for HaikuPorter to build DocumentViewer (http://gitorious.org/documentviewer) || || Create a .bep file for haikuporter to build hqx (http://ports.haiku-files.org/ticket/485) || || Create a .bep file for haikuporter to build the Qt Framework || || Update .bep file for openjdk so that it fully builds using haikuporter || || Create a .bep file for haikuporter to build htop || || Create a .bep file for haikuporter to build mediainfo (http://mediainfo.sourceforge.net/) || || Create a .bep file for haikuporter to build eventual (http://developer.berlios.de/projects/haiku-pim/) || || Create a .bep file for haikuporter to build mussel and beshare (http://dev.osdrawer.net/projects/beshare) || || Create a .bep File to build fitz (libfitz) from mupdf 1.1 (based on already existing bep file for Fitz 1.0) || || Check if DocumentViewer (http://gitorious.org/documentviewer) builds with fitz 1.1 instead fitz 1.0 || || Extend the Makefile of mupdf 1.1, so that it builds also shared libraries (not only static ones) || || Create a basic pdf translator on top of fitz 1.1 || || Submit a 20kb+ patch containing codestyle fixes in any part of the Caya source tree (http://dev.osdrawer.net/issues/478) || || Update apache http server to latest 2.2.xx released version || || Create a .bep file for haikuporter to build apache http server 2.4.xx latest released version || == 2. Documentation/Training: Tasks related to creating/editing documents and helping others learn more == || Verify if all the steps mentioned in the "Welcome to Haiku" document are accurate, and suggest improvements. || || Write an introduction for one of Haiku's kits for http://api.haiku-os.org || || Write documentation for one class in API reference manual || || Make a video showing off Stack and Tile || || Make a video showing off the power of Haiku's image translators, and other translators || || Make a video showing how to write and build a C++ "Hello World" program using the BeAPI || || Update the step by step build instructions on the Haiku web site to reflect the switch from svn to git, and verify that it works || || Make a video showing Qt installation and Qt applications under Haiku || || Make a video showing OpenJDK installation and Java applications running in Haiku || || Write a how-to guide on how to run Haiku in VMWare || || Write a how-to guide on how to run Haiku in Parallels Desktop (Mac) || || Write a how-to guide on how to run Haiku in Parallels Workstation (Windows or Linux) || || Write a how-to guide on how to run Haiku in Virtual PC || || Write a how-to guide on how to run Haiku in Bochs. || == 3. Outreach/Research: Tasks related to community management, outreach/marketing, or studying problems and recommending solutions == || Present a Haiku lightning talk (about 5 minutes long) at a local Linux User Group or similar interested group. (5 or so slides on a specific part of Haiku) || || Present Haiku at a local Linux User Group or similar interested group. (20 or so slides and demo time) || || Create a more gripping screenshot slideshow for the website. || || Research way to do right-to-left text in ICU and integration to Haiku API || || Research and report on what would be needed in order to add support for PHP to poorman || == 4. Quality Assurance: Tasks related to testing and ensuring code is of high quality == || Test all open trac tickets for Expander (6) and indicate whether they are still valid. Add extra information as needed. || [#sz_note2 SZ's note 2] || || Test all open trac tickets (0-6700) for MediaPlayer ShowImage (22) and indicate whether they are still valid. Add extra information as needed. || [#sz_note2 SZ's note 2] || || Test all open trac tickets (6700-8100)for MediaPlayer (21) and indicate whether they are still valid. Add extra information as needed. || [#sz_note2 SZ's note 2] || || Test all open trac tickets for ShowImage (15) and indicate whether they are still valid. Add extra information as needed. || [#sz_note2 SZ's note 2] || || Test all open trac tickets for StyledEdit(15) and indicate whether they are still valid. Add extra information as needed. || [#sz_note2 SZ's note 2] || || Test all open trac tickets for Terminal (28) and indicate whether they are still valid. Add extra information as needed. || [#sz_note2 SZ's note 2] || || Boost fails many tests, recheck it on a gcc4 Haiku and create a wiki page showing the status of the failed tests. (http://ports.haiku-files.org/ticket/622) || || Submit a 20kb+ patch containing codestyle fixes for any part of the system || [#sz_note4 SZ's note 4] || || Submit a 20kb+ patch containing codestyle fixes for any part of the system || [#sz_note4 SZ's note 4] || || Submit a 20kb+ patch containing codestyle fixes for any part of the system || [#sz_note4 SZ's note 4] || || GameSound classes need code audit and cleanup http://dev.haiku-os.org/ticket/332 || || Perform code review of Translation kit checking for utf-8 string vulnerabilities, report results || || Review trac tickets #2696, #4947 and report on what if any of the missing functionality is still missing in the current Haiku code || [#sz_note1 SZ's note 1] || == 5. User Interface: Tasks related to user experience research or user interface design and interaction == || Check over the various apps included in Haiku, both with the fonts set to size 12 and set to size 18. Check the apps for text alignment report any issues you find. Keep a list of the apps that you checked over. || [#sz_note3 SZ's note 3] || || Check over the various apps include in Haiku, checking it with various languages set. Note any text alignment problems and report any issues you find. Keep a list of the apps that you checked over, and languages checked. || [#sz_note3 SZ's note 3] || || Check over the various apps included in Haiku, looking for instances of large/too small spacing between elements. Document these problems with annotated screenshots added as attachments in Trac. || [#sz_note3 SZ's note 3] || || Some Haiku apps/preflets use non-standard controls that could be replaced with standard ones, eg. custom progress bars etc.. Identify where these are used, so that they can be updated to use standard controls || || Search Haiku's trac for issues related to the GUI and recheck them to see if they are still valid. || [#sz_note3 SZ's note 3] || || Research a hypothetical Haiku R2 Deskbar and make a mock-up || || Create a HVIF icon for vCard files using Icon-O-Matic || == Siarzhuk's Notes on GCI2012 Ideas list == This section contains my thoughts based on GCI 2010/2011/2012 experiense. All should be prefixed with "In my opinion". [=#sz_note1]**Note 1: Completing POSIX stuff for system-wide headers.** Should be published only in case we have mentor with good knowledge of the POSIX requrements and corresponding experiense. [=#sz_note2]**Note 2: Recheck all tickets for the Application.** It is too silly to complete and gives no guarantee that we can safely close the ticket as fixed. So I treat this as useless waste of time. [=#sz_note3]**Note 3: GUI problems checking tasks in the wrong category.** Should be moved to QA category. Instead I propose to invent more creative tasks for this category. For example, //Design more usefull/comfortable/informational UI layout or application workflow for the **Application**//. Propose mockups and make those tasks more creative and interesting. [=#sz_note4]**Note 4: Codestyle 20kb+ cleanup.** May be we should try to recruit a bit more creative coders than just a cleaning personal? [=#sz_note5]**Note 5: Add BFS attributes support into archive format.** Haiku has xattr emulation so we are becoming the BFS attributes support automatically as soon as corresponding archiver can work with xattr. So there are no big reasons to invent homebrewn attributes implementation.