19:01:50 <x1sc0> #startmeeting 19:01:52 <IZBot> Meeting started Thu Dec 13 19:01:50 2018 UTC. The chair is x1sc0. Plugin info at http://wiki.debian.org/MeetBot. 19:01:53 <IZBot> Useful Commands: #action #agreed #help #info #idea #link #topic. 19:02:07 <samuel_m> mst___`: nailed it, thx for the idea! 19:02:36 <x1sc0> Sweetshark, should we switch to jitsi if we're just a few ? 19:03:25 <x1sc0> so, everyone watched the two videos ? 19:03:30 <Sweetshark> x1sc0: I dont mind either way ;) Depends what others say ... 19:03:34 <LKJ> I did. 19:03:46 <LintonSamuelDaws> I did too. 19:04:03 <LKJ> I'm literally following the leader, so whatever works is fine with me. 19:04:17 <htietze> Me too 19:04:18 <x1sc0> so? do you have any question regarding those videos? 19:04:28 <LKJ> Yes, a few. 19:04:34 <htietze> I learned a lot about Java :-) 19:04:47 <x1sc0> as erAck mentioned here-> https://forum.openlabs.cc/t/libreoffice-2019/1406/50?u=x1sc0 19:04:59 * Sweetshark digs out notebook and removes stickers from camera just in case ... 19:05:09 <vranicieva> We, friends from Tirana, have watched as well 19:05:18 <x1sc0> #link https://forum.openlabs.cc/t/libreoffice-2019/1406/50?u=x1sc0 19:05:27 <LKJ> I Martin Stepp didn't care much for C++, and I've read other opinions that Java is an ugly language. Should I be learning something besides C++? 19:05:35 <x1sc0> LibreOffice uses its own OUString and OString 19:05:37 <LKJ> *I read* 19:06:18 <erAck> LKJ: for LibreOffice core development C++ is mandatory; Python is always a nice to have 19:06:37 <Sweetshark> maybe we should start by collecting a few questions and then work through them? I'd propose to prefix questions about the video with q# so we can easily see them ... 19:06:53 * erAck nods 19:07:04 <Sweetshark> x1sc0: ^^ 19:07:05 <LKJ> okay 19:07:11 <htietze> Was very much basic to me. What I didnt know before was the namespace thing (got it now to 80%). 19:07:12 <x1sc0> Sweetshark, yep, good idea 19:07:48 <erAck> htietze: it's meant to be basic for the first lesson.. welcoming the Java people :P 19:09:17 <erAck> kiwi_51 vranicieva LintonSamuelDaws LKJ : so, any specific questions for starters? 19:09:34 <LintonSamuelDaws> Is it correct to write "using namespace std" at the start of a program or use the "std::" for each global objects ? 19:09:55 <LintonSamuelDaws> *object 19:11:29 <Sweetshark> LKJ: well, there are many opinions on programming languages. we could spend a whole evening just rambling on those. A hopefully not too controversial statement about C++ is: 1/ Its only of the languages suited well for low-level code where performance counts (e.g. games, browsers) 2/ 99% of LibreOffice (and Chromium and a lot of game engines) are written in it, so that is why it is important. 19:11:29 <LKJ> Continuing my earlier question (and the answer) for a moment, would it be better to learn Python, or just dive into C++? 19:11:31 <erAck> LintonSamuelDaws: if you use a namespace a lot in one source file then yes, though I would refrain from doing it for std:: 19:11:55 <htietze> Multiple references like using namespace com::sun::star; mean that com:: and sun:: can be used or some kind of inheritance since star:: is not possible? 19:12:02 <erAck> LintonSamuelDaws: reason is you always wnat the std:: namespace in those cases and not something different, and writing std:: is short 19:13:17 <x1sc0> LKJ, LibreOffice is mainly developed in C++. if you want to contribute to the project developing, you should learn C++ then 19:13:29 <Sweetshark> FWIW, I just hacked together a little "Hello World" program build inside the LibreOffice build. You can find it here: https://gerrit.libreoffice.org/#/c/65125/ 19:13:30 <IZBot> gerrit: »A LibreOffice Hello World!« by Björn Michaelsen for master [NEW] 19:14:04 <erAck> LintonSamuelDaws: btw, namespaces aren't restricted to "objects", neither to "global", you use namespaces also for functions 19:14:13 <vranicieva> It was quite a clear video for it was a introduction to c++ 19:14:29 <LKJ> Sweetshark, that's not a problem, I'm just trying to understand. As far as I am concerned, a programming language is a programming language. I just want to make sure I invest my time to learn wisely. 19:15:15 <LKJ> Long ago I worked with FoxPro (Watcom C), and I have some exposure to Javascript and other languages so I'm not afraid to learn. 19:15:42 <LKJ> What I saw on the video looked reasonably straight forward as a newbie. 19:16:11 <Sweetshark> ... I also wanted to add the other stuff done in the videos "the LibreOffice way" with LibreOffice strings, maybe I will add that along as we chat. 19:16:13 <ChaKu> q# I have been watching a lot of 'modern C++' videos. With the newfangled C++ 17/20 coming in with many of the traditional C++ features now being marked as "bad practice", does it make sense to learn these or should I stick with learning C++ 11? 19:16:48 <x1sc0> Sweetshark, nice! #q: any reason why you chose SAL_IMPLEMENT_MAIN() as the fuction name ? 19:17:13 <x1sc0> #link https://gerrit.libreoffice.org/#/c/65125/ 19:17:14 <IZBot> gerrit: »A LibreOffice Hello World!« by Björn Michaelsen for master [NEW] 19:18:22 <erAck> ChaKu: C++11 is a good starter, but getting acquainted with newer features pays; LibreOffice over time is using more of newer language features 19:19:03 <x1sc0> the patch can be downloaded from the page mentioned - download ( right top corner ) -> git fetch https://git.libreoffice.org/core refs/changes/25/65125/1 && git cherry-pick FETCH_HEAD 19:19:26 <Sweetshark> LKJ: as said there is no universal answer to that. If you ask five programmers you will get ten opinions on "best language/investment". BUT: ~Everything in LibreOffice is C++, so for LibreOffice C++ is essential. 19:20:33 <LKJ> Sweetshark, then C++ it is. Does that also apply to apps such as Thunderbird -- or is that outside the scope of this discussion? 19:20:37 <htietze> #q: What does "namespace com::sun::star;" mean? The question is about the combined namespaces. 19:20:43 <Sweetshark> LKJ: And C++ is also used in game engines, browsers. The Linux kernel and a lot of embedded stuff is in plain C with you learn a lot of along the way when learning C++. 19:21:39 <LKJ> Sweetshark: I can tell from the bit of discussion I've seen so far, I have a LOT of learning to do... 19:22:52 <x1sc0> Sweetshark, you forgot to add sal/Executable_helloworld.mk 19:23:26 <erAck> htietze: that's qualifying something that's in namespace com { namespace sun { namespace star { ... }}} 19:23:51 <erAck> htietze: like all UNO API under offapi/com/sun/star/... 19:24:53 <ChaKu> #q: If one wants to contribute to LibreOffice, any recommended frameworks/libraries in C++ one needs to learn? Also, any specific system I need to understand before jumping in (for example, the X Window System or something like that)? 19:25:21 <erAck> htietze: our shorthand for that btw is css, so css::sheet::... is the same as writing com::sun::star::sheet::... 19:25:22 <Sweetshark> x1sc0: forgot Executable <= whops, fixed now with update 19:25:23 <htietze> dont get the brackets. is it because com::foo is used in sun::bar and to go with just bar I have to add both namespaces (ie no inheritance of com in sun)? 19:25:43 <htietze> css = com::... :-) 19:27:19 <erAck> htietze: you are declaring and defining things in namespaces like namespace foo { class bar; } 19:27:21 <erAck> htietze: you are using something from a namespace with foo::bar 19:28:50 <x1sc0> Sweetshark, thanks, it works now 19:29:16 <Sweetshark> x1sc0: a# Why SAL_IMPLEMENT_MAIN()? SAL_IMPLEMENT_MAIN() is a macro defined in include/sal/main.h that does some extra setup magic for LibreOffice, so this is what I used here. "int main()" should work too for this simple example ... 19:29:43 <Sweetshark> x1sc0: a# yes, "int main()" works just as well. 19:30:29 <Sweetshark> x1sc0: a# TBH I dont know what the magic is done there and at what point it will be needed. sberg will know though. 19:30:55 <htietze> erAck: If com:: defines a namespace foo and sun:: uses it for bar this it is not taken into star:: and I would have to write css::baz? 19:31:04 <x1sc0> Sweetshark, ok, thanks 19:31:26 <erAck> htietze: I didn't get that 19:32:06 <x1sc0> anyone has tried the patch from Sweetshark ? ChaKu, LKJ vranicieva LintonSamuelDaws do you need help to make it to run ? 19:32:42 <ChaKu> whois x1sc0 19:32:42 <htietze> erAck: It's my assumption/understanding of a::b::c. Can take it anyway, asking just out of curiosity. 19:32:50 <ChaKu> whoops :p 19:33:19 <LKJ> @x1sc0Yes, please how to run. All help is appreciated. I'm obviously not at the level with C++ of most everyone here, but I'm watching. 19:33:20 <htietze> x1sc0 is ~x1sc0@vm174.documentfoundation.org (Xisco) 19:34:07 <x1sc0> LKJ, do you have a recent build of LibreOffice ? 19:34:14 <LKJ> Yes. 19:34:24 <erAck> LKJ: it's in the commit message of https://gerrit.libreoffice.org/65125 19:34:25 <IZBot> gerrit: »A LibreOffice Hello World!« by Björn Michaelsen for master [NEW] 19:34:53 <erAck> LKJ: basically if cherry-picked and in directory sal after the make then LD_LIBRARY_PATH=../instdir/program/ ../workdir/LinkTarget/Executable/helloworld 19:35:28 <x1sc0> LKJ, go here: https://gerrit.libreoffice.org/#/c/65125/ and copy the cherry-pick command from the download dropdown list on the top right conner 19:35:29 <IZBot> gerrit: »A LibreOffice Hello World!« by Björn Michaelsen for master [NEW] 19:35:47 <vranicieva> No, we have built LibreOffice yet on the laptops 19:35:56 <erAck> unless on Windows, I guees things are different there.. 19:36:26 <x1sc0> LKJ, open the terminal, go to the libreoffice repository and paste it 19:37:18 <izabela> I did build LO in my laptop but it crashed so now in my new laptop I do not have it 19:37:20 <x1sc0> vranicieva, then, you need it :) -> https://wiki.documentfoundation.org/Development/BuildingOnLinux 19:37:45 <erAck> htietze: https://en.cppreference.com/w/cpp/keyword/namespace 19:38:10 <LKJ> @x1sc0, not sure when I said yes, I may have mispoken. I have the most current stable version of LO. 19:38:55 <Sweetshark> x1sc0, erAck: We should ask cloph to maybe have those build boxes ready next time ... 19:39:06 <izabela> together with Bjorn we talked to first learn a little C++ and then we'll focus on building LO and solving easy hacks 19:39:08 <erAck> Sweetshark: +1 19:39:15 <LKJ> @x1sc0: I have copied. Once in Linux CLI, what is command to copy to repository (I'm somewhat new to Linux; old Windows user back to DOS). 19:39:30 <x1sc0> LKJ, https://wiki.documentfoundation.org/Development/BuildingOnLinux 19:39:42 <x1sc0> Sweetshark, are them already available ? 19:40:20 <Sweetshark> Are there more questions on the video (or did we miss something? just repost then, I guess) 19:41:48 <htietze> erAck: Now I got it. Namespaces are just another "type of bracket". 19:42:48 <erAck> htietze: *cough* what? 19:43:04 <x1sc0> izabela, ok, sorry, I was going to fast 19:43:11 <htietze> erAck: Dont worry, the reference is clear 19:43:24 <erAck> k 19:43:36 <vranicieva> We both have Linux so we are thinking that it would be great if on the next call/irc-meeting we focus on the LO build-support 19:43:57 <erAck> izabela: any questions regarding C++ so far? 19:44:59 <izabela> probaly questions will come after the build and solving some easy hacks 19:45:06 <Sweetshark> htietze: yup, namespaces are like directories in filesystems. In Java, the build tools even pretty much enforce you to put the stuff in directories like the namespaces: e.g. the sw::core::text namespace would be in sw/core/text. But ... in LibreOffice we dont have that too much (mostly for historical reasons). 19:46:01 <Sweetshark> vranicieva: sure, sounds great. x1sc0: what do you think? 19:47:01 <x1sc0> yep, I like the idea, IMHO, it doesn't make sense to run these lessons without even having LO built 19:47:26 <x1sc0> specially if we create patches like yours 19:48:01 <x1sc0> this way we can learn C++/LO code base/gerrit/git all together 19:48:25 <Sweetshark> x1sc0, all: yeah, sorry. the patch was just an idea that popped into my mind yesterday and I quickly hacked it together in the 15 minutes before the call ... 19:48:45 <x1sc0> well, I think it's a great idea 19:50:28 <x1sc0> I would propose for the next session to try to build LibreOffice and watch 2 more videos... my 2 cents 19:50:49 * erAck isn't such a video lessons guy, specifically if they come with bad audio, so again points out http://www.icce.rug.nl/documents/cplusplus/ also mentioned on the wiki 19:51:07 * thorsten waves around - o/ 19:51:10 <vranicieva> What 2 videos though? 19:51:18 <Sweetshark> x1sc0, all: What are the opinions on IRC vs. jitsi? Should we try jitsi next time? Or maybe have jitsi along with IRC, so that we can share links with everyone in the channel, but also talk with those interested? 19:51:51 <x1sc0> Sweetshark, IRC is a bit chaotic in my opinion... 19:51:57 <erAck> we can have both if we want to 19:52:00 <vranicieva> You mean the 2 next Standford videos? 19:52:22 <x1sc0> yep, probably using both is the best 19:52:28 <Sweetshark> x1sc0: IRC chaotic. yeah, same feeling here. ;) 19:52:46 <erAck> it's what we love, don't we? ;P 19:53:00 <Sweetshark> erAck: Hail Eris! 19:53:05 <izabela> i am up for jitsi 19:53:06 <erAck> o/ 19:53:53 * Sweetshark checks Stanford videos on what is next ... 19:54:05 <LintonSamuelDaws> Would it be an audio conference on jitsi or just meassaging ? 19:54:35 <erAck> Sweetshark: btw, we ended up with two "learning" pages in the wiki, https://wiki.documentfoundation.org/Development/GeneralProgrammingGuidelines and https://wiki.documentfoundation.org/Development/Training_Information 19:54:42 <htietze> x1sc0: Do you want to make an announcement next week or just word of mouth? 19:54:48 * erAck just accidentally found out 19:55:03 <Sweetshark> LintonSamuelDaws: jitsi is video conferencing. some people cover their laptop cams, then its only audio ;) 19:55:25 <LintonSamuelDaws> Oh ! 19:56:15 <LKJ> x1sc0: Had to install git also. When I pasted Cherrypick line, (where instructions showed 'git clone') I got an error: "fatal: not a git repository (or any of the parent directories): "fatal: not a git repository (or any of the parent directories): .git" 19:56:20 <Sweetshark> htietze, x1sc0: we should totally have that at least on planet.documentfoundation.org at least via some blog (then can reshare on twitter/whatever) 19:57:08 <x1sc0> htietze, Sweetshark yep, mike can do it 19:57:26 <LintonSamuelDaws> A question bit out of scope, but why did you guys opt for Gerrit instead of Github or Gitflow ? 19:57:49 <LKJ> x1sc0, don't worry about it. I don't want to take up valuable time. I've already learned by listening to all of you. I need to do some work to learn C++ from the ground up before tackling LO. But I would like to keep coming to these sessions as well if you'll keep me informed. 19:58:24 <x1sc0> LKJ, first clone it, then cherry-pick the patch 19:58:36 <LKJ> Ah. I'll try. 19:58:54 <erAck> LintonSamuelDaws: gerrit is just the code review frontend to the git repository which happens to be hosted on a server named gerrit as well.. ;-) 19:59:14 <Sweetshark> sooo: the next lectures are "I/O streams, Vector/Grid" and "Abstract data types". My guess would be one would be enough (vectors, arrays and all that jazz). 19:59:28 <erAck> Sweetshark: agreed 19:59:50 <Sweetshark> thorsten: still at the airport 19:59:52 <Sweetshark> ? 20:00:45 <erAck> LintonSamuelDaws: github doesn't suit our review and cherry-pick workflow well with its pull requests 20:00:50 <thorsten> Sweetshark: yeah 20:00:51 <x1sc0> Sweetshark, erAck I'm checking http://www.icce.rug.nl/documents/cplusplus/ and I like a lot, maybe we could combine one video and one topic from there 20:03:06 <erAck> x1sc0: rather ave one topic covered by avideo and the corresponding section from that written material (if possible) 20:03:49 <erAck> btw, *when* will be the next meeting session? 20:03:53 <Sweetshark> yup. 20:04:01 <erAck> in two weeks would be Dec.27 20:04:13 * erAck wouldn't join then 20:04:15 <x1sc0> after new year ? 20:04:16 <LintonSamuelDaws> Any prerequisites for the next meet ? 20:04:58 <erAck> Jan.9? 20:05:02 <Sweetshark> eek, December 27 -- well, I will be at Chaos Communication Congress then. 20:05:12 <erAck> lucky one.. 20:05:22 <x1sc0> erAck, Jan.10 ? 20:05:54 <erAck> ah right, Jan.10 is Thu 20:06:47 <thorsten> or one week earlier? what's the planned cadence, usually 2-3 weeks? 20:07:04 <Sweetshark> well, since I feel this one was still a bit chaotic as we find our rhythmn: How about follow up on December 20th right away? We will have the "christmas break" after that. 20:07:32 <erAck> Dec.20 would work for me 20:07:33 <thorsten> woudn't mind, very likely can make the date 20:07:54 <x1sc0> fine with me too 20:08:03 <vranicieva> Unfortunately, there was an internet disconnection for the last few minutes. Was there anything important so that you can reshare it with us? 20:08:30 <Sweetshark> ChaKu, LKJ vranicieva LintonSamuelDaws izabela : 20:08:57 <LintonSamuelDaws> I can make it on 20 Dec 20:09:08 <ChaKu> +1 20:09:16 <LKJ> Yes, Dec 20. What time? 20:09:21 <Sweetshark> ChaKu, LKJ vranicieva LintonSamuelDaws izabela: We wonder if we should make the next meeting on December 20th. Again on IRC, but with optional jitsi for discussion. 20:09:31 <x1sc0> LKJ, same time, 19:00 UTC 20:09:42 <LKJ> Good. 20:09:57 <LKJ> IRC vs. jitsi -- just tell me what to do. 20:11:05 <LKJ> x1sc0, got it calendared. 20:11:20 <Sweetshark> LKJ: well, you know how to IRC. For jitsi: have a notebook with camera an mic and we will share a link to open in the browser. no apps needed jitsi is just running in the browser 20:11:24 <vranicieva> on 20th, using jitsi seems okay to me 20:11:52 <erAck> LKJ: you only need a decent browser with WebRTC, such as Firefox or Chromium-Browser, we (TDF) provide the room 20:11:53 <LKJ> Already on a notebook with camera and mic, so all set. 20:12:02 <izabela> on 20th its ok for me as well 20:12:37 <x1sc0> ok, we will announce it beforehand anyway 20:12:39 <LKJ> erAck, using Firefox and Chrome, so good on browser as well. 20:13:53 <x1sc0> so I think we can close this meeting 20:14:00 <thorsten> cheers 20:14:05 <LintonSamuelDaws> What all should we come prepared with ? 20:14:07 <erAck> x1sc0: will you pin-point and announce the video lesson and corresponding chapter(s) of the written material? 20:14:21 <LKJ> x1sc0, silly question, but clone still ongoing. Once done, THEN I copy Cherrypick, cd libreoffice, and run autogen.sh? 20:14:32 <x1sc0> erAck, yep, i'll do it 20:14:34 <tml_> thorsten: cheers! <lifts his glass of Swedish designer Glühwein> 20:14:43 <erAck> x1sc0: thanks 20:14:55 <x1sc0> we don't have any way to communicate though 20:15:03 <Sweetshark> LintonSamuelDaws: Maybe try building LibreOffice. if you get stuck, bring your questions ;) 20:15:17 <x1sc0> like a mailing list or forum where people can ask questions as well 20:15:18 <LKJ> x1sc0, should we check back on the blog for updates? 20:15:23 <LintonSamuelDaws> Sure. Is it all right if I ask my queries here ? 20:15:42 <x1sc0> or should we use OpenLabs forums for that ? 20:15:51 <erAck> x1sc0: blog like this time and also on the openlabs forum? 20:15:53 <vranicieva> Yes, sure 20:16:16 <erAck> LintonSamuelDaws: LibO building questions are always ontopic here 20:16:34 <Sweetshark> x1sc0: maybe something interactive like etherpad or LibreOffice Online? OpenLabs Forum will work too, I guess. 20:16:36 <LintonSamuelDaws> Thanks :) 20:16:52 <izabela> but I think that this is a LibreOffice project... and people will get confused if this is showed as a openlabs community project 20:17:28 <erAck> izabela: hum? how do you mean, openlabs community project? 20:18:02 <izabela> that happens locally in Albania and people have to be come at the hackerspace 20:18:21 <izabela> just to avoid confusion 20:18:46 <erAck> izabela: ah, isn't that clear from the forum page? 20:18:46 <Sweetshark> izabela: yeah, we can use LibreOffice Online or pad.documentfoundation.org, I guess. 20:19:28 <x1sc0> I'll create a wiki page to log the sessions 20:19:39 <x1sc0> well, I'm closing the meeting 20:19:43 <x1sc0> #endmeeting