Laden...

Forenbeiträge von Femaref Ingesamt 240 Beiträge

10.10.2009 - 23:56 Uhr

Klar, du hast ja auch in dtEnd kein Year gesetzt, somit ist es auf dem Standardwert = 0, bzw irgend nen Wert, den du nicht haben willst 😃

10.10.2009 - 23:31 Uhr

Bei Pfadangaben immer Path.Combine verwenden, so fällt dir viel Zeichensalat weg.

01.10.2009 - 13:17 Uhr

Mal abgesehen davon, dass du eigentlich nen Break bei auftreten der Exception bekommen müsstest, setzt doch mal nen Breakpoint bei form1_load und im ctor des Forms, und dann gehste diese (abgesehen von der Init Methode) Schrittweise durch. (Im ctor deswegen, weil du den JPEG-Stream direkt initialisierst, was einer Initialisierung im ctor gleichkommt). Dann müsstest du die Fehlerquelle eigentlich ordentlich finden können.

30.09.2009 - 10:34 Uhr

stimmt, ich kenn ihn auch, aber ich muss immer überlegen, was genau gemeint ist - und dann nehm ich die etwas längere Schreibweise, solange ich dann nicht groß drüber nachdenken muss 😉

29.09.2009 - 23:44 Uhr

gfoidl: Ich würd den fancy name operator nicht benutzen, denn er ist nicht so bekannt. Ich find dn!3ls version besser, weil ich mit einem Blick sehen kann, was genau gemeint ist, bei value?? false nicht. "Sowenig wie möglich, soviel wie nötig" wäre hier ganz angebracht, ich find die etwas höhere verbosity von dn!3l lesbarer. Es ist nicht nötig, aber hübscher und schneller ohne zu denken sichtbar.

28.09.2009 - 14:00 Uhr

Ich habe hier einen 24" von Samsung stehen, es war anfänglich von 17" eine immense Umgewöhnung, könnte mir das Ding aber auch nie wieder wegdenken. Es ist sowas von viel Platz, und Programmieren macht gleich viel mehr Spaß!

21.09.2009 - 16:01 Uhr

Ich hoffe, dass ich sowas niemals erleben muss, ich könnte mir durchaus vorstellen, dass man mit jeder Codezeile, die man von sowas liest, ne Minute Lebenszeit extra verliert.

20.09.2009 - 13:52 Uhr

Nein, dagegen hat Google ja nichts. Sie haben nur was dagegen, wenn du stattdessen die für Menschen gemacht Seite übermäßig häufig anforderst, nur um sie zu parsen.

20.09.2009 - 13:30 Uhr

Sie wollen, dass die API benutzt wird. Das hat zwei Ursachen:

a) Die API ist vollkommen dokumentiert, somit wissen Programmierer genau, was welcher Parameter ist (dazu ist das Video auf der Hauptseite der API sehr interessant) im Gegensatz zu der Websuche

b) Die Serverlast ist über die API weit geringer, der Overhead ist minimal gehalten (es ist ansich nur ein JSON-Array mit sehr wenig Metadaten).
Wenn du nen normalen Webrequest auf die Googlepage machst, müssen die Server immens viel Overhead generieren, der dich als Programmierer ansich ja nicht interessiert, du musst ihn dann selbst wieder rausparsen (wo es ja auch wieder zu Fehlern kommen kann). Desweiteren findet Google die falsche Verwendung von Parametern insgesamt auch nicht wirklich toll, weil es auch eine Last auf den Server ausübt.

edit: http://www.youtube.com/watch?v=NOAa05s0tck das erwähnte Video, geht über die Entwicklung der Ajax/Restful API und im Rückblick auch auf die frühere Verwendung der SOAP-API, sowie die Probleme, die damals durch die nicht Dokumentiertheit auftraten.

20.09.2009 - 13:18 Uhr

http://code.google.com/intl/de-DE/apis/ajaxsearch/documentation/#fonje

Ist eine RESTful API für alles nicht Javascript-mäßiges, gibt dir JSON-Daten zurück, die dann parsen musst (glaube, da gibts schon was fertiges im Framework)

semtex: Den API-Key braucht man nicht, um die API zu benutzen, es ist nur eine Identifikation für Google, wenn Probleme auftreten; dann können sie dich kontaktieren und dir Bescheid sagen.

06.09.2009 - 00:01 Uhr

Wäre aber IMO ideal um das Prinzip der einzigen Verantwortung mit der Datenkapselung zu verbinden. So könnte man z.B. beim Serialisieren auch private Member mit-serialisieren, was ab und zu nötig ist.

