FIAS Projects: Issueshttps://pm.fias.science/https://pm.fias.science/favicon.ico?15768443862015-09-21T15:09:15ZFIAS Projects
Redmine C++ User Group - Talk #2757 (New): C++ Core Guidelineshttps://pm.fias.science/issues/27572015-09-21T15:09:15ZSteinberg, Vinzent
<p>Earlier this year the C++ Core Guidelines were published by Bjarne Stroustrup and Herb Sutter. From the abstract:</p>
<blockquote>
<p>This document is a set of guidelines for using C++ well. The aim of this document is to help people to use modern C++ effectively. By "modern C++" we mean C++11 and C++14 (and soon C++17). In other words, what would you like your code to look like in 5 years' time, given that you can start now? In 10 years' time?</p>
</blockquote>
<p>I think it would be nice to have a talk/discussion about this.</p> C++ User Group - Talk #2756 (New): Expression templateshttps://pm.fias.science/issues/27562015-09-21T13:28:17ZGlesaaen, Jonas
<p>As expression templates are the new trend in writing optimized numerical libraries these days it would be interesting to get an introduction to this field</p> C++ User Group - Talk #1510 (New): Test-driven development and continuous integrationhttps://pm.fias.science/issues/15102015-04-01T07:14:36ZKöppel, Sven
<p>This is a somewhat general topic of the <em>software engineering</em> subject in applied computer science where we could have a talk with special focus on C++. Keeping an eye on the software development "lifecycle" gets important as soon as a code gets mature, complex and somehow modularized. It also gets important when multiple developers are involved.</p>
<p>Fortunately, in the last years tools have evolved which take care of static code tests (which are able to detect many common programming errors only by "looking at the sourcecode"), automatic building, code self testing, etc. That is, unlike documentation, which has to be written by someone, continuous integration is performed rather by a set of tools like <em>git</em>. The talk should address the popular setups: <a href="https://jenkins-ci.org/" class="external">Jenkins</a>, Hudson or Cruise Control.</p>
<p>A talk about this topic could try to harvest profitable techniques for programming C++ in the scientific domain, avoiding to lose itself in a bullshit bingo scenario.</p> C++ User Group - Talk #1501 (New): Fun with weird C++ https://pm.fias.science/issues/15012015-03-31T09:19:51ZKöppel, Sven
<p>This is maybe something more for some ceremony like the last event before christmas.</p>
<p>Stackoverflow has collected some of the most weird and crazy (mostly operator) constructs of C(++). You quickly find such questions by sorting them by votes: <a class="external" href="http://stackoverflow.com/questions/tagged/c">http://stackoverflow.com/questions/tagged/c</a>.</p>
<p>Examples:</p>
<ul>
<li><a href="http://stackoverflow.com/questions/381542/with-c-arrays-why-is-it-the-case-that-a5-5a" class="external">With C arrays, why is it the case that a<sup><a href="#fn5">5</a></sup> 5[a] ?</a> A: Commutativity of the addition, due to <code>a[b] *(a + b)</code>.</li>
<li><a href="http://stackoverflow.com/questions/24848359/which-is-faster-while1-or-while2" class="external">Which is faster: while(1) or while(2)?</a></li>
<li><a href="http://stackoverflow.com/questions/10087113/how-many-levels-of-pointers-can-we-have" class="external">How many levels of pointers can we have?</a> - or perhaps the question when you didn't understood the concept of pointers</li>
<li>Classic one: <a href="http://stackoverflow.com/questions/1642028/what-is-the-name-of-the-operator" class="external">What is the name of the “-->” operator?</a></li>
<li><a href="http://stackoverflow.com/questions/6430448/why-doesnt-gcc-optimize-aaaaaa-to-aaaaaa" class="external">Why doesn't GCC optimize a*a*a*a*a*a to (a*a*a)*(a*a*a)?</a> - did you know: floating point math isn't associative!</li>
<li><a href="http://stackoverflow.com/questions/9229601/what-is-in-c-code" class="external">What is “:-!!” in C code?</a></li>
</ul>
There are also questions which are probably really of interest for the non-experts:
<ul>
<li><a href="http://stackoverflow.com/questions/11227809/why-is-processing-a-sorted-array-faster-than-an-unsorted-array" class="external">Why is processing a sorted array faster than an unsorted array?</a></li>
<li><a href="http://stackoverflow.com/questions/8547778/why-is-one-loop-so-much-slower-than-two-loops" class="external">Why is one loop so much slower than two loops?</a></li>
</ul>
<p><em>Please append your proposals!</em></p> C++ User Group - Talk #1500 (New): Cling, Interactive C++ and C++11https://pm.fias.science/issues/15002015-03-31T09:03:12ZKöppel, Sven
<p>This talk could highlight one feature of the ROOT software compilation, the interactive compiler which has been rewritten from the scratch some years ago. It is a pure C++ compiler (unlike gcc!). The talk could address only the interactive feature, which is <strong>unique</strong> in the C* world and allows much more flexible approaches how to code and test C++.</p> C++ User Group - Talk #1499 (New): Aspect-oriented programming in C++https://pm.fias.science/issues/14992015-03-31T08:59:42ZKöppel, Sven
<p>Aspect oriented programming (AOP) is another programming paradigm (c.f. functional programming <a class="issue tracker-13 status-1 priority-2 priority-default" title="Talk: Functional programming in C++ (New)" href="https://pm.fias.science/issues/1203">#1203</a>) that helps with dividing problems when programming. I got the feeling scientific codes are rather indifferent of AOP. A talk could address ways to write AOP C++ code (e.g. using <a href="http://en.wikipedia.org/wiki/AspectC%2B%2B" class="external">AspectC++</a>). See e.g. also <a href="http://www.heise.de/ix/artikel/Multiple-Aussichten-505982.html" class="external">this tutorial</a>.</p> C++ User Group - Talk #1498 (New): SWIGhttps://pm.fias.science/issues/14982015-03-31T08:52:01ZKöppel, Sven
<p><a href="http://www.swig.org/" class="external">SWIG</a> is a popular library to build generic interfaces to other programming languages (e.g. scripting languages). One special feature of SWIG is that you do not need to know the "target" language as it enables you to port your C++ program to a generic class of languages.</p>
<p>A talk about SWIG could deal with the pros and cons of this approach compared to a native port coming from the viewpoint of the "target" language and therefore implementing the design and concept of that language. Popular examples where SWIG interfaces look ugly compared to more native ones are at the Python, Perl or PHP side.</p> C++ User Group - Talk #1497 (New): Symbolic programming and C++https://pm.fias.science/issues/14972015-03-31T08:47:28ZKöppel, Sven
<p>Scientific computing is frequently in the midway between algebraic (i.e. symbolic) and numerical computation. A typical answer to the question how to perform exact algebraic computations on computers are <em>CAS</em> (computer algebra systems) like Mathematica, Maxima, Singular, and friends. These systems behave typically like integrated development environments in a fashion that they implement their own programming language, e.g. capable of computing with unkowns (i.e. variables, symbols).</p>
<p>Of course, there are also libraries bringing generic capabilities to manipulate symbolic expressions in the widespread procedural or OO programming languages. In this talk, popular libraries for C++ can be presented which make use of all range of C++ features like templating and OOP.</p>
<p>This talk could deal with <a href="http://www.ginac.de" class="external">GiNaC</a>, which is one of the most modern toolkits. GiNaC was developed at the Mainz University, probably we can invite one of the initiators of the project.</p> C++ User Group - Talk #1496 (New): Cython and friends: Premature Optimizationhttps://pm.fias.science/issues/14962015-03-31T08:30:24ZKöppel, Sven
<p>Scientific python is very prominent (also in ITP and FIAS). We can blame <a href="http://cython.org/" class="external">Cython</a> as one reason for that. Cython enables a smooth embedding of C/C++ programming into Python programming. Compared to the C API e.g. in Perl, Cython is super simple and a good example how to code along the reasoning <em>premature optimization is the root of all evil</em>.</p>
<p>We could have a talk in the popular Pylab/numpy domain with examples where Cython excels.</p> C++ User Group - Talk #1203 (New): Functional programming in C++https://pm.fias.science/issues/12032014-11-20T12:26:39ZKretz, Matthias
<p>I just read an <a href="http://gamasutra.com/view/news/169296/Indepth_Functional_programming_in_C.php" class="external">article by John Carmack on Functional programming in C++</a> which could be interesting to turn into a talk.<br />You would need to create code examples and helpful guidelines to make the presented thoughts more approachable. It would especially be nice to compare a functional and non-functional approach in terms of the ability to reason about code in multi-threaded environments.</p> C++ User Group - Talk #1172 (New): Modern C++: how inheritance and virtual functions fell out of ...https://pm.fias.science/issues/11722014-11-12T13:52:42ZKretz, Matthias
<p>C++ experts seem to agree that the need for inheritance and virtual functions has declined, while solutions based on generic functions and classes have become more and more important.<br />The talk should compare OO and generic programming paradigms and how C++ supports both of them. The performance and maintenance aspects should be discussed. Most importantly examples should compare the different approaches.</p> C++ User Group - Talk #660 (New): bringing physics units to C++https://pm.fias.science/issues/6602014-06-02T13:39:41ZKretz, Matthias
<p>In the std::chrono talk (<a class="issue tracker-13 status-14 priority-2 priority-default closed" title="Talk: std::chrono — typesafe time keeping in C++ (Presented)" href="https://pm.fias.science/issues/566">#566</a>) we've seen the use of <code>std::ratio</code> for encoding the unit prefix / scale associated with an normal numerical value (i.e. seconds vs. milliseconds vs. days vs. ...). In the following discussion we talked about the power of encoding numeric base-type, physical unit, and scaling in the type as the compiler can thus enforce correct usage of physical units.</p>
<p>A talk could explore existing solutions (if there are any published ones) and/or present how such a solution can be implemented and how it affects application development.</p> C++ User Group - Talk #576 (New): boost librarieshttps://pm.fias.science/issues/5762014-04-30T10:55:44ZKretz, Matthias
<p>There are many boost libraries available. We could have several talks to introduce the libraries and show some usage scenarios.</p> C++ User Group - Talk #574 (New): SFINAE, enable_if, and Conceptshttps://pm.fias.science/issues/5742014-04-30T10:52:51ZKretz, Matthias
<p>C++ has an important feature called “Substitution Failure Is Not An Error”. Meaning, if implicit template argument substitution leads to an error, the expression is simply ignored and the error never becomes visible to the user. With this it is then possible to have very fine-grained control over overload resolution.</p>
<p>It is expected that C++17 will have a much nicer syntax for this task, called concepts. The feature is already available for GCC and will possibly become available as experimental option in most C++ compilers soon.</p> C++ User Group - Talk #573 (New): C++11: Lambda expressionshttps://pm.fias.science/issues/5732014-04-30T10:47:56ZKretz, Matthias