Coders Chit-Chat

08/28/2015 12:26 _Roman_#211
Hi ich lese in letzter Zeit immer mehr darüber, dass C++ bloated ist. Kann mir da jemand genauere Info dazu geben? Hab dazu noch folgendes Zitat von Linus Torvalds gefunden:
Quote:
C++ is a horrible language. It's made more horrible by the fact that a lot
of substandard programmers use it, to the point where it's much much
easier to generate total and utter crap with it. Quite frankly, even if
the choice of C were to do *nothing* but keep the C++ programmers out,
that in itself would be a huge reason to use C.

In other words: the choice of C is the only sane choice. I know Miles
Bader jokingly said "to piss you off", but it's actually true. I've come
to the conclusion that any programmer that would prefer the project to be
in C++ over C is likely a programmer that I really *would* prefer to piss
off, so that he doesn't come and screw up any project I'm involved with.

C++ leads to really really bad design choices. You invariably start using
the "nice" library features of the language like STL and Boost and other
total and utter crap, that may "help" you program, but causes:

- infinite amounts of pain when they don't work (and anybody who tells me
that STL and especially Boost are stable and portable is just so full
of BS that it's not even funny)

- inefficient abstracted programming models where two years down the road
you notice that some abstraction wasn't very efficient, but now all
your code depends on all the nice object models around it, and you
cannot fix it without rewriting your app.

In other words, the only way to do good, efficient, and system-level and
portable C++ ends up to limit yourself to all the things that are
basically available in C. And limiting your project to C means that people
don't screw that up, and also means that you get a lot of programmers that
do actually understand low-level issues and don't screw things up with any
idiotic "object model" crap.
09/02/2015 21:48 snow#212
So, ich bin wieder da. In den nächsten Tagen gehe ich mal die gewünschten Veränderungen an. :)

e: Und ich hole direkt mal einen Monat Reports nach. :D
09/02/2015 22:28 Devsome#213
Quote:
Originally Posted by snow View Post
So, ich bin wieder da. In den nächsten Tagen gehe ich mal die gewünschten Veränderungen an. :)

e: Und ich hole direkt mal einen Monat Reports nach. :D
Sowas hört man doch gerne, habe mir schon ein bisschen sorgen gemacht und wollte mich Bewerben :3
09/03/2015 16:00 Goku.#214
Hallo,

gibt es irgendein CMS, was gratis ist, der diese Faktoren beeinhaltet:
• Produktsortiment einstellen
• automatischer E-Mail Versand eines Codes
• PayPal etc... Schnittstelle
• Abo-Model Möglichkeit..

außerdem muss es unbedingt auf dem Handy gut aussehen, also automatisch responsible.

+ Ich habe nur paar Html/css Grundlagen

Geht sowas mit Wordpress mit irgendein kostenloses Theme, falls ja welches?
09/07/2015 11:08 Devsome#215
[Only registered and activated users can see links. Click Here To Register...]
09/07/2015 15:52 Padrio#216
Quote:
Originally Posted by Devsome View Post
[Only registered and activated users can see links. Click Here To Register...]
Leider gehen die meissten nicht wirklich durch.. :-/

Quote:
Originally Posted by .Kreativ'GFX View Post
Hallo,

gibt es irgendein CMS, was gratis ist, der diese Faktoren beeinhaltet:
• Produktsortiment einstellen
• automatischer E-Mail Versand eines Codes
• PayPal etc... Schnittstelle
• Abo-Model Möglichkeit..

außerdem muss es unbedingt auf dem Handy gut aussehen, also automatisch responsible.

+ Ich habe nur paar Html/css Grundlagen

Geht sowas mit Wordpress mit irgendein kostenloses Theme, falls ja welches?
Shopware 5, bietet Sofortdownloads & viele Payment-API's (wie auch Paypal) Kostenlos an.

Kleine Anleitung: [Only registered and activated users can see links. Click Here To Register...]
09/07/2015 16:22 Devsome#217
Bin momentan dabei mit socket.io ein kleines Spiel zuschreiben :3 Bis jetzt klappt alles recht gut, besser als ich dachte.
09/09/2015 21:16 Dungedragon#218
Quote:
Originally Posted by _Roman_ View Post
Hab dazu noch folgendes Zitat von Linus Torvalds gefunden:
Ich finde es sehr interessant seine "rants" zu lesen jedoch solltest du meiner Meinung nach diesen nicht zu viel Gewichtung geben. Der Großteil seiner rants sind subjektiv und meist ohne Fakten belegt.

Er ist besonders bekannt für seinen Linux Kernel und das DVCS Git und hat dabei großartige arbeit geleistet aber seine rants... naja.