Sehe ich nicht so. Ich würde eher die serialisierung über ein Interface in die Klasse selbst verlegen, sodass es von der Klasse selbst übernommen wird. Nur die Speicherung wird außerhalb erledigt.

Bei mir kennen die zu Cachenden Objekte eine ICacheEngine, die Speicherungsmethoden hat. Somit werden die Objekte automatisch gechached, wenn sich Daten ändern (was bei diesen Objekten nur von außen passiert, d.h. außer neue Daten werden reingefüttert bleibt das Objekt gleich).

05.09.2009 - 23:54 Uhr

Beide Assemblies, die ITestInterface implementieren, brauchen Referenzen auf die Assembly von ITestIternface.

05.09.2009 - 20:33 Uhr

Das Interface muss natürlich sowohl dem Loader, als auch der Klasse selbst bekannt sein.

Da du natürlich keine Referenz auf die dll haben willst (wäre ja Schwachsinn, dann brauchste den Dynamischen Loader ja garnet), musst du es anders lösen.

Ich hab ein Projekt mit den Interfaces gemacht (da ich verschiedene Pluginarten haben werde), das sowohl vom Loader als auch von den Plugins referenziert werden können.
Somit haben beide Komponenten Zugriff auf das nötige Interface.

05.09.2009 - 20:28 Uhr

Bin ich dagegen. Wenn man Zugriff auf die Private/Protected Elemente einer anderen Klasse benötigt, zeugt das meiner Meinung nach von schlechtem Design.

Kommen Vererbung und Friends nicht aufs gleiche hinaus?

31.08.2009 - 20:14 Uhr

Ich denke, GDI+ wird hier einfach an die Grenzen stoßen, wenn es tatsächlich alles neugezeichnet werden muss. Da wäre WPF wohl angemessener...

30.08.2009 - 17:26 Uhr

Da kennt wohl wer den Negierungsoperator nicht.

15.08.2009 - 23:14 Uhr

Ist doch logisch - du hast ansich string.Replace("--", "-") als Regex geschrieben.

Das benötigte Regex für das Minust oben doch schon genannt: "-+", was soviel heißt wie "soviele - wie möglich bis zum ersten Zeichen, dass nicht - ist".

06.08.2009 - 19:47 Uhr

Ist nicht möglich aufgrund des Headers etc.

Meine Idee wäre: Datei einlesen -> FFT (fast fourier transformation) -> Werte umdrehen -> zurücktransformieren -> mit neuem Header speichern.

Denke, da sollte aber jemand was zu sagen, der davon Ahnung hat.

01.08.2009 - 02:37 Uhr

herbivore, da PointCollection sich wie eine List<> verhält (siehe msdn: PointCollection Class, abschnitt "Remarks") bzw IList<Point> implementiert, ist sie auch über Linq queryable.

29.06.2009 - 00:40 Uhr

das ist aber was anderes als Remoting, Remoting ist (zumindest nach meinem Verständnis) das Fernsteuern eines einzelnen Programmes. Du müsstest also dementsprechend ein Programm (bzw. Service) haben, dass du auf dem Zielcomputer hast, und dann mit Remoting ansprechen kannst.

Für welchen Zweck brauchst du das denn?

25.06.2009 - 18:25 Uhr

also mein brain fuckt es definitiv 😉

21.06.2009 - 18:54 Uhr

Aber ist dein produziertes XML-Dokument nicht eigentlich gegen den Sinn von XML?
Du setzt ja eine Ausgabeform voraus, jede andere Verwendund würde Stringparsing erfordern.

Wäre es nicht inteligenter, einfach folgendes zu machen


<Actor>
<Name>foo</Name>
<Character>bar</Character>
</Actor>

oder


<Actor name="foo" character="bar"/>

?

Dadurch hast du auf jedenfall eine höhere Wiederverwendbarkeit.

21.06.2009 - 18:48 Uhr

Es ist möglich, über PHP Webservices bereitzustellen.

20.06.2009 - 18:22 Uhr

Ich halte PHP nicht füe eine Sprache, worüber man OOP lernen sollte... Das programmieren von Klassen ist, gelinde gesagt, grausam. Okay, vieleicht ist das ganze jetzt auch subjektiv, da ich Klassendesign mit C# gelernt (selbst beigebracht) habe, und von den Features einfach nur verwöhnt bin. (In php musst du overloads selbst kennzeichnen, hast keine Typensicherheit und damit auch keine bestimmten Signaturen... Wahrscheinlich bin ich tatsächlich einfach nur beeinflusst 😃)

13.06.2009 - 18:48 Uhr

