Anti-Jammer-Thread

Hier kann über allgemeine Themen diskutiert werden, die sonst in kein Forum passen.
Insbesondere über Szene, Games, Kultur, Weltgeschehen, Persönliches, Recht, Hard- und Software.
Benutzeravatar
Jonathan
Establishment
Beiträge: 2352
Registriert: 04.08.2004, 20:06
Kontaktdaten:

Re: Anti-Jammer-Thread

Beitrag von Jonathan »

Python ist so toll, wenn man einfach mal irgendeine Aufgabe automatisieren will.

In meinem Fall hatte ich eine ganze Reihe an Videos, hauptsächlich Musik-Videos, die ich auf meinem Handy haben wollte, um sie mir unterwegs anzuhören. Aber das Bild störte halt, weil es die Dateien so groß macht und ich nur an der Audiospur interessiert war. Insgesamt waren es ein paar hundert Dateien in einer komplexen Ordnerstruktur. Also habe ich ein Tool geschrieben, dass einen Ordner rekursiv einliest, aus jeder Datei den Audiostream extrahiert und die komplette Ordnerstruktur an einem anderen Ort wiederherstellt, nur diesmal mit Audiodateien:

Code: Alles auswählen

import os
import subprocess

ffmpegPath="ffmpeg.exe"
InFolder="D:/Videos/Musik"
OutFolder="D:/Musik"


skipped=list()

for root, dirs, files in os.walk(InFolder):
    from os.path import join, relpath
    
    # show the current folder that we are processing
    print("\n\n\n Starting: ", root, "\n\n\n")
    for name in files:
        
        # determine the new filename
        InFile=join(root, name)
        rel=relpath(join(root, name), InFolder)
        OutLocation=join(OutFolder, rel)
        basename, ext = os.path.splitext(OutLocation)
        OutFile=basename+".mp3"
        
        # create a new folder, if needed
        p, n=os.path.split(OutFile)
        if not os.path.exists(p):
            os.makedirs(p)		
        
        # and generate the file
        print(InFile)
        if os.path.isfile(OutFile):
            print("!!! File already exists, skipping")
            skipped.append((InFile, OutFile))
        else:
            subprocess.call([ffmpegPath, "-y", "-i", InFile, OutFile])
            print("Wrote ", OutFile)

print("\n\nAll done!\n\n")

print(len(skipped), "files were skipped:")
for (i, o) in skipped:
    print('-  "', i, '"', "not converted to ", '"', o, '"')
Pfade anpassen und starten und schon arbeitet der Rechner für die nächste Stunde selbstständig. Gar nicht auszudenken, wie nervig es wäre, wenn man das alles per Hand machen müsste.
Das sind einfach so die Moment, in denen ich richtig zufrieden bin. Wenn all mein Wissen und Rumbastelei nicht nur ein Hobby ist, sondern tatsächliche, sinnvolle Probleme löst :D
Lieber dumm fragen, als dumm bleiben!
https://jonathank.de/games/
TDK
Beiträge: 54
Registriert: 06.04.2012, 11:15

Re: Anti-Jammer-Thread

Beitrag von TDK »

Habe gerade eben meine Matrixmultiplikation von 136 Zyklen mit FMA3 auf 96 Zyklen optimiert.
Fühlt sich doch der Tag wieder ein bisschen besser an, von den Benutzern kompatible Prozessoren zu fordern :D .

Wer's braucht:

Code: Alles auswählen

matrix4x4 Out;

// Compute row 0 of the matrix product:
Out.r[0] = _mm_mul_ps(b.r[0], _mm_shuffle_ps(a.r[0], a.r[0], 0x00));
Out.r[0] = _mm_fmadd_ps(b.r[1], _mm_shuffle_ps(a.r[0], a.r[0], 0x55), Out.r[0]);
Out.r[0] = _mm_fmadd_ps(b.r[2], _mm_shuffle_ps(a.r[0], a.r[0], 0xAA), Out.r[0]);
Out.r[0] = _mm_fmadd_ps(b.r[3], _mm_shuffle_ps(a.r[0], a.r[0], 0xFF), Out.r[0]);

