Events/C++Lectures

Idea
The text below has been extracted from an email sent by Björn Michaelsen describing the idea behing the C++ Lectures:

As you might have seen, we have started to follow up on the Albanian community with opportunities in LibreOffice developement:

https://forum.openlabs.cc/t/libreoffice-2019/1406/20

There are four topics that need to be covered for new contributors:


 * 1) git/gerrit
 * 2) object-oriented programming
 * 3) C++
 * 4) LibreOffice specifics, getting your first build

My hope is that the first two are reasonably well covered in general tutorials and teachings available on the web: gerrit is a bit special, but that is not too big of a topic, so my hope is our wiki and IRC resources there are good enough. Same for the 'getting your first build'.

But C++ is really the hard part to groom in a future contributor. Eike and me went out hunting for good resources and this blog post by yours truly describes what we found:

https://skyfromme.wordpress.com/2018/10/11/getting-started-with-libreoffice-development-object-oriented-programming-and-c-introductions/

At the core of this are two resources: A book/webpage ("C++ Annotations") and the Stanford lectures on C++. While the former is great for the details, the latter is good for understanding the big picture covering the important concepts (and the "book" can support that).

So how can we use this to help development newcomers? Here is a format I would like to attempt:


 * 1) We select and announce one lecture from the course every week (or every    second week)
 * 2) We set a date for an IRC or jitsi meeting and invite newcomers to join.
 * 3) We ensure at least one experienced developer (e.g. from the ESC) joins this call or meeting
 * 4) During the meeting, we casually discuss the topics of the lecture and answer newcomers questions on the topics at hand

This should help newcomers seeing a benefit in joining the community and also make it natural for them to help others with what they learned.

How to host the meeting
Check how to use Meetbot here.

Template for blog post


Improve your C++ skills with the help of LibreOffice developers! We're running regular workshops which focus on a specific topic, and are accompanied by a real-time IRC meeting. For the next one, the topics is FOO. Start by watching this presentation:

[YouTube link here]

Then join us on DATE AND TIME for a discussion via our #libreoffice-dev IRC channel on Freenode. You can ask experienced LibreOffice developers questions, and learn more about the language. See you then!

First Session

 * When: 13, December, 2018 at 19:00 UTC


 * Topic: Introduction, Function and Strings


 * Links:
 * https://www.youtube.com/watch?v=IeVLwMS1nu8
 * https://www.youtube.com/watch?v=ggmspIvaWjI&index=2&list=PLT0wqqmbAFnfdRRCnzqY943MDyaNa3KSy
 * http://www.icce.rug.nl/documents/cplusplus/cplusplus03.html#l29
 * http://www.icce.rug.nl/documents/cplusplus/cplusplus04.html#l70
 * http://www.icce.rug.nl/documents/cplusplus/cplusplus05.html#l81
 * https://gerrit.libreoffice.org/#/c/65125/


 * Announcement: https://blog.documentfoundation.org/blog/2018/12/05/learn-c-with-the-help-of-libreoffice-developers/


 * Minutes: https://dev-downloads.libreoffice.org/meetbot/libreoffice-dev/2018/libreoffice-dev.2018-12-13-19.01.html


 * Notes:
 * Regarding the string class in the first video please note that LibreOffice uses its own OUString class (or rather rtl::OUString for 16-bit UTF-16 strings, and rtl::OString for 8-bit strings (for example used for UTF-8), with conversions between them that can handle different text encodings), see our include/rtl/ustring.hxx and include/rtl/string.hxx header files. So in the context of LibreOffice development that part of the lecture is to be taken with a grain of salt, though useful for general C++ handling.


 * Attendees
 * erAck (46)
 * x1sc0 (46)
 * Sweetshark (36)
 * LKJ (27)
 * htietze (13)
 * LintonSamuelDaws (11)
 * vranicieva (9)
 * izabela (8)
 * ChaKu (5)
 * thorsten (5)