in der tabelle unternehmen habe ich noch kunde und lieferant als boolischen typ genommen, damit ein unternehmen mit seinen niederlassungen entwerder unter KUNDE oder LIEFERANT gespeichert wird.

Das würde ich nicht machen, denn es erzeugt Redundanz. Eine Spalte als Integer ist da angebrachter, wo du dann zb. sagen kannst 0 = Kunde, 1 = Lieferant, und einfach nur die Zahl eintragen kannst. Dadurch hast du auch die Möglichkeit, zb. einen Reparaturbetrieb einzubauen, ohne an der Tabelle etwas zu ändern.

07.06.2009 - 21:44 Uhr

wenns keine Managed Assembly ist, dann wird das aber nicht klappen.

27.04.2009 - 18:48 Uhr

Solange man sich nicht nur auf die GUI verlässt, ist das ja auch in Ordnung, aber wenn man mit dem Schema "GUI überprüft schon, muss ich net machen" drangeht, wird es knallen. Garantiert.

19.04.2009 - 15:41 Uhr

Zum Thema PHP: Bei PHP ist, aufgrund der Tatsache, dass es eine Skriptsprache ist, eine Typsicherheit wie in C# garnicht möglich, da es keinen Compiler, sondern nur einen Interpreter gibt. (Allerdings ist zb. zur Laufzeit eine Typsicherung über den Vergleichsoperator === möglich (entspricht ==, nur mit zusätzlicher Typenüberprüfung, true === 1 ergibt false).

C# und PHP haben eben ganz andere Einsatzgebiete, und bieten aufgrunddessen auch andere Herangehensweisen.

10.04.2009 - 18:29 Uhr

Man kann es sich aber auch schwer machen 8o

10.04.2009 - 12:23 Uhr

Dann ist es kein Windowsdienst - denn die laufen auch, wenn kein Benutzer eingeloggt ist.

20.03.2009 - 22:54 Uhr

Ehrlich, wenns um sowas brisantes geht, würd ichs mir zweimal überlegen, es zu veröffentlichen; Selbst wenn es nicht so einfach wäre an den Code zu kommen.

Du kannst soviel verbieten wie du willst, du kannst nichts dagegen machen, wenn jemand es sich mit dem Reflektor anguckt.

13.03.2009 - 08:17 Uhr

edit: D'oh, klammern lesen -.-

Ist zu früh. Sorry.

22.02.2009 - 11:14 Uhr

Silverlight verwendet eine spezifische, abgespeckte Version des .Net Frameworks, dadurch geht es nicht. Du müsstest den Datenzugriff also wohl oder übel über Webservices regeln.

19.02.2009 - 20:11 Uhr

ich würde eher die Hauptinstall auf dem Server updaten, denn es jedesmal beim Rechnerstart zu machen... Und eventuell solltest du dir mal die Pc-Wächter Karten genauer angucken, diese können viel Arbeit ersparen.

15.02.2009 - 20:16 Uhr

Silverlight enthält System.Drawing eben nicht, das ist ja grad das Problem dabei.

11.02.2009 - 18:14 Uhr

Normalerweise fängst du mit der Differentialrechnung an, da die Integralrechnung mehr oder minder darauf aufbaut. Ich hab das aktuell in der Schule (12. Jahrgang), und ich versteh die Theorie, und vl die Anwendung zum Teil (in Sachen Flächen/Volumenberechnung von Funktionen) aber wie das sonst alles zusammenhängt...

Mach dir nichts draus, es ist einfach höhere Mathematik.

11.02.2009 - 16:53 Uhr

So, als letztes Update:

Fehler gefunden und eliminiert. Fehler lag in einem falschem Regex-Pattern, wodurch sich das Programm zu Tode gesucht hat.

Vielen Dank für eure Hilfe und Anstöße.

Gruß Fema

09.02.2009 - 09:56 Uhr

Nach weiterem debugging habe ich herausgefunden, dass es nicht an diesem Teil des Programmes liegt. Dass der Mainthread geschlossen wird, liegt wohl tatsächlich am normalen managed Threadwechsel.

Der eigentliche Grund dürfte in einer Iteration einer Regex-MatchCollection liegen.

Gibt es dahingehend irgendwelche Einschränkungen vom Betriebssystem?

edit: grammatik

edit2: nach weiterem suchen denke ich, dass das Pattern zu komplex ist, und in verbindung mit zuvielen möglichen matches, die in der Matchcollection landen müssen, das ganze zum abschmieren bringt.

Danke für die Hilfe 😃

08.02.2009 - 11:20 Uhr

Ja, das ist mir bekannt, allerdings sollte dann auch das Programm weiterlaufen, oder? Dies ist nämlich nicht der Fall.