// Compute row 1 of the matrix product:
Out.r[1] = _mm_mul_ps(b.r[0], _mm_shuffle_ps(a.r[1], a.r[1], 0x00));
Out.r[1] = _mm_fmadd_ps(b.r[1], _mm_shuffle_ps(a.r[1], a.r[1], 0x55), Out.r[1]);
Out.r[1] = _mm_fmadd_ps(b.r[2], _mm_shuffle_ps(a.r[1], a.r[1], 0xAA), Out.r[1]);
Out.r[1] = _mm_fmadd_ps(b.r[3], _mm_shuffle_ps(a.r[1], a.r[1], 0xFF), Out.r[1]);

// Compute row 2 of the matrix product:
Out.r[2] = _mm_mul_ps(b.r[0], _mm_shuffle_ps(a.r[2], a.r[2], 0x00));
Out.r[2] = _mm_fmadd_ps(b.r[1], _mm_shuffle_ps(a.r[2], a.r[2], 0x55), Out.r[2]);
Out.r[2] = _mm_fmadd_ps(b.r[2], _mm_shuffle_ps(a.r[2], a.r[2], 0xAA), Out.r[2]);
Out.r[2] = _mm_fmadd_ps(b.r[3], _mm_shuffle_ps(a.r[2], a.r[2], 0xFF), Out.r[2]);

// Compute row 3 of the matrix product:
Out.r[3] = _mm_mul_ps(b.r[0], _mm_shuffle_ps(a.r[3], a.r[3], 0x00));
Out.r[3] = _mm_fmadd_ps(b.r[1], _mm_shuffle_ps(a.r[3], a.r[3], 0x55), Out.r[3]);
Out.r[3] = _mm_fmadd_ps(b.r[2], _mm_shuffle_ps(a.r[3], a.r[3], 0xAA), Out.r[3]);
Out.r[3] = _mm_fmadd_ps(b.r[3], _mm_shuffle_ps(a.r[3], a.r[3], 0xFF), Out.r[3]);

return Out;
Benutzeravatar
Krishty
Establishment
Beiträge: 8229
Registriert: 26.02.2009, 11:18
Benutzertext: state is the enemy
Kontaktdaten:

Re: Anti-Jammer-Thread

Beitrag von Krishty »

Und du brauchst überall 4×4-Matrizen?
seziert Ace Combat, Driver, und S.T.A.L.K.E.R.   —   rendert Sterne
TDK
Beiträge: 54
Registriert: 06.04.2012, 11:15

Re: Anti-Jammer-Thread

Beitrag von TDK »

Nein, nicht überall. Freue mich aber, wenn ich die Nodes schneller aktualisiert bekomme.

Hab mich jetzt mal dran gesetzt und mit AVX/AVX 2 gearbeitet. Wenn ich mich nicht irre, nun 88 Zyklen.
Muss wohl heute einen guten Tag haben, wenn es so schnell verstanden geht. 21:51Uhr? Einkaufen gehen...

Wer's braucht:

Code: Alles auswählen

// First und Second sind jeweils __m256 in der union.
First = _mm256_mul_ps(_mm256_broadcast_ps(&b.r[0]), _mm256_set_m128(_mm_shuffle_ps(r[1], r[1], 0x00), _mm_shuffle_ps(r[0], r[0], 0x00)));
First = _mm256_fmadd_ps(_mm256_broadcast_ps(&b.r[1]), _mm256_set_m128(_mm_shuffle_ps(r[1], r[1], 0x55), _mm_shuffle_ps(r[0], r[0], 0x55)), First);
First = _mm256_fmadd_ps(_mm256_broadcast_ps(&b.r[2]), _mm256_set_m128(_mm_shuffle_ps(r[1], r[1], 0xAA), _mm_shuffle_ps(r[0], r[0], 0xAA)), First);
First = _mm256_fmadd_ps(_mm256_broadcast_ps(&b.r[3]), _mm256_set_m128(_mm_shuffle_ps(r[1], r[1], 0xFF), _mm_shuffle_ps(r[0], r[0], 0xFF)), First);

Second = _mm256_mul_ps(_mm256_broadcast_ps(&b.r[0]), _mm256_set_m128(_mm_shuffle_ps(r[3], r[3], 0x00), _mm_shuffle_ps(r[2], r[2], 0x00)));
Second = _mm256_fmadd_ps(_mm256_broadcast_ps(&b.r[1]), _mm256_set_m128(_mm_shuffle_ps(r[3], r[3], 0x55), _mm_shuffle_ps(r[2], r[2], 0x55)), Second);
				Second = _mm256_fmadd_ps(_mm256_broadcast_ps(&b.r[2]), _mm256_set_m128(_mm_shuffle_ps(r[3], r[3], 0xAA), _mm_shuffle_ps(r[2], r[2], 0xAA)), Second);