Second Session

 * When: 20, December, 2018 at 19:00 UTC


 * Topic: I/O Streams and build LibreOffice


 * Links:
 * https://www.youtube.com/watch?v=zy9kJvOGtGk&index=3&list=PLT0wqqmbAFnfdRRCnzqY943MDyaNa3KSy
 * http://www.icce.rug.nl/documents/cplusplus/cplusplus06.html#l81
 * https://wiki.documentfoundation.org/Development/How_to_build


 * Announcement: https://blog.documentfoundation.org/blog/2018/12/18/coming-up-on-december-20-next-c-workshop/


 * Minutes: https://dev-downloads.libreoffice.org/meetbot/libreoffice-dev/2018/libreoffice-dev.2018-12-20-19.05.html


 * Notes:


 * Attendees
 * Sweet5hark (29)
 * erAck (29)
 * x1sc0 (25)
 * alg (19)
 * vranicieva (17)
 * thorsten (15)
 * htietze (12)
 * Hephaestus12 (11)
 * izabela (9)
 * IZBot (4)
 * mikekaganski (3)
 * quikee (1)
 * jmux (1)

Third Session

 * When: 10, January, 2019 at 19:00 UTC


 * Topic: "Abstract Data Types"


 * Links:
 * https://www.youtube.com/watch?v=_ImwLa34d9I&list=PLT0wqqmbAFnfdRRCnzqY943MDyaNa3KSy&index=4
 * http://www.icce.rug.nl/documents/cplusplus/cplusplus12.html#l247
 * https://wiki.documentfoundation.org/Development/How_to_build


 * Announcement: https://blog.documentfoundation.org/blog/2019/01/09/next-c-workshop-10-january-2019-at-1900-utc/

EasyHack For starters: https://bugs.documentfoundation.org/show_bug.cgi?id=42982 https://bugs.documentfoundation.org/show_bug.cgi?id=88205 these two were discussed with Izabela at the Munich Hackfest already. They are quite parallizable (and there are many places to fix them) and since Izabela already fixed each of them, she should be able to help others out with them. So, since Izabela hands over/can mentor these first two, what can we give her as a new task? Maybe this one: https://bugs.documentfoundation.org/show_bug.cgi?id=119996
 * Minutes: https://dev-downloads.libreoffice.org/meetbot/libreoffice-dev/2019/libreoffice-dev.2019-01-10-19.08.html
 * Notes:


 * Attendees
 * thorsten (44)
 * Sweetshark (26)
 * ericJmorey (17)
 * erAck (12)
 * izabela (10)
 * ziad_marghany (9)
 * buovjaga (6)
 * vranicieva (5)
 * klevis (3)
 * htietze (1)

Fourth Session

 * When: 24, January, 2019 at 19:00 UTC


 * Topic: Set and Maps


 * Links:
 * https://www.youtube.com/watch?v=Eisp8H2_FG4&index=6&list=PLT0wqqmbAFnfdRRCnzqY943MDyaNa3KSy&t=0s
 * http://www.icce.rug.nl/documents/cplusplus/cplusplus12.html#l258
 * http://www.icce.rug.nl/documents/cplusplus/cplusplus12.html#l264


 * Announcement: https://blog.documentfoundation.org/blog/2019/01/22/coming-up-on-24-january-next-c-workshop-set-and-maps/


 * Minutes: https://paste.debian.net/1062373/ (IZBot failed)


 * Notes:
 * Suggested easyhacks to work on


 * Attendees
 * No list of attendees this time. IZBot failed...

Fifth Session

 * When: 14, February, 2019 at 19:00 UTC


 * Topic: Recursion


 * Links:
 * https://www.youtube.com/watch?v=xkoZY2sXo_c&list=PLT0wqqmbAFnfdRRCnzqY943MDyaNa3KSy&index=6


 * Announcement: https://blog.documentfoundation.org/blog/2019/02/12/next-c-workshop-recursion-14-february-at-1900-utc/


 * Minutes: https://dev-downloads.libreoffice.org/meetbot/libreoffice-dev/2019/libreoffice-dev.2019-02-14-19.00.html


 * Notes:
 * Suggested easyhacks to work on


 * Attendees
 * x1sc0 (54)
 * erAck (40)
 * izabela[m] (36)
 * KingInTheNorth (12)
 * htietze (7)
 * asturm (6)
 * emmy-w (3)
 * IZBot (2)
 * htietze[m] (1)