Falls es dich interessiert hier ist eine Antwort auf den zitierten rant: [Only registered and activated users can see links. Click Here To Register...]
09/13/2015 23:23 Logtetsch#219
Schöner Stoff
09/14/2015 21:41 нαωкк#220
Servus jungs.
Ich suche einen der mir mal kurz unter die Arme grefit.
Kurze Erklärung: Ich möchte das in meiner index.php ein bestimmter .php bereich jede 5 sekunden ca aktualisiert wird. Wer sowas kann in Skype adden: KreativeGFX
Würde auch was zahlen :P
09/15/2015 00:16 alpines#221
Du kannst dazu JavaScript verwenden der den Teil refresht.
09/19/2015 19:05 ichwillkeinevieren#222
Quote:
Originally Posted by snow View Post
Du solltest ggf. noch die Calling Convention überprüfen und dann kannst du auch gleich die komplette Signatur der Funktion reversen und Funktionszeiger verwenden.
Quote:
Originally Posted by warfley View Post
Ich würde eher zu funktionszeigern tendieren, da du dann diese Methode über eine variable aufrufen kannst
Code:
void (*MyProc)(void) = FunktionsZeiger;
...
MyProc(); //aufruf
aber ich denke du kannst das machen wie du lustig bist

Natürlich musst du noch daran denken die Entsprechenden Parameter zu übergeben bzw auf den Speicher zu schreiben (siehe Link)
Hätte Jemand Interesse das mit mir zu proggen?
09/21/2015 17:19 ლʕಠᴥಠʔლ#223
Quote:
Originally Posted by snow View Post
So, ich bin wieder da. In den nächsten Tagen gehe ich mal die gewünschten Veränderungen an. :)

e: Und ich hole direkt mal einen Monat Reports nach. :D
Herzlichen Glückwunsch nochmal und viel Spaß bei Apple.


Quote:
Originally Posted by Logtetsch View Post
Schöner Stoff
[Only registered and activated users can see links. Click Here To Register...]
Ist ja eher als Einstieg gedacht.
Hätte es besser gefunden wenn er beim aktuellen Jitter angefangen hätte und das Generationen-System sowie den LOH erklärt hätte. Und die ImmutableCollection wurde auch nicht erwähnt.
09/24/2015 11:52 _Roman_#224
Code:
auto beg = vector.begin(), end = vector.end();
auto mid = vector.begin() + (end - beg) / 2;

while (mid != end && *mid != sought)
{
	if (sought < *mid)
		end = mid;
	else
		beg = mid + 1;
	mid = beg + (end - beg) / 2;
}
Kann mir jemand erklären, warum man bei dem binary search Algorithmus als Bedingung mid != end nimmt anstatt beg != end? Ich versteh das nicht so ganz. Macht das überhaupt einen Unterschied?
09/26/2015 01:09 snow#225
Ja.

Woran du vermutlich denkst, ist eine lineare Suche:

Code:
for (auto it = vec.cbegin(); it != vec.cend(); ++it)
    if (*it == sought) 
        return it;
Das Konzept der Binärsuche ist allerdings, deinen Suchraum bei jedem Durchlauf zu halbieren und dabei die Limits neu zu setzen. Sofern der Container vorsortiert ist, findest du das Element somit in lg(n) statt n.

Der eigentliche Code ist eigentlich sehr trivial (und dennoch bekommt man ihn nicht immer fehlerfrei hin):

Code:
if sought < mid_element:
    end = mid # Das Element befindet sich in der Range [beg, mid), wir können mid deshalb als neues Ende annehmen - es befindet sich definitiv nicht über diesem Index
else if sought > mid_element:
    beg = mid + 1 # Das Element befindet sich in der Range (mid, end), also definitiv nicht unter dem mid Index. mid wird deshalb der neue Wert für beg.
else:
    return mid # Das Element befindet sich exakt auf der Position. 

mid = (beg + end) / 2 # Je nachdem wurde beg oder end modifiziert und wir müssen mid anpassen
Rekursiv lässt sich das ganze auch ganz gut darstellen:

Code:
template<typename my_iterator, typename T>
my_iterator binary_search(my_iterator beg, my_iterator end, const T &sought)
{
    auto mid = std::next(beg, std::distance(beg, end) / 2);
    if (*mid < sought)
        return binary_search(mid, end, sought);
    else if (*mid > sought)
        return binary_search(beg, mid, sought);
    else
        return mid;
}

int main()
{
    std::vector<int> v = { 1, 2, 3, 6, 8, 9 };
    auto it = binary_search(v.cbegin(), v.cend(), 2);
    std::cout << "Element: " << *it << ", Position: " << std::distance(v.cbegin(), it) << std::endl;
}