Second = _mm256_fmadd_ps(_mm256_broadcast_ps(&b.r[3]), _mm256_set_m128(_mm_shuffle_ps(r[3], r[3], 0xFF), _mm_shuffle_ps(r[2], r[2], 0xFF)), Second);
Benutzeravatar
Krishty
Establishment
Beiträge: 8229
Registriert: 26.02.2009, 11:18
Benutzertext: state is the enemy
Kontaktdaten:

Re: Anti-Jammer-Thread

Beitrag von Krishty »

Umzug geglückt; endlich wieder online; Telekom hat kostenlos auf 50 Mbit hochgeschraubt. Mal sehen, was ich in den letzten Wochen so verpasst habe …
seziert Ace Combat, Driver, und S.T.A.L.K.E.R.   —   rendert Sterne
Benutzeravatar
Chromanoid
Moderator
Beiträge: 4254
Registriert: 16.10.2002, 19:39
Echter Name: Christian Kulenkampff
Wohnort: Lüneburg

Re: Anti-Jammer-Thread

Beitrag von Chromanoid »

Bild :)
Benutzeravatar
Krishty
Establishment
Beiträge: 8229
Registriert: 26.02.2009, 11:18
Benutzertext: state is the enemy
Kontaktdaten:

Re: Anti-Jammer-Thread

Beitrag von Krishty »

Krishty hat geschrieben:Telekom hat kostenlos auf 50 Mbit hochgeschraubt
War ja klar, dass das nicht ohne Hintergedanken ist. Praktisch stellen sie jetzt meinen Router Dritten als WLAN-Hotspot zur Verfügung ("WLAN TO GO" NENNEN SIE DAS, JA, GROßGESCHRIEN) so lange ich die Bandbreite nicht nutze. Was ich 100%ig unterstützen würde, wenn es für diese Dritten kostenlose wäre. Die Deaktivierung erfolgt über's Kundencenter, aber das ist gerade wegen Wartung geschlossen. Toll.

Wo wir gerade dabei sind: Vodafone schickt mir SMS-Spam. Jeden Tag mindestens eine Nachricht, dass ich ja diesen und jenen Tarif nutzen könnte wenn ich eine SMS schreiben würde. Und da steht zwar drin, dass ich dem Erhalt weiterer Nachrichten widersprechen kann, aber dafür muss ich mich in mein Kundencenter einloggen, das ich erstmal mit einer E-Mail-Adresse eröffnen müsste. Das ist aber eine über Umwege erworbene anonyme Karte. Scheiß Erpressung durch Nerven ist das.
seziert Ace Combat, Driver, und S.T.A.L.K.E.R.   —   rendert Sterne
Stephan Theisgen
Beiträge: 94
Registriert: 29.07.2003, 11:13

Re: Anti-Jammer-Thread

Beitrag von Stephan Theisgen »

Ja das kann ich alles voll nachvollziehen, aber ist das nicht der falsche Thread hier ;-)
Benutzeravatar
Krishty
Establishment
Beiträge: 8229
Registriert: 26.02.2009, 11:18
Benutzertext: state is the enemy
Kontaktdaten:

Re: Anti-Jammer-Thread

Beitrag von Krishty »

Das schlägt ja dauernd um. Die Welle kommt, spült in den Anti-Jammer-Thread, dann bricht sie, und ich auch, und wenn ich es dann in den Jammer-Thread wische, geht der ganze Kontext verloren.

Wir sollten einen einzigen Thread haben und da die Beiträge einfärben: Schwarz auf weiß für Anti-Jammer, Weiß auf Schwarz für Jammer.
seziert Ace Combat, Driver, und S.T.A.L.K.E.R.   —   rendert Sterne
Benutzeravatar
Krishty
Establishment
Beiträge: 8229
Registriert: 26.02.2009, 11:18
Benutzertext: state is the enemy
Kontaktdaten:

Re: Anti-Jammer-Thread

Beitrag von Krishty »