Sixth Session

 * When: 28, February, 2019 at 19:00 UTC


 * Topic: Recursion 3, Fractals


 * Links:
 * https://www.youtube.com/watch?v=gCVzZDVDvvo&list=PLT0wqqmbAFnfdRRCnzqY943MDyaNa3KSy&index=7


 * Announcement: https://blog.documentfoundation.org/blog/2019/02/25/next-c-workshop-recursion-and-fractals-28-february-1900-utc/


 * Minutes: https://dev-downloads.libreoffice.org/meetbot/libreoffice-dev/2019/libreoffice-dev.2019-02-28-19.14.html


 * Notes:
 * Suggested easyhacks to work on


 * Attendees
 * erAck (37)
 * izabela[m] (19)
 * htietze[m] (4)
 * IZBot (2)
 * Sweetshark (1)
 * ishwaranand63 (1)
 * thorsten (1

Seventh Session

 * When: 14, March, 2019 at 19:00 UTC


 * Topic: Classes and Arrays


 * Links:
 * https://www.youtube.com/watch?v=7PvtI4d8MOs&list=PLT0wqqmbAFnfdRRCnzqY943MDyaNa3KSy&index=11
 * http://www.icce.rug.nl/documents/cplusplus/cplusplus07.html#l117
 * http://www.icce.rug.nl/documents/cplusplus/cplusplus09.html#l162


 * Announcement: https://blog.documentfoundation.org/blog/2019/03/13/next-c-workshop-classes-and-arrays-14-march-at-1900-utc/


 * Minutes: https://dev-downloads.libreoffice.org/meetbot/libreoffice-dev/2019/libreoffice-dev.2019-03-14-19.00.html


 * Notes:
 * Suggested easyhacks to work on


 * Attendees
 * x1sc0 (23)
 * erAck (11)
 * mikekaganski (10)
 * htietze (9)
 * klevis (7)
 * izabela[m] (3)
 * IZBot (2)
 * Sweetshark (1)

Eighth Session

 * When: 28, March, 2019 at 19:00 UTC


 * Topic: Pointers and Linked Lists


 * Links:
 * https://www.youtube.com/watch?v=iGSFM_5pLGU&list=PLT0wqqmbAFnfdRRCnzqY943MDyaNa3KSy&index=12


 * Announcement: https://blog.documentfoundation.org/blog/2019/03/26/next-c-workshop-pointers-and-linked-lists-28-march-at-1900-utc/


 * Minutes:


 * Notes:
 * Suggested easyhacks to work on


 * Attendees
 * mikekaganski
 * x1sc0
 * izabela[m]

Nineth Session

 * When: 11, April, 2019 at 18:00 UTC


 * Topic: Linked Lists


 * Links:
 * https://www.youtube.com/watch?v=QvuICBCqmOk&list=PLT0wqqmbAFnfdRRCnzqY943MDyaNa3KSy&index=13


 * Announcement:


 * Minutes:


 * Notes:
 * Suggested easyhacks to work on


 * Attendees

Tenth Session

 * When: 25, April, 2019 at 18:00 UTC


 * Topic: Linked List / Stack Classes; PQs and Heaps


 * Links:
 * https://www.youtube.com/watch?v=aTjPzdbBgWM&list=PLT0wqqmbAFnfdRRCnzqY943MDyaNa3KSy&index=14


 * Announcement:


 * Minutes:


 * Notes:
 * Suggested easyhacks to work on


 * Attendees

Eleventh Session

 * When: 9, May, 2019 at 18:00 UTC


 * Topic: Binary Trees


 * Links:
 * https://www.youtube.com/watch?v=-A5en2XrEIU&list=PLT0wqqmbAFnfdRRCnzqY943MDyaNa3KSy&index=15


 * Announcement:


 * Minutes:


 * Notes:
 * Suggested easyhacks to work on


 * Attendees

Twelfth Session

 * When: 23, May, 2019 at 18:00 UTC


 * Topic: Binary Search Trees


 * Links:
 * https://www.youtube.com/watch?v=nhaLfdse_IM&list=PLT0wqqmbAFnfdRRCnzqY943MDyaNa3KSy&index=16


 * Announcement:


 * Minutes:


 * Notes:
 * Suggested easyhacks to work on


 * Attendees