From kde-devel Fri Aug 23 15:10:22 2019 From: Konstantin Kharlamov Date: Fri, 23 Aug 2019 15:10:22 +0000 To: kde-devel Subject: Re: SQL Query tool - incubator Message-Id: <1566573022.22846.0 () yandex ! ru> X-MARC-Message: https://marc.info/?l=kde-devel&m=156657304511342 On =D0=9F=D1=82, =D0=B0=D0=B2=D0=B3 23, 2019 at 16:24, Miroslav =C5=A0pehar= =20 wrote: > Hi Alexander >=20 > On Thu, Aug 22, 2019 at 10:19 PM Alexander Semke=20 > wrote: >>=20 >> Hi Miroslav, >>=20 >> > Yes, this is actually an issue. I reached the point where it >> > more-or-less worked for me, some other design aspects i had an=20 >> issue >> > with, so i kinda just thought to left it for a while. >> > I am thinking to put some effort into it once kubuntu 19.10=20 >> (plasma >> > 5.17?) comes out, so let's see if i get distracted with stuff like >> > golang/rust. >> > >> > As i said, this is just a check to see what you guys think about=20 >> this >> > idea, especially since there is no alternative for this=20 >> development >> > tool in kde ecosystem (not considering jetlabs and java apps). >> > I can also keep it as it is and come back when it is more mature. >> I think the idea is good and I personally would also prefer to use=20 >> a KDE >> application with good usability, nice breeze icons etc. instead of >> sqlitebrowser and similar applications. There is no such tool right=20 >> now and >> somebody has to invest here and to drive this project. So, it's not=20 >> only about >> having the idea but also about an active contribution to the=20 >> project. >>=20 >> You mentioned couple of TODOs on your github page and the goal is=20 >> stated as to >> be something similar as HeidiSQL. This goal is not reached yet I'd=20 >> say and the >> TODO-list can be easily extended by many other feature requests for=20 >> such a >> tool. This contradicts a bit with your plans to leave the project=20 >> for a while. >> Are you just looking for somebody who can take over the maintanance=20 >> and >> further develpment of this project? >>=20 >> Best Regards, >> Alexander >>=20 >=20 > The problem with those TODOs and generally why i turned for help - > because i got bored of rewriting what i did in a bad way This is the > part of the learning process, but still annoying and demotivating. > "Leaving the project" already happened, so this is me actually > thinking of doing a few improvements in the following months. >=20 > No, i am not looking for someone to take over, one of the goals is > that i learn, so i have to / want to be in this. Also, there is no > maintenance yet since it is not finished nor ready for release. > What i actually need in one word is - mentoring. To tell me if my > design/structure/code is wrong and prevent me from burning my time on > something that is not worth it. About learning to design code properly, I can give a recommendation.=20 Learn Haskell, until you more or less comfortable with it. You may stop=20 using it right after that, however just the fact that you know the=20 language gonna pay you back big time in just about any other that you=20 happen to use in the future. Since you're using C++, this would make you more comfortable with=20 various constructions that may otherwise look too clumsy to get used to=20 them quickly, such as: unions/std::variant, templates, lambdas, various=20 functions that traverse containers=E2=80=A6 Especially so with templates: y= ou=20 can "think" in Haskell due to its elegant syntax, and then reapply your=20 understanding of how types gets shuffled around in a template=20 construction to C++ templates. In general, this language forces one to learn when it's a good time to=20 break a function to multiple ones, how to encapsulate a logic as much=20 as possible. This is the language that popularized Category Theory=20 among programmers (even though mathematicians argue that Hask is not a=20 category, but there's enough similarity to get a grasp of it). Be ready to get frustrated at first though, this may be like learning=20 programming anew, like, when you can't even figure out how to write a=20 hello world. =