Habe die Clang-Diskussion mal zu Clang unter Windows als Produktivsystem verschoben.
seziert Ace Combat, Driver, und S.T.A.L.K.E.R.   —   rendert Sterne
Benutzeravatar
TGGC
Establishment
Beiträge: 569
Registriert: 15.05.2009, 18:14
Benutzertext: Ich _bin_ es.
Alter Benutzername: TGGC
Echter Name: Ich _bin_ es.
Wohnort: Mainz
Kontaktdaten:

Re: Anti-Jammer-Thread

Beitrag von TGGC »

Ich hab jetzt sowohl bei TGM1 als auch TGM2 jeweils Level 500 erreicht! :geek:
Specialist
Establishment
Beiträge: 135
Registriert: 29.08.2003, 14:22
Kontaktdaten:

Re: Anti-Jammer-Thread

Beitrag von Specialist »

Partikelsystem rennt :)

[youtube]JwSZpj4dDzA[/youtube]
Benutzeravatar
TGGC
Establishment
Beiträge: 569
Registriert: 15.05.2009, 18:14
Benutzertext: Ich _bin_ es.
Alter Benutzername: TGGC
Echter Name: Ich _bin_ es.
Wohnort: Mainz
Kontaktdaten:

Re: Anti-Jammer-Thread

Beitrag von TGGC »

Yes, die Loecher sind gefixed :-)

Bild
Benutzeravatar
TGGC
Establishment
Beiträge: 569
Registriert: 15.05.2009, 18:14
Benutzertext: Ich _bin_ es.
Alter Benutzername: TGGC
Echter Name: Ich _bin_ es.
Wohnort: Mainz
Kontaktdaten:

Re: Anti-Jammer-Thread

Beitrag von TGGC »

Ich bin ganz nah dran an meinem Ziel Level 999:
[youtube]0gR1LwdkZ-0[/youtube]
Benutzeravatar
Chromanoid
Moderator
Beiträge: 4254
Registriert: 16.10.2002, 19:39
Echter Name: Christian Kulenkampff
Wohnort: Lüneburg

Re: Anti-Jammer-Thread

Beitrag von Chromanoid »

Benutzeravatar
CodingCat
Establishment
Beiträge: 1857
Registriert: 02.03.2009, 21:25
Wohnort: Student @ KIT
Kontaktdaten:

Re: Anti-Jammer-Thread

Beitrag von CodingCat »

Wunderbarer Typo: "Deffect" definiere ich hiermit als "Defect due to proliferation of state and/or side effects". (Kurz "Nebenwirkungsinduzierter Defekt".)
Mutable State Primer: Den veränderlichen Zustand immer schön klein, eindeutig und zusammen halten! Möglichkeiten für widersprüchliche Angaben vermeiden! Oftmals ist es leider nicht praktikabel, die ganze Zeit alle Daten konsistent zu halten, insbesondere wenn dafür größere Update-Schritte erforderlich sind und viele kleine Änderungen auftreten. In diesem Fall veränderlichen Zustand als Daten über die Zeit betrachten und den normativen aktuellen Zustand von den noch veralteten abgeleiteten Daten klar erkenntlich trennen / nach Latenz gruppieren, so dass immer klar ist, wann welche Daten wieder aktuell sind.
alphanew.net (last updated 2011-07-02) | auf Twitter | Source Code: breeze 2 | lean C++ library | D3D Effects Lite
Benutzeravatar
Krishty
Establishment
Beiträge: 8229
Registriert: 26.02.2009, 11:18
Benutzertext: state is the enemy
Kontaktdaten:

Re: Anti-Jammer-Thread

Beitrag von Krishty »

CodingCat hat geschrieben:Deffect


Oh und: falls ich hier U+1F498 HEART WITH ARROW poste, gibt es einen SQL-Fehler im Board.
seziert Ace Combat, Driver, und S.T.A.L.K.E.R.   —   rendert Sterne
Benutzeravatar
Krishty
Establishment
Beiträge: 8229
Registriert: 26.02.2009, 11:18
Benutzertext: state is the enemy
Kontaktdaten:

Re: Anti-Jammer-Thread

Beitrag von Krishty »

Visual C++ 2013 x64 hat SSE-optimierte Transponierung von 4×4-Matrizen hard-coded.