08.02.2009 - 01:56 Uhr

Moin, ich habe folgenden Code:


foreach(int i in ids)
{
   output.Add(SingleMail(i));
}

wobei ids eine List<int> ist, und SingleMail(int) eine recht lang andauernde Methode ist (Ja, ich weiß, dass man es Multithreaded aufbauen sollte, dies ist hier aber für den Fehler nicht relevant, da es auch mit mehreren Threads auftritt).

Irgendwann bekomme ich dann folgende Meldung:

The thread 0x1394 has exited with code 0 (0x0).

Danach probiere ich dann über pausieren des Debuggens herauszufinden woran es liegt, was aber aufgrund des Statuses des Threads natürlich nicht möglich ist.

Es tritt keine Exception oä. in SingleMail(int) aus, somit habe ich keine Ahnung wonach genau ich suchen soll, um den Fehler zu beheben.

Hat irgendwer dieses Problem schon einmal beobachtet und hat eine Lösung dafür?

22.01.2009 - 23:29 Uhr

Also nach meiner Auffassung sind Events genau für diesen Zweck da 😉

06.01.2009 - 22:48 Uhr

*snip*

Hast Recht, sollte ich mich mal mehr mit beschäftigen...

06.01.2009 - 17:28 Uhr

Es gibt nur eine Klasse Person und diese hat eine Eigenschaft mit der der Typ (A oder B) der Person festgelegt wird. Ich dachte dafür extra eine Basisklasse und 2 abgeleitete Klassen zu nutzen wäre ineffektiv und übertrieben.
Somit verwende ich auch 2 Listen des selben Typs: List<Person>

Die Lösung von Femaref muss ich mir mal genauer anschauen. So wie es aussieht muss ich da meine Klasse Person erweitern.

Danke nochmal fürs anschauen und drüber nachdenken.

Nein, musst du nicht, denn ich habe die Methode mit Absicht so weit gefasst. Wie du das beschreibst, hast du Irgendwie sowas:


public class Person
{
  ....
  public PersonType Type{get;set;}
  ....
}

public enum PersonType
{
  TypeA = 1,
  TypeB = 2
   .....
}

Wenn du dann meine Methode nimmst, sähe die so aus:


public IList<Person> PersonsByType(PersonType filter)
{
  List<Person> output = new List<Person>();
  foreach (Person p in list)
  {
    if(p.Type == filter)
    output.Add(p);
  }
   return output;
}

Somit würdest du nichts verändern müssen. Das gleiche kannste natürlich auch mit einer int-Eigenschaft, oder string-Eigenschaft oder sonstwas machen.

06.01.2009 - 16:30 Uhr


public IList<Person> PersonsByType(var filter) // musste hier selber sehen 
{
  List<Person> output = new List<Person>();
  foreach (Person p in list)
  {
    if(p.FilterProp == filter)
    output.Add(p);
  }
   return output;
}

So würd ichs machen, lasse mich aber gerne über eine bessere Methode belehren (in C# 3.5 und .net 3.5 würd ichs mit Linq machen)

03.01.2009 - 21:45 Uhr

Du kannst aus Managed Code nicht auf den Speicherbereich eines anderen Programmes zugreifen - musst also die API-Funktionen zugreifen (www.pinvoke.net) um den Speicher anderer Anwendungen zu lesen. Allerdings kann ich dir nicht sagen welche das sind, da ich mich damit noch nicht beschäftigt habe; Diese Frage kam aber auch desöfteren hier im Forum auf.

03.01.2009 - 19:36 Uhr

Du musst dann eben jedesmal wenn ein Unterordner aufgerufen wird, einen neuen FTP-Request absetzen und den Ordnerinhalt laden. Anders machen es die ganzen FTP-Clients ja auch nicht, da wird nicht die ganze Ordnerstruktur vorgeladen, sondern immer dann wenn der Benutzer ein neues, noch nicht bekanntes (deshalb auch nicht im Cache befindliches) Element aufruft.

20.12.2008 - 21:02 Uhr

Encoding.GetBytes(string s)

06.12.2008 - 01:35 Uhr

Für was benötigst du denn die Daten in der Datei? Wäre es nicht vieleicht auch möglich, unterschiedliche Dateien zu verwenden?

Denn wenn du einfach blind in eine Textdatei schreibst, auch wenn es nicht zu Kollisionen beim Zugriff kommt, wird es zu Datenverlust kommen.

Also entweder verschiedene Dateien verwenden, oder auf dem Server ein Service laufen lassen, der das schreiben übernimmt, nach dem Prinzip, dass das erste was reinkommt, auch als erstes geschrieben wird.