Mit dem Aufbau des Datentyps double hab ich mich natürlich beschäftigt, aber wie es Scavanger schreibt bin ich nicht wirklich glücklich, da ich ja nicht ausgeben soll, was ich nachschlagen kann, sondern ausrechnen, was anscheinend errechenbar ist.
Sicher ? 🤔
Wie sind den Fließkommazahlen nach IEEE 754 aufgebaut? Kleiner Tipp, bei der Mantisse wird eine Zahl immer "normiert". Die erste Zahl der Mantisse beginnt immer mit einer Eins. Somit muss die erste Zahl nicht gespeichert werden, da diese immer eine Eins ist.
Beispiel, Betrachtung des Betrags einer Zahl
Gegeben sei eine Zahl 001010100101110 Basis 2.
Die erste Eins wird verworfen 001010100101110. Somit muss nur 010100101110 gespeichert werden. Die rechte Seite wird noch mit weiteren 0 aufgefühlt.
Daher benutzt nach IEEE 754 jede Fließkommazahl alle zur verfügungstehende Bits + 1.
--> Double nach IEEE 754 benötigt 64bit im Speicher, besteht aber effektiv aus 66 bits.
Woher das zweite zusätzliche Bit kommt, überlasse ich dir. Das kann man auch nachlesen 😉
Gruß, Thomas
Ich habe das mal getestet und 10 Angebote von MSDNAA getestet. Darunter waren unter anderem Windows 7, MS Project und XNA. Bei allen Angeboten warnt mich das Programm vor einen evtl. Schadhaften-Code.
Da stellt sich mir die Frage, wie effektiv dieser Filter ist und wie leicht man diesen Umgehen kann 😃
Hallo,
vor kurzem musste ich nur noch lachen und kurz darauf kam ein großes Fragezeichen.
Ein paar Info's für die jenigen, die keinen MSDNAA Zugriff haben oder es nicht kennnen.
Bei MSDNAA wird ein Download-Manager zum laden einer Anwendung benötigt. Diesen bekommt man, wenn im Webbrowser auf Download geklickt wird. Der Download-Manager wird geladen und ausgeführt. Der Manager lädt dann das gewünschte Produkt in ein Verzeichnis.
Als ich einen Download von MSDNAA (Visual Studio Ultimate 2011) starten wollte, bekomme ich vom IE eine seltsame Nachricht
(Download-Manager geladen und soll ausgeführt werden)
Die Datei .... wird nicht häufig heruntergeladen. Die Anwendung kann schadhaften Code enthalten oder ihren Computer beschätigen. (Es handelt sich hier nicht um den exakten Wortlaut, denn habe ich mir nicht aufgeschrieben)
Das löste erstmal einen Lachanfall aus. Der IE warnt vor Microsoft Anwendungen und gibt aus, dass Sie "Fehlerhaft" sein können.
Aber im zweiten Moment kam das große Fragezeichen. Woher weiß das der IE? Bei Chrome oder Firefox kommt diese Meldung nicht.
Kann es sein, dass der IE das Benutzerverhalten im Hintergrund dokumentiert und an eine MS Datenbank sendet?
Gruß, Thomas
Ein Buch, das mir besonders gut gefällt
Titel: Laplace-, Fourier-, und z-Transformation
9. Auflage
Author: Otto Föllinger
Verlag Hüthig GmbH & Co. KG, Heidelberg
Hallo,
ich muss mich in die z-Transformation einarbeiten und suche hierzu gute Literatur.
Mich interessiert die Anwendung in der Regelungstechnik.
edit: Z-Transformation
Gruß, Thomas
Die Methode getList der dll:
void getList(void** list)
Diese Methode trägt in den out Parameter list ein wo ich meine Liste im Speicher finde. Pointer-> Pointer -> ListeDie Methode useList der dll
void useList(void* list, ...)
Diese Methode soll list aus der ersten Methode benutzen um wiederum einen weiteren Parameter zu berechnen. Pointer -> Liste
erstmal.
void ** ist auch nur ein Pointer. Kann also auch mit IntPtr behandelt werden. Aber das ist nicht dein Problem.
#! C
// header.h
// gibt einen Pointer auf die entsprechende Stelle zurück
void* getList ();
// Vorsicht, ist C++. Eine Pointerreferenz als Parameter.
// call by reference
void getList (void *& ref);
// Warnung
// call by value
void getList (void * ref);
// *.c
static void *ptr;
static void value;
void* getList () { return ptr;}
void* getList() { return &value;}
void getList (void *& ref)
{
ref = ptr;
}
void getList (void *& ref)
{
ref = &value;
}
Denn Unterschied zwischen Call by Value und Call by Reference kannst du selber nachlesen 😉
Hallo,
Das Einbinden funktioniert ohne Probleme.
Das soll wohl heißen, dass alles ohne Probleme funktioniert mit der Ausnahme des void-Zeigers.
Beim benutzen einer der Methoden der dll muss ich einen void** Parameter übergeben z.B. X. Das mache ich mit IntPtr X und leite den Pointer mit ref weiter an die Methode.
Type* := Zeiger auf ein Objekt, zur Zeit ist ein Zeiger ein Integer-Wert der Größe 32/64bit (je nach Betriebssystem)
Type** := hier handelt es sich ebenfalls um einen Zeiger. Jedoch mit der Besonderheit, dass der Zeiger auf einen weiteren Zeiger zeigt. Der zweite Zeiger zeigt auf ein Objekt.
void* := ein Zeiger auf ein Objekt. Der Type des Objekts ist unbekannt.
string* := ein Zeiger auf ein Objekt. Der Type des Objekts ist ein string.
void ** := Zeiger -> Zeiger -> unbekanntes Objekt
void-Zeiger sind auch in C# erlaubt und vorhanden.
Zeigertypen (C#-Programmierhandbuch)
Anschließend muss ich eine weitere Methode aufrufen, die den X Pointer möchte jedoch dieses mal als void*. Wie kann so etwas in c# anstellen?
Wie? Das kann ich so nicht beantworten. Hierzu benötige ich jedenfalls ein wenig Code.
edit: Vielleicht hilft folgendes
__declspec( dllexport )
long write(FILEHANDLE hFilehandle, void* pBuffer, const long Size);
[DllImport("mydll.dll",CallingConvention=CallingConvention.C
decl)]
internal static extern
int
write ( IntPtr hFileHandle,
[In, MarshalAs( UnmanagedType.LPArray )] byte [] buf,
int size);
Danke. Dachte mir schon, dass ich da wohl was Eigenes implementieren muss. Ich werde mir den Client mal anschauen und einige Test's durchführen.
Ich habe keine verlässlichen Aussagen zur Ganggenauigkeit (beliebiger) PC-Uhren gefunden, aber die allein lässt i. allg. schon zu wünschen übrig
Ja, das hat mich überrascht. Anscheinend ist die Ganggenauigkeit sehr viel schlechter, als man Anfangs vermutet. Zudem scheint es vom Alter der BIOS-Batterie abzuhängen. Sprich, je älter die Batterie, desto wahrscheinlicher ist ein größerer Drift der Systemuhr.
Zeit-Abgleich - NTP sorgt für richtig gehende PC-Uhren
Hallo,
wie bzw. womit sync. man die Uhren eines Windowsbetriebssystem's?
Die Standardmethode, die Windows mitliefert, scheint keinen vollen NTP-Support zu bieten.
KB939322: Unterstützung von Grenze zum Konfigurieren des Windows-Zeitdienstes für Umgebungen mit hoher Genauigkeit
Der W32Time-Dienst verwendet SNTP (Simple Network Time Protocol) in Microsoft Windows 2000. Der W32Time-Dienst verwendet NTP (Network Time Protocol) in Microsoft Windows Server 2003, Windows Server 2003 R2, Windows Server 2008 und Windows Server 2008 R2.
Wir garantieren nicht, und die Genauigkeit für den W32Time-Dienst zwischen Knoten in einem Netzwerk wird nicht unterstützt. Der W32Time-Dienst ist keine umfassende NTP-Lösung, die zeitkritische Anwendungsanforderungen erfüllt. Der W32Time-Dienst ist in erster Linie dazu konzipiert, um die folgenden Aktionen ausführen:
Stellen Sie das Kerberos Version 5-Authentifizierungsprotokoll arbeiten. Geben Sie Zeit, lose Synchronisierung für Clientcomputer.
Der W32Time-Dienst kann nicht zuverlässig Sync-Zeit, um den Bereich von 1 bis 2 Sekunden aufrechterhalten. Solche Toleranzen sind außerhalb der Entwurfsspezifikation der W32Time-Dienst.
1 bis 2 Sekunden 8o
Die MSDN-Seite zum Error-Code: Winsock Error Codes
UdpClient: UdpClient.Receive Method
Kannst du mal den Code für die Kommunikation Server <-> Client bereitstellen.
Wie sieht dein Client aus? Rufst du die connect-Methode auf?
Wann bekommst du die Fehlermeldung? z.B. wenn der Server gestoppt wird.
Die Fehlermeldung sagt aber eigentlich schon alles. Sie tritt auf, wenn der Endpunkt nicht mehr erreichbar ist.
Das ist zum einen unlogisch, weil UDP ja angeblich verbindungslos ist.
UDP ist verbindungslos. Aber das muss ja noch lange nicht heisen, dass der UdpClient trotzdem verbindungslos implementiert wurde.
Auszug aus der MSDN-Doku: UdpClient.Connect Methode, Remarks
The Connect method establishes a default remote host using the value specified in the endPoint parameter. Once established, you do not have to specify a remote host in each call to the Send method.
Establishing a default remote host is optional. Specifying a default remote host limits you to that host only. If you want to send datagrams to a different remote host, you must make another call to the Connect method or create another UdpClient without a default remote host. If you have established a default remote host and you also provide a remote host in your call to the Send method, Send will throw a SocketException. If you receive a SocketException, use SocketException.ErrorCode to obtain the specific error code. Once you have obtained this code, you can refer to the Windows Sockets version 2 API error code documentation in MSDN for a detailed description of the error.
If you call the Connect method, any datagrams that arrive from an address other than the specified default will be discarded. You cannot set the default remote host to a broadcast address using this method unless you inherit from UdpClient, use the Client method to obtain the underlying Socket, and set the socket option to SocketOptionName.Broadcast.
You can however, broadcast data to the default broadcast address, 255.255.255.255, if you specify IPAddress.Broadcast in your call to the Send method. If your application requires greater control over broadcast addresses, you can also revert to using the Socket class.
Wenn sich einer der beiden Programme beendet lösen die Methoden UdpClient.BeginReceive und UdpClient.EndReceive im anderen Programm eine SocketException aus.
Ah, jetzt sehe ich, dass du den Client und den Server als UdpClient implementiert hast. Ähm ja. Der Name xyzClient sollte eigentlich doch schon alles sagen. Implementiere den Server als
IPEndPoint remote_endpoint;
Socket server_udp_socket = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp);
server_udp_socket.Bind(server_endpoint);
und den Client als UdpClient. Beim beenden des Servers musst du dafür sorgen, dass der Client zuvor die Verbindung zum Server beendet.
... muss nur dafür sorgen, dass die Präsentation auf dem richtigen Gerät angezeigt wird. Das sollte aber die Präsentationssoftware können.
Falls die Präsentationssoftware das nicht kann, in Windows kann man das auch konfigurieren. Wenn der Monitorausgang (z.B. VGA) an geschalten ist, kann man Windows sagen, ob jeder Monitor sein eigenes Bild hat oder ein gemeinsames Bild.
Hallo,
in dem du log4net konfigurierst und die Ausgabe des Loggers an deine Bedürfnisse anpasst.
Apache log4net™ Manual - Configuration
Wichtiger Hinweis: Wie poste ich richtig 1.1
Gruß, thomas
Hallo,
ich vermute mal ganz stark, dass der Server und Client den gleichen Port benutzen.
Port (Protokoll)
Socket (Software)
Ein Socket besteht aus einer IP-Adresse + Port-Nummer.
Beispiel:
Der Server benutzt 127.0.0.1:1001 zum senden und empfangen.
Der Client benutzt ebenfalls 127.0.0.1:1001.
Somit benutzen beide das (der/die/das Socket ?) gleiche Socket. Dies führt zu großen Problemen. Zum senden einer Nachricht benötigt man die Adresse des Empfängers. Wenn beide die gleiche Adresse (Socket) besitzen, wer soll die Nachricht erhalten?
Wenn der Server und Client nicht auf dem selben Computer installiert sind, dann funktioniert dein vorgehen ohne Probleme, da
Server: 192.168.2.2:1001
Client: 192.168.2.3:1001
sind und zwei unterschiedliche Sockets besitzen.
Gruß, Thomas
Hallo,
ich interessiere mich seit Jahren für das Thema Netzwerksicherheit, Angriffe aus dem Netz and so on. Leider blieb es seit Jahren beim interesse und habe hin und wieder mal einen interessanten Artikel im Web gelesen.
Jetzt möchte ich mehr Zeit in das Thema stecken (Privat = Freizeit). Leider bin ich auf diesem Gebiet ein absoluter Grünschnabel. Kann mir hier einer gute Artikeln, Zeitschriften, Bücher, Webseiten zu diesem Thema empfehlen.
Mich interessiert in diesem Bezug auch die Gefahrenstellen der einzelnen Betriebssystem.
Beispiel: Exploit
edit: Ich habe Exploit nur als Beispiel genannt und möchte mich nicht darauf beschränken.
Danke, Thomas
Hallo,
wie bereits erwähnt musst du nicht die komplette File einlesen. Bei deinen Dateien handelt es sich wohl um Textfiles mit ASCII-Codierung.
Ich persönlich tendiere zu Einteilungen.
Hierzu splitte ich die Datei in Blöcken auf z.B. ein Block ist 1 MB groß und lade immer 3 Blöcke in den Arbeitsspeicher (sofern möglich). Der zweite Block beinhaltet immer den geraden angezeigten Text. Der erste Block den vorhergehenden und der dritte den folgenden Text -> diese Blöcke dienen als Buffer.
So, jetzt müssen wir uns noch Gedanken über das Laden der Datei anstellen. Wir benötigen noch für jeden Block einen Einstiegspunkt in die Datei. Hierzu müssen wir die Datei analysieren. Sagen wir mal, dass der erste Block bei File.movePointerToLocation (0) (Dateianfang) beginnt. Dann verschieben wir den Pointer um 10241024 = 1MB File.movePointerToLocation (0 + 10241024). Jetzt gehen wir solange Rückwärts bis wir das Zeilenumbruchbyte haben und setzen an dieser Stelle den Index für den zweiten Block. Diesen Vorgang wiederholt man jetzt bis zum Dateiende.
Nach dieser Maßnahme kannst du folgendes machen
// lade die Daten für Block 21
block21Beginn = index[20];
block21End = index[21];
block21 = new Buffer (1024*1024);
// block21 = bufferPool.getFreeBuffer();
// z.B. für Magic-Byte oder Header
offset = 0
file = openFile
file.movePointerTo (block21Beginn + offset)
file.readData (block21, sizeToRead = block21End-block21Beginn)
Wenn er jetzt :::
Wow 8o Ich weiß nicht um was für ein Heim es hier handelt. Das ist schon grenzwertig. Aktive Überwachung von Browsern.
Da bleibt die Frage, ob die Heimleitung auch wissen will, um was für einen Benutzer es handelt?
Wieso installiert Ihr nicht einfach einen Proxy und regelt dort auf welche Seiten man Zugriff hat. Hier für gibt es genügend freie und kommerzielle Software.
Gruß, Thomas
Hallo,
while (laufbedingung) { Thread.Sleep(1000); if (currentPoint == nextPoint) { //und so weiter
Hatte da auch noch gar nicht an Timer gedacht... denke ich werde den Algorithmus dann in das Tick-Event vom Timer umbasteln.
Das Thread.Sleep(1000) + Zeit für die Ausführung mehr Zeit als 1s benötigt wurde schon erläutert. Aber dennoch eine kleine Anmerkung hierzu.
Thread.Sleep (x) verwendet wie die StopWatch die Timmings von der WinAPI. Somit sind diese auch von der Auflösung dieser Timmings abhängig. Daher sollte man niemals so etwas nacheinander summieren.
Besser ist etwas in Richtung
timestamp = now
while ( )
{
newTimestamp = now
deltaTime = newTimestamp - timestamp
timestamp = newTimestamp
berechne alle Aktionen für "timestamp"
// zur Minimierung der CPU-Auslastung
Thread.Sleep (0) // oder ähnliches
}
Der große Vorteil dieser Methode, man ist unabhängig von der Dauer eines Schleifendurchlaufes. Evtl. kann man am Ende auch einen FPS-Minimierung (FPS = FramesPerSeconds) betreiben. Aber bedenke, einen festen Wert, wie z.B. 60 FPS, wirst du nie hinbekommen. Nur eine Näherung.
Solltest du immer noch Probleme mit der Geschwindigkeit haben, solltest du dir über Beschleunigungsmöglichkeiten für die Berechnungen überlegen. Schaue dir mal mit einem Profiler an, wo du viel Zeit verlierst.
z.B.
Gruß, Thomas
Hallo,
ins blaue geraten. Was ist mit dem Property Size 844;582 . Das kommt mir irgendwie verdächtig vor.
Gruß, Thomas
Hallo,
Nein wir benutzen leider kein Sourcecodemanagement.
Wir machen das ganze wesentlich trivialer.
Haben wir heute den 1. April? Ähmm 8o
Ach der Server wird mindestens 1 mal täglich gesichert auf den Sicherungsserver. Also so mal mit "weg" ist nicht, wird dann einfach per Mausklick die Spiegelung auf eine neue VM geworfen.
Ausfallzeit ~20 Minuten.
Ich bin nicht grundsätzlich gegen so ein System, bloß müssen Vorschläge und Änderungen begründet und präsentiert werden, bzw einen Wirklichen Vorteil bringen.
Dann würde ich dir mal empfehlen dich in die Thematik etwas einzulesen.
http://de.wikipedia.org/wiki/Versionsverwaltung
Ein Vorteil eines verteilten System ist, dass die Ausfallzeit (Zeit, in der ein Programmierer nicht produktiv arbeiten kann) nach einem Serverausfall in der Regel 0. Minuten beträgt.
Hier noch ein paar Links zum verteilten System Git:
http://progit.org/book/de/
http://de.whygitisbetterthanx.com/#git-is-fast
Gruß, Thomas
Hallo,
Bei den Bedingungen kann man eigentlich nur die
> empfehlen.
Damit dürfte aber nur der zweite Punkt abgegolten sein. Wobei die GPL etwas weiter geht. Jeder der eine Bibliothek benutzt, die unter der GPL steht muss seine Software ebenfalls unter GPL veröffentlichen.
Verbietet überhaupt eine der bekannten OpenSource-Lizenzen einen Einsatz in kommerziellen Projekten?
Gruß, Thomas
In wie weit hast du die Tipps von herbivore und tom-essen begutachtet?
Was hast du seit dem letztem Post gemacht?
Evtl. ein paar Code-Stück zeigen, das könnte hilfreich sein.
Ein schöner Aspekt von autonomen Fahrzeugen ist die Anmietung eines Wagens für eine Strecke. Hier ergeben sich ganz neue Möglichkeiten für den Einsatz eines Fahrzeuges. Es ist kein "Taxifahrer" mehr nötig, der das Fahrzeug anliefert und der Bestellvorgang/Plannung lässt sich bequem von einem Display aus erledigen.
Wer heutzutage durch eine Siedlung / Wohngebiet einer Großstadt fährt sieht eigentlich nur Häuser und jede Menge Blech rum stehen. Mit autonome Fahrzeuge könnte man sein Verkehrsmitteln mit einem Knopfdruck bestellen und die gewünschte Strecke zurücklegen. Ein Dienstleister könnte sich um die Reinigung der Fahrzeuge kümmern. Das würde bei vielen die Kosten für den Unterhalt & Co. deutlich senken.
Es gibt doch so viele Menschen (mich eingeschlossen), wo das Fahrzeug doch fast den ganzen Tag einfach nur rumsteht.
Ein wirklich gelungener Beitrag zu diesem Thema. Top 👍
Aus persönlicher Sicht sehe ich eine ähnliche Zukunft. Aber wann diese Zukunft eintritt ist das andere.
Mich würde es freuen, wenn sich die ersten **kleinen **aber nötigen Schritte sich endlich mal durchsetzen werden. Hierzu zählich ich Beispielsweise das Automatikgetriebe, den Wegfall von Kupplung und Gaspedal.
Mit diesen Maßnahmen könnte man den Verbrauch und somit die Umweltbelastung reduzieren und gleichzeitig den Fahrer entlasten.
Wie soll das gehen?
Im Bereich der Arbeitsmaschinen gibt es so etwas schon seit mehr als 20 Jahren. Eine Lösung ist das Anbringen einer zusätzlichen Nadel auf der Geschwindigkeitanzeige. Die Nadel zeigt die gewünschte Geschwindigkeit an und kann z.B. mit einem Drehknopf (wo jetzt der Ganghebel ist) verstellt werden. Drehzahl und der entsprechende Gang wird von der Elektronik gewählt.
Wieso setzt kein (fast kein) Automobilhersteller auf diese Strategie?
Die meisten deutschen Autofahrer würden es nicht kaufen. Mit Automobil verbinden wir Freiheit, Wohlstand, Freude, ... . Die Freiheit unter 10s von 0 auf 100 km/h zu beschleunigen oder einfach mal einen Gang runterschalten und hoch zu beschleunigen.
So, jetzt versuch mal dem Autofahrer mit solchen Gedanken den Ganghebel weg zu nehmen 😁
Hoffentlich bauen die bei den ersten komplett elektorgetriebenen Automobilen (Energiespeicher: Akku, Wasserstoff, what ever) die Motoren direkt hinter die Reifen und somit ohne Getriebe. Das wäre ein großer Sprung aus meiner Sicht.
Rein aus mechanischer Sicht stellt das kein Problem dar und die Programmierer/Elektriker freuen sich über wenig Komponenten zwischen Motor und Abtriebselement.
Angst vor dem Kontrollverlust, die Versicherungsfrage und die Ausfallquote von Software & Technik werden erstmal als KO Kriterium überwiegen ... Persönlich würde ich mich als Fahrer keines Falls ersetzten wollen ...
Das K.O-Kriterium ist aus meiner Sicht erstmal der Verlust von der Kontrolle (teilweise oder ganz, spielt keine Rolle) über das Fahrzeug. Verlust von Kontrolle ist gleichzusetzen mit Verlust von Freiheit, Freude und Fahrgefühl.
Gerade wenn Fahrzeuge selbst den Weg suchen, kommt es zu Staus. Das ist im Prinzip nichts anderes als heute schon, wenn eine Verkehrsbehinderung über TMC kommt, alle Navis die gleiche Auswahlstrecke vorschlagen und prompt ist die Ausweichstrecke dicht. Fahrzeuge müssen zentral zumindest für ein größeres Gebiet gesteuert werden, um optimal verteilt werden zu können. Da brauch man das großen Bild, das ein Fahrzeug lokal nicht wahrnehmen kann.
Das wird stark davon abhängen, wie die Autos mit einander kommunizieren. Wenn ich z.B. eine Strecke von Salzburg nach Nünrberg fahren möchte, dann muss das Automobil bereits bei der Abfahrt in Salzburg das Verkehrsaufkommen bei München und Co abschätzen können. Nicht exakt aber eine Schätzung muss möglich sein.
Warum? Es gibt meist mehrere Alternativen. Auf einige kann man kurzfristig Umtellen und andere muss man bereits bei der Abfahrt wählen. Im Fall Salzburg - Nürnberg wäre das die B30x (blaue Route) und die A8.
Wird eine Kommunikation per Langstrecke verboten bzw. ist nur in einem Radius von ca. 20 km möglich, dann wird es sehr schwierig Staus zu verhindern.
Aber das ist wohl schon etwas zu weit im Detail, bezogen auf herbivore anfangspost.
Gruß, Thomas
Kindprozesse gibt es auch unter Windows, aber Prozess.Start erzeugt m.E. eigenständige Prozesse.
Vielen Dank.
Hallo,
also, du startest etwa 50 Prozesse. Warten diese Prozesse nach dem Start auf eine Eingabe oder durchläuft jeder Prozesse eine fest vorgegebene Routine?
Falls letzteres, dann solltest du nicht zu viele Prozesse auf einmal starten. Evtl. nur Anzahl der CPU-Kerne - 1. Dann sollte auch keine Überlastung des Systems auftreten und dein Programm wie gewohnt arbeiten.
Werden Prozesse nicht sowieso in einem separaten Thread geöffnet ...
nö, Process.Start läuft in dem Thread, der es aufruft.
Unter Linux handelt es sich bei den gestarteten Prozesse um Sub-Prozesse. Ist das unter Windows ebenfalls so oder erzeugt Process.Start einen neuen Hauptprozess?
Evtl. meint der Fragesteller dies.
Gruß, Thomas
Hallo,
aktuell mit Qt (C++). In naher Zukunft werde ich mal den Google Native Client Support des Mono-Projects unter die Lupe nehmen.
Gruß, Thomas
Das ist für mich sehr wichtig, deshalb habe ich jetzt schon 2 mal die Sprache gewechselt, ich hoffe das geht in C#
Mal ehrlich. Hast du jemals ein Buch gelesen oder z.B. "c# number format" in Google eingegeben?
Der erste Link führt dich zu http://www.csharp-examples.net/string-format-double/
Welche Sprache hast du schon benutzt? Ich kenne keine Programmiersprache, in der man nicht das Nummerformat beinflussen kann.
Ich kann dir empfehlen einen Blick auf :rtfm: 🛈 📗 zu werfen.
Hallo,
vielen Dank für eure Antworten. Wie ich bereits befürchtet habe, gibt es keinen großen Unterschied zwischen den Datenbanken. Mein heimlicher Favorit war PostgreSQL und hat das Rennen auch gewonnen. PostgreSQL bietet ein paar nette Features, die ich evtl. in der Zukunft nutzen möchte.
An den SQL Server Express willst du nicht ran? (Also es muss zwingend OpenSource sein?)
Gerade in Verbindung mit LINQ2SQL/EF ist das sehr bequem.
Auf keinen Fall. Die Einschränkungen sind zu groß. Und der SQL-Server läuft nur MS Windows. Ich benutze die Mono-Platform und das Prog. muss auf Linux und Windows laufen.
Ansonsten wäre es interessant den SQL Server kennen zu lernen.
Gruß, Thomas
verwendetes Datenbanksystem: PostgreSQL, Firebird
Hallo,
für mein privates Projekt suche ich derzeit nach einer guten DB-Lösung. Nach einer Vorauswahl erfüllen PostgreSQL und Firebird alle meiner Forderungen.
MySQL würde auch alle Forderungen erfüllen, würde ich aber eher nicht verwenden. Habe hierfür aber keinen konkretten Grund.
Ich kann das jetzt auswürfeln, oder eben diesen Beitrag hier verfassen. Mich würde eure Meinung / Erfahrungen mit diesen DB-System interessieren. Evtl. auch Pro/Contra.
Gruß, Thomas
Aber ganz ehrlich, du greifst ohne Synchronisierung von mehreren Threads auf die gleiche Variable zu und wunderst dich dass es Seiteneffekte gibt? Da gehören eindeutig die Multithreading Grundlagen nochmal aufgefrischt.
Leider schweigt hierzu der Themenersteller. Von mehreren Thread's ist bis jetzt keine Information durchgedrungen.
@MarsStein
Weiter ist glaube ich lock(this) nicht so gern gesehen (steht auch hier im Forum glaube ich). Mach dir lieber ein Object als Klassenvariable und lock
siehe MS-Doku: lock-Anweisung
Wie kann ich das überwachen?
z.B.
edit:
Ist das Property IsFileMoved öffentlich oder privat?
Hast du die Variable schon mal auf der Console ausgeben lassen?
Ob das dann wirklich auch der Fall ist, kann Ottonormalverbraucher wohl leider nicht immer selbst feststellen...
Und wenn es dann auffliegt heißt es wieder: "Fehler in der Software, wir wussten von nichts
Genau hier liegt das Problem. Wenn es auffliegt hat der Hersteller nichts zu befürchten. Solche Meldungen wirken sich meist nicht negativ aus. Viele Menschen interessieren sich dafür nicht. Es wird gekauft was gefällt.
Und von Seiten der Rechtsverfolgung hat der Hersteller auch nichts zu befürchten. Evtl. eine kleine Geldstrafe. Wobei klein relativ zu betrachten ist.
Es wird nicht ernst genommen. Für mich persönlich ist das Spionage und sollte entsprechend behandelt werden.
z.B.
Besonders der 3. Punkt ist für mich sehr wichtig. Warum?
Wenn man beispielsweise als Konstrukteur (Maschinenbau) tätig ist und es kommt bei einer fertigen Anlage zu einem Unfall. Hier wird geprüft wie der Unfall möglich war. Kann man dem Konstrukteur der Anlage grobe (sehr grobe) Fahrlässigkeit nachweisen, dann wird gegen diesem ein Strafverfahren eingeleitet, welches bis zu Lebenslänglich als Bestrafung enden kann.
Dies ist auch ein Grund, warum bei den bekannten Automobilhersteller gewisse Worte wie z.B. Feuer niemals in einem Bericht vorkommen darf.
Ohne "Hot Start" ist das technisch aber gar nicht möglich. Daher ist die Erfassung von Daten absolut notwendig, um genau dieses "Feature", den Hot Start, zu ermöglichen.
Meine persönliche Meinung:
Diese Entscheidung darf kein Hersteller fällen. Jede Aufzeichnung / Übermittlung von Daten muss Standardmäßig deaktiviert (oder beim ersten Start des Benutzers) sein. Der Benutzer muss die Entscheidung treffen. Zudem muss das Produkt beim aktivieren einer derartigen Funktion über alle Folgen / Veränderungen informieren. Egal, ob es der Benutzer liest oder einfach nur OK anwählt.
Wow! Was ist das für eine Abfrage?
Ich hab' mal eine Abfrage einer SQL-Tabelle gemacht: 2.7mio Zeilen, 21 Spalten, Speicherverbrauch liegt bei 2.6GB. Hat knapp über 2min. gedauert, aber funktioniert.
Sein Explorer gibt einen Speicherverbrauch von 1.2 GB an.
Generell. Man sollte bei großen Abfragen immer den zur verfügungstehenden Speicher im Blick behalten. Evtl. auch vor der Aktion den benötigten Speicher abschätzen und ggf. den Benutzer informieren/warnen. Zudem würde sich der Benutzer über einen Abbrechen-Button freuen. Es ist einfach nicht schön, wenn das Programm mehrere Minuten/Stunden arbeitet und man die Aktion nicht unterbrechen kann.
Gruß, Thomas
Ich kann der Aussage von gfoidl zustimmen. In vielen CAD Systemen wird als Scriptsprache VB(S/A) verwendet.
Das ist mir bekannt und daher kenne ich auch die Probleme der Leute. VB(S/A) & Co. würde ich gerne vermeiden.
ich bin ja perl-Fan. Wenn man Google-Trends (perl vs python) glauben will, dann hat python perl mittlerweile überholt. Allerdings gibt es ja ...
C, Fortran kennt er rudimentär (vllt. weil er es in der Ausbilung lernen musste) und auch eher vom Namen her.
Perl kennt er nur vom Namen.
Perl trifft man in diesem Bereich sehr häufig. Das gleiche gilt für C und Fortran. Ich persönlich bin auch ein sehr großer Perl Fan. Leider habe ich in meinen Leben noch nie jemanden mit einem Alter von < 30 getroffen, der davon was gehört hat.
@gfoidl
Du hast im CAD-Bereich einen guten Draht (wenn ich mich recht erinnere). Siemens PLM bringt in der Version 8 eine neue Skriptsprache für Ing. raus. Hast du diese schon einmal gesehen? An welcher Sprache haben die Macher hier orientiert?
Hallo,
wie wäre es wenn du den Hammer benutzt? Die Monitore lassen sich doch einzeln Konfigurieren und den 2. Monitor kann man auch deaktivieren. Wenn ein Monitor deaktivert ist, dann schaltet er sich im Normalfall auch in den Standby.
Gruß,
Thomas
Hallo,
für ein Program (Bereich: CAD/CAE) soll eine Skript-Interface entwickelt werden. Dieses Interface soll für Makros nutzbar, aber auch für komplette Erweiterungen geeignet sein.
Da der Kern des Programm in C++ geschrieben ist, denke ich an eine Implementierung im C bzw. C++ Bereich nach. Hier fallen einem als erstes Lua und Python ein. Für mich persönlich alles sehr schöne und einfache Sprachen. Aber wie sieht es da mit dem Standard Ing. aus? Die meisten kommen aus den Bereichen Maschinenbau (Anlagenbau, Feinwerktechnik bis zu Schiffsbau) und den neueren Studiengänge zur Computer-Modeling bzw. Simulation.
Mit was sind die vertraut?
So, welche Anfornderungen habe ich an die Interface-Sprache.*einfache Funktionen, keinen Zwang einen OOP-Stil zu benutzen *OOP muss vorhanden sein *einfache Einbindung/Anbindung (bei einem vorgegebenen Interface) von weiteren Bibliotheken durch den Benutzer
Gruß, Thomas
Das die Graka kaputt schließe ich aus, denn beim Gaming habe ich keine Probleme.
Darauf würde ich mich nicht verlassen. Viele Spiele analysieren dein System und entscheiden danach welche Funktionen sie nutzen und welche nicht.
Der Treiber auf der NVIDIA-Homepage lässt sich nicht installieren, wohl so eine OEM-Geschichte.
Probleme mit OEM-Geschichten kenne ich nur zu gut. Um was für einen PC handelt es sich?
Hallo,
ich erstelle gerade Ehrenamtlich eine Webseite für unsere Jugendabteilung. Im Internetrecht kenne ich mich aber nicht wirklich aus.
Was muss eine Webseite eines Vereins aus recthlicherseite aus Betrachtet alles besitzen?
Nun ja.
Es sollte noch erwähnt werden, dass sich die Anzahl der Register auf der CPU sich erhöht haben. Dass ist wohl der größter Vorteil von AMD64 gegenüber x86 Systemen.
http://de.wikipedia.org/wiki/AMD64
Registererweiterung
Die Verdoppelung der Registerzahl des allgemeinen Rechenwerks ist im Befehlssatz unabhängig vom 64-Bit-Transfer vorhanden. Die Implementierung der AMD64-Erweiterung in den CPUs beinhaltet diese Erweiterung jedoch immer. Moderne Compiler können so häufiger Zwischenwerte von Berechnungen in CPU-Registern ablegen, statt in den Hauptspeicher auszulagern. Komplexe Berechnungen werden dadurch beschleunigt, so dass rechenintensive Programme davon profitieren.
Hallo,
ich beschäftige mich gerade ein wenig mit der FFT. Hierzu verwende ich die FFTW Library.
Ich mache nun folgendes.
zum Windowing, z.B Hamming-Fenster
w(n) = 0,54 + 0,46 * cos(2 * pi * n / M)
M := Fensterbreite
n := aktueller Datenindex, von -M/2 to M/2-1
1.)
Was ist nun die Fensterbreite? Sind das die 32768 Samples?
2.)
w(n) müsste der Gewichtungsfaktor sein --> sample_with_windowing(i) = sample_raw(i) * w(-M/2 + i)
Ist das korrekt?
Vielen Dank, Thomas
Es wird alle 50ms ein Datagram gesendet, ich gehe davon aus, dass dies auch per TCP zu lösen gewesen wäre.
wie groß ist ein Datagram? Wird die Länge des Datagram mitgesendet?Es werden ca. 1500 Bytes gesendet. Die Länge wird nicht mitgesendet, die Daten haben eine konstante Länge.
Ist das weglassen der Länge nicht ein Verstoß gegen RFC 768?
Warum sehe ich im Wireshark das Paket zum PC aber trotzdem kommt es über UDP Receive nicht an?
Dafür gibt es mehrere Gründe.
Evtl. stimmt die errechnete Prüfsumme nicht. Oder das Paket wurde von der Hardware in mehrere Fragmente aufgeteilt.
Frage: Wie kommst du gleich nochmal auf "ca. 1500 Bytes"?
XMLEdit.Load( XMLPath );
....
XMLEdit.Save(XMLPath );
Seit wann kann man mit einem Reader auf eine Platte schreiben?
Nach dem lesen der Datei benötigst du den Reader nicht mehr --> schließen, bevor du schreiben willst. Dann gibt es auch keine Seiteneffekte.
Aber wie viel schneller ist UDP im Vergleich zu TCP? Kann mir das jemand beantworten?
Ähm .. wie schnell ist C++ gegenüber C?
Gleiches Netz == gleiche Geschwindigkeit bzw. Durchsatz ist wohl das richtige Wort.
TCP/IP*Hier kann es zu einem höheren Datenvolumenstrom kommen, da evtl. Pakete öfters gesendet werden. Zumindestens wenn nötig
*Bei TCP/IP darf nichts verloren gehen. Wenn doch, dann muss das Paket neu angefordert werden. Dies führt zu einem zeitlichen Verzug (Hallo Sender - Zeit > Was gibt es - Zeit > bitte nochmal Paket Senden - Zeit > .... ).
Das mit der Zeit ist für dich kein Argument. Da du bei Verlusten die Pakete auch selbst neu Anfordern musst. Zudem bietet TCP/IP weitere Vorteile. z.B. wenn mehrere Wege im Netzwerk zu einem Ziel führen. Was bei größeren der Fall ist.
Achja,
Ich hoffe, dass die Reihenfolge keine große Rolle spielt. UDP wählt man nur in Ausnahmefällen! Der Verlust eines Paketes spielt bei der Verwendung von UDP keine Rolle. Wenn doch, dann nimm TCP/IP!
Was wären solche Ausnahmen? *bei 3D Mutliplayer-Spielen z.B. die Positionsangaben der anderen Spieler/Objekte (wenn mal eine Aktualisierung fehlt ist das nicht so schlimm) *Aufzeichnen von Log-Ereignissen (nicht für Debugzwecken) *Zeitsynchronisation *VoIP (Allgemein, alle Streams zur Bild oder Tonübertragung)
Und zur Wiederhollung
können Pakete verloren gehen
kommen die Pakete nicht immer in der richtigen Reihenfolge an
aus Wiki
UDP stellt einen verbindungslosen, nicht-zuverlässigen Übertragungsdienst bereit. Das bedeutet, es gibt keine Garantie, dass ein einmal gesendetes Paket auch ankommt, dass Pakete in der gleichen Reihenfolge ankommen, in der sie gesendet wurden, oder dass ein Paket nur einmal beim Empfänger eintrifft. Eine Anwendung, die UDP nutzt, muss daher gegenüber verlorengegangenen und unsortierten Paketen unempfindlich sein
Es werden ca. 1500 Bytes gesendet.
Circa oder genau?
Denn 1500 Bytes (incl. Header) ist die Grenze für ein Paket im Netzwerk. Größere Pakete werden Fragmentiert. Was zu einer höheren Verlustrate führt.
Wenn TCP verwendet worden wäre, könnte es sein, das ein Paket viel später ankommt? Also nicht in der richtigen Reihenfolge?
Ähm .. bei TCP/IP stimmt die Reihenfolge und es geht nichts verloren. Wenn doch (ein Paket kommt nach X versuchen nicht an), dann gibt es eine Exception.
Bei UDP*können Pakete verloren gehen *kommen die Pakete nicht immer in der richtigen Reihenfolge an
Ich hoffe, dass die Reihenfolge keine große Rolle spielt. UDP wählt man nur in Ausnahmefällen! Der Verlust eines Paketes spielt bei der Verwendung von UDP keine Rolle. Wenn doch, dann nimm TCP/IP!
Zudem musst du bei UDP auf die Paketgröße, ... achten.
Link
Ausser für ganze Zahlen...
Nicht für alle Ganzzahlen (in double) 😉
wie sieht denn das ganze bitte unter Windows 7 aus? Da gibt es ja keine cards.dll mehr. Was kann ich da verwenden?
Wie man sieht wäre die Verwendung ganz ähnlich der "cards.dll", die bis Windows XP vorhanden war.
Die Karten liegen in der Bibliothek, wie auch aus der Methode DrawCard hervorgeht als Resourcen innerhalb der DLL vor.
Wer lesen kann ist klar im Vorteil 😁