Ich benutze immer 3×4-Matrizen, und da wird nix optimiert. Eben hatte ich Probleme mit meiner Projektionsmatrix, die dann doch 4×4 ist, habe sie testweise transponiert (wenn man keine Ahnung hat, einfach mal transponieren!), und bin zum Debuggen in die Maschinenbefehle gestiegen:

  Matrix4x4<float> const resT = { {
    res.rows[0].x, res.rows[1].x, res.rows[2].x, res.rows[3].x,
    res.rows[0].y, res.rows[1].y, res.rows[2].y, res.rows[3].y,
    res.rows[0].z, res.rows[1].z, res.rows[2].z, res.rows[3].z,
    res.rows[0].w, res.rows[1].w, res.rows[2].w, res.rows[3].w
  } };
   
    movups xmm2,xmmword ptr [rax]
    movups xmm3,xmmword ptr [rax+10h]
    movups xmm4,xmmword ptr [rax+20h]
    movaps xmm0,xmm2
    movaps xmm1,xmm3
    shufps xmm0,xmm2,55h
    shufps xmm1,xmm3,55h
    movups xmm5,xmmword ptr [rax+30h]
    movss  dword ptr [rbp-21h],xmm0
    movss  dword ptr [rbp-1Dh],xmm1
    movaps xmm0,xmm4
    shufps xmm0,xmm4,55h
    movaps xmm1,xmm5
    movss  dword ptr [rbp-19h],xmm0
    movss  dword ptr [rbp-31h],xmm2
    movss  dword ptr [rbp-2Dh],xmm3
    shufps xmm1,xmm5,55h
    movaps xmm0,xmm2
    shufps xmm0,xmm2,0AAh
    shufps xmm2,xmm2,0FFh
    movss  dword ptr [rbp-15h],xmm1
    movss  dword ptr [rbp-11h],xmm0
    movss  dword ptr [rbp-29h],xmm4
    movaps xmm1,xmm3
    shufps xmm1,xmm3,0AAh
    movaps xmm0,xmm4
    movss  dword ptr [rbp-0Dh],xmm1
    movss  dword ptr [rbp-25h],xmm5
    shufps xmm0,xmm4,0AAh
    movaps xmm1,xmm5
    shufps xmm1,xmm5,0AAh
    shufps xmm4,xmm4,0FFh
    shufps xmm3,xmm3,0FFh
    movss  dword ptr [rbp-9],xmm0
    movss  dword ptr [rbp-1],xmm2
    movss  dword ptr [rbp+7],xmm4
    movss  dword ptr [rbp-5],xmm1
    movss  dword ptr [rbp+3],xmm3
    shufps xmm5,xmm5,0FFh


Da ich sowas noch nie vorher gesehen habe (vor ein paar Monaten erst musste ich die ganzen movss’ noch von Hand mit Intrinsics effizienter machen), gehe ich davon aus, dass jemand manuell für diesen Fall optimiert hat. Was da wohl der Auslöser war? DirectX Math verbringt 70 % seiner Zeit in Transponierungen oder so?
seziert Ace Combat, Driver, und S.T.A.L.K.E.R.   —   rendert Sterne
Benutzeravatar
Krishty
Establishment
Beiträge: 8229
Registriert: 26.02.2009, 11:18
Benutzertext: state is the enemy
Kontaktdaten:

Re: Anti-Jammer-Thread

Beitrag von Krishty »

State Blocks in D3D 9. Warum habe ich die eigentlich nicht schon immer benutzt?! Alle inneren Funktionen schrumpfen zusammen. Keine endlosen SetRenderState()-Listen mehr in der Renderschleife. Und mit Treiberunterstützung soll’s auch deutlich schneller sein als das übliche Gefrickel.

Nachtrag: Das Programm funktioniert jetzt nur noch mit aktivierter Debug-Runtime; die Release-Runtime schmeißt die States völlig durcheinander. WTF?!

Nachtrag 2: Ich hab’s: Direct3D verändert die vftable des IDirect3DDevice9, sobald BeginStateBlock aufgerufen wurde, so dass nun andere Methoden drin sind. Ich hatte die Adressen der Methoden gecachet, und dann sprang er natürlich in die falsche Methode, sobald aufgezeichnet wurde. Wenn die Debug-Runtime zwischengeschaltet war, blieben die Adressen konstant, weil die Validierung vor der Weiterleitung kam.
seziert Ace Combat, Driver, und S.T.A.L.K.E.R.   —   rendert Sterne
Benutzeravatar
Schrompf
Moderator
Beiträge: 4838
Registriert: 25.02.2009, 23:44
Benutzertext: Lernt nur selten dazu
Echter Name: Thomas Ziegenhagen
Wohnort: Dresden
Kontaktdaten:

Re: Anti-Jammer-Thread

Beitrag von Schrompf »

GoogleTest integriert. War zum Glück recht einfach - es gibt bei denen auch einen Ordner "fused-src", bei dem man die komplette Lib in drei großen Files bekommt. Ein Projekt dafür aufgemacht, die drei Files hinzugefügt, eine UnitTest-CPP-Datei geschrieben und jetzt testet es ordentlich. Dann fügt man im selben Projekt als Post Build Step ein $(TargetDir)$(TargetFileName) ein und der Test läuft vollautomatisch nach dem Bauen, und der Build scheitert, falls der Test scheitert.

Schönschön. Aber jetzt fange ich an, Tests zu schreiben, und mir fliegen selbst die elementarsten Voxeloperationen in irgendwelchen Grenzfällen um die Ohren. So muss UnitTesting.
Früher mal Dreamworlds. Früher mal Open Asset Import Library. Heutzutage nur noch so rumwursteln.
Benutzeravatar
Jonathan
Establishment
Beiträge: 2352
Registriert: 04.08.2004, 20:06
Kontaktdaten:

Re: Anti-Jammer-Thread

Beitrag von Jonathan »

Ja schreibt mal, was du damit so für Erfahrungen machst und was für Fehler du findest. Ich hatte immer das Gefühl, Dinge wie Spiellogik mit automatisierten Test sehr schwer testen zu können, einfach weil extrem viel vom komplexen Zusammenspiel vieler Komponenten abhängt, so dass Tests schwer zu schreiben und noch schwerer zu evaluieren sind und man letztendlich vieles doch nicht findet.
Lieber dumm fragen, als dumm bleiben!
https://jonathank.de/games/
Benutzeravatar
Schrompf
Moderator
Beiträge: 4838
Registriert: 25.02.2009, 23:44
Benutzertext: Lernt nur selten dazu
Echter Name: Thomas Ziegenhagen
Wohnort: Dresden
Kontaktdaten:

Re: Anti-Jammer-Thread

Beitrag von Schrompf »

Nö, für Spiellogik ist das sicher nix, da gebe ich Dir Recht. Da mockst Du Dich doch adlig. Ich benutze das für das Testen meiner Voxeldatenstrukturen und -operationen. Und dafür ist es richtig gut geeignet.
Früher mal Dreamworlds. Früher mal Open Asset Import Library. Heutzutage nur noch so rumwursteln.
Benutzeravatar
xq
Establishment
Beiträge: 1581
Registriert: 07.10.2012, 14:56
Alter Benutzername: MasterQ32
Echter Name: Felix Queißner
Wohnort: Stuttgart & Region
Kontaktdaten:

Re: Anti-Jammer-Thread

Beitrag von xq »

ICH HABE WIEDER INTERNET! 1,5 Monate ohne Netz sind für Studentische Hobbyprogrammierer mit ohne was zu tun ein Grauß. Endlich wieder in der zivilisierten Werten
War mal MasterQ32, findet den Namen aber mittlerweile ziemlich albern…

Programmiert viel in ⚡️Zig⚡️ und nervt Leute damit.
Benutzeravatar
CodingCat
Establishment
Beiträge: 1857
Registriert: 02.03.2009, 21:25
Wohnort: Student @ KIT
Kontaktdaten:

Re: Anti-Jammer-Thread

Beitrag von CodingCat »

Clang kann mittlerweile auch unter Windows Exceptions - einfach so, und ich habs nicht mal mitbekommen. Gilt noch als Partial, aber meine Tests funktionieren einwandfrei. Jetzt kann man tatsächlich in Visual Studio einfach so Compiler auf clang stellen und glücklich sein.

Debug Info ist noch minimal, mehr als Stack Traces kriegt man nicht raus, aber immerhin gehen Breakpoints überhaupt schon. (Dazu beachten, dass man Edit&Continue ausschaltet, sonst gibt clang Debuginfo einfach gleich auf.)
alphanew.net (last updated 2011-07-02) | auf Twitter | Source Code: breeze 2 | lean C++ library | D3D Effects Lite
Benutzeravatar
Jonathan
Establishment
Beiträge: 2352
Registriert: 04.08.2004, 20:06
Kontaktdaten:

Re: Anti-Jammer-Thread

Beitrag von Jonathan »

Ja, habs neulich auch nochmal getestet. Allerdings bekomme ich noch bei all meinen Projekten interne Compilerfehler. Aber bekomme ich quasi keine Fehler mehr in Code, der mit VC durchcompiliert, was ich sehr begrüße. Sieht tatsächlich so aus, als könnte ich clang in naher Zukunft standardmäßig benutzen. Wäre nur cool, wenn es dann auch ein gutes PlugIn für VS gäbe, das die ganzen Zusatzfeatures in die IDE bringt (Refactoring, intelligentes Auto-Complete, bessere Code-Navigation, statische Code-Analyse; all so Kram halt).
Lieber dumm fragen, als dumm bleiben!
https://jonathank.de/games/
joggel

Re: Anti-Jammer-Thread

Beitrag von joggel »

Und ich hab wieder ne funktionstüchtige Grafikkarte 8-)
Danke Ebay-Kleinanzeigen...
Benutzeravatar
Krishty
Establishment
Beiträge: 8229
Registriert: 26.02.2009, 11:18
Benutzertext: state is the enemy
Kontaktdaten:

Re: Anti-Jammer-Thread

Beitrag von Krishty »

Nach tagelangem Jammern über Visual Studio 2015:

Es gibt wieder Edit & Continue

sogar in x64-Builds


<3
seziert Ace Combat, Driver, und S.T.A.L.K.E.R.   —   rendert Sterne
Benutzeravatar
Schrompf
Moderator
Beiträge: 4838
Registriert: 25.02.2009, 23:44
Benutzertext: Lernt nur selten dazu
Echter Name: Thomas Ziegenhagen
Wohnort: Dresden
Kontaktdaten:

Re: Anti-Jammer-Thread

Beitrag von Schrompf »

Wut? GEIIIILLL. Tschuldigung.
Früher mal Dreamworlds. Früher mal Open Asset Import Library. Heutzutage nur noch so rumwursteln.
Benutzeravatar
Krishty
Establishment
Beiträge: 8229
Registriert: 26.02.2009, 11:18
Benutzertext: state is the enemy
Kontaktdaten:

Re: Anti-Jammer-Thread

Beitrag von Krishty »

Änderungen an Datentypen erfordern Neukompilieren, wie immer. Aber ändert man eine Funktion, die gerade ausgeführt wird, springt er erst beim nächsten Aufruf in die neue Version und führt dich bis dahin durch eine Kopie des Originalquelltextes. Sie haben also auch intern eine Menge überarbeitet, wie mir scheint.
seziert Ace Combat, Driver, und S.T.A.L.K.E.R.   —   rendert Sterne
Benutzeravatar
Jonathan
Establishment
Beiträge: 2352
Registriert: 04.08.2004, 20:06
Kontaktdaten:

Re: Anti-Jammer-Thread

Beitrag von Jonathan »

Hab gerade meine Musiksammlung aufgeräumt. Bisher war das einfach nur eine wenig strukturierte Sammlung von Dateien in Ordnern, jetzt ist es schön gruppiert, und so ziemlich überall mit korrekten Tags versehen. Sogar Album-Covers habe ich runtergeladen und in die Dateien eingebettet. Geholfen hat mir dabei übrigens Mp3tag, ein großartiges Tool, das einfach mal genau das macht, was es soll, ohne dabei zu nerven.
Das ganze wird gerade auf meinen privaten Seaffile-Server geladen, von dem aus ich es dann bequem und jeder Zeit aufs Handy ziehen kann (die Sammlung ist zu groß, um komplett aufs Handy zu passen). Ich weiß, das jetzt eigentlich schon lange Streaming in ist, aber irgendwie mag ich meine Musik doch sehr gerne lokal. Und jetzt kann ich sie auch vernünftig nach Album sortiert und mit Cover verziert unterwegs genießen :)
Lieber dumm fragen, als dumm bleiben!
https://jonathank.de/games/
Antworten