Laden...

Forenbeiträge von GMLOD Ingesamt 1.200 Beiträge

08.02.2009 - 12:36 Uhr

Ist ja ok, wenn du durch die Implementierung deiner Algorithmen lernen willst. Aber denke dran, dass du, wenn du ein Produkt erstellen willst, besser auf Array.Sort zurückgreifst.

08.02.2009 - 12:29 Uhr

Den jüngsten Eintrag bekommst du mit der max Funktion:

select max(date_column) from tbl;
08.02.2009 - 12:28 Uhr
select min(date_column) from tbl;
  1. Um die Anzal der Reihen zu bekommen:
select count(*) from tbl where ...
08.02.2009 - 12:24 Uhr

Du kannst auch auf die Methode eine Einschränkung setzen:

public static void BubbleSort<typ>(typ[] feld) where typ : IComparable
{
     //code
}
06.02.2009 - 09:33 Uhr

Warum dann nicht eine List<KeyValuePair<string,string>> nehmen? Spielt Performance eine derart große Rolle?

06.02.2009 - 08:59 Uhr

Das Problem ist dein Comparer. Der weiss nämlich nicht, wann ein Item "kleiner" ist. Du brauchst auch gar kein SortedDictionary - wozu auch - du willst alles ja in der ursprünglichen Reihenfolge. Ausserdem hast du ja keinerlei richtiges Sortierkriterium, das was du machst, ist ja so nicht beschreibbar.

Worauf willst du hinaus? Für dich tut es doch auch ein normales Dictionary.

05.02.2009 - 20:00 Uhr

Achso. Ich mach nur Trinksport. Golf wird überbewertet.

05.02.2009 - 17:58 Uhr

Hatte mal einen im Flight ( hoch/mittel/Tief), der sagte "Einen einstelligen Programmierer
würde er niemals einstellen.
Der würde ja neben der arbeit auch noch Zeit fürs Golfen haben."

Was ist bitte ein "einstelliger" Programmierer?

BTW: Es gibt von Microsoft eine Elite-Zertifizierung zum Architect, aber die bekommt man nur durch die Einladung eines Mentors, der selber dieses Zertifikat hat.

05.02.2009 - 16:29 Uhr

Da finde ich es wesentlich einfacher zu lesen:

insert into tbl a 
select * from tbl2 b 
where not exists 
( 
select 1 from tbl a
where a.Schlüsselkriterium1 = b.Schlüsselkriterium1
and     a.Schlüsselkriterium2 = b.Schlüsselkriterium2
-- asf.
)
05.02.2009 - 10:23 Uhr
using System;
using System.Reflection;

[assembly: AssemblyTitle("C#")]
[assembly: AssemblyDescription("C# Language")]

namespace AttributeExample
{
public class Program
{
public static void Main()
{
Assembly SampleAssembly = Assembly.Load(Assembly.GetExecutingAssembly().Full Name);

foreach (Attribute a in SampleAssembly.GetCustomAttributes(true))
{
if (a is AssemblyTitleAttribute)
Console.WriteLine("Assembly Title: " + (a as AssemblyTitleAttribute).Title);

if (a is AssemblyDescriptionAttribute)
Console.WriteLine("Assembly Description: " + (a as AssemblyDescriptionAttribute).Description);
}
}
}
}

Quelle: http://bytes.com/groups/net-c/276704-how-read-assemblyinfo-cs

Du willst das AssemblyProductAttribute auslesen.

05.02.2009 - 09:00 Uhr

Ich denke, ein PropertyGrid wäre hier besser geeignet, bei der Form, die du anstrebst.

Dafür musst du natürlich eine Klasse haben, die diese Properties besitzt. Sowas ist doch aber schnell gebaut.

05.02.2009 - 08:37 Uhr

Ich kenne den SQLServer nicht, aber unter Oracle würdest du bei so einem Trigger vermutlich eine Mutating Tables Exception bekommen.

Ausserdem ist bei vielen Datensätzen (not) exists gegenüber (not) in vorzuziehen, das ist in der Regel wesentlich schneller. Im Regelfall kann hier von Indizes besser Gebrauch gemacht werden. In schlägt exists von der Performance her eigentlich nur bei kleinen Listen, aber nicht bei großen subselects.

04.02.2009 - 08:50 Uhr

Ich persönlich kann diese Variante gar nicht leiden. Meines Erachtens ist diese Methode unnötig kompliziert geschrieben. Die Fehlerbehandlung sollte nicht über ErrorCodes im Caller gemacht werden, sondern direkt im try-catch Block. Viele Return-Statements machen den Code meines Erachtens schwer zu lesen und der Caller muss auch wissen, was die Magic Values die du da zurücklieferst eigentlich bedeuten.

Genaugenommen würde ich hier die meiste Fehlerbehandlung gar nicht in der Methode selbst machen, sondern eher im (geschäftslogischen) Kontext, in dem die Exception auftritt und in dieser Methode gar nicht abfangen.

Just my 2 cents.

04.02.2009 - 08:25 Uhr

huhu,

hmm, irgendwie etwas dünne Doku^^ Aber ich denke dass eine Constraint immer so arbeitet wie man es von Constrints z.B. am SQL Server erwartet: Sie werfen eine Exception wenn etwas nicht passt. Leider fehlt eben in der MSDN hier der Verweis, ob und welche Exceptions geworfen werden.

[..]

ok, MassDownloader nehmen, ForeignKeyConstraint.cs angucken:

throw ExceptionBuilder.ForeignKeyViolation(..)  

😃

Xynratron

Danke für den Hinweis! Werde mir die Sources mal angucken. Habe ich gestern auch schon übers VS versucht, aber irgendwie wollte das nicht so ganz klappen. Jetzt probier ichs nochmal mit dem NetMassDownloader.

03.02.2009 - 20:22 Uhr

Hallo,

weiss jemand, was man tun muss, wenn man eigene Constraints, abgeleitet von System.Data.Constraint, erstellen will?

Irgendwie gibt es da nur eine Methode namens CheckStateForProperty, die aber void zurückliefert. Wie implementiert man da einen eigenen Constraint?

02.02.2009 - 15:23 Uhr

Und wo liegt nun das Problem? Between ist doch sehr einfach zu benutzen. Zeig doch mal deine bisherigen Versuche.

02.02.2009 - 15:17 Uhr

Du arbeitest wohl mit DataSets/DataTables, oder?

Ruf beim Verlassen ohne zu Speichern für die entsprechende DataRow mal die RejectChanges Methode auf. Wenn das nicht funktioniert, musst du wohl manuell den Start zurücksetzen.

02.02.2009 - 15:01 Uhr

Das ist gar nicht toll, meines Erachtens. Baue eine ChatKomponente, kapsele darin deine Chatklasse und den Thread, instanziiere beim Connect eines Clients diese Komponente und starte sie, vergiss aber nicht sie vom Server in irgendeiner Liste abzulegen. Die Chatklasse sollte auch eine Referenz auf den Server enthalten.

Den Broadcast selber würde ich über ein Eventsystem steuern, also der Server wirft den Broadcast Event und die Chatklassen können diesen abbonieren.

Fraglich ist auch, ob so viele Threads gut sind. Ich würde lieber einen custom ThreadPool verwenden, wie du ihn bei codeproject findest.

02.02.2009 - 14:39 Uhr

Halte dir doch lieber die ChatKlassen oder die Sockets in einem Array anstatt den Threads?

Oder wieso baust du keine Komponente, die sowohl den Thread als auch die ChatKlasse beinhaltet?

02.02.2009 - 10:12 Uhr

WCF wäre durchaus eine Option. Hier könntest du die Geschäftslogik einheitlich für beide Frontends in einer Service Schicht realisieren.

Zudem würden dann Anpassungen an der Logik nicht zwangsweise ein neues Deployment des Desktop-Clients erfordern.

Ein weiterer Vorteil wäre auch, dass sich die Authentifizierung besser handhaben lässt.

Ein Nachteil ist allerdings, dass du dir unter Umständen ein Bottleneck schaffen kannst. Ob du das einsetzt, hängt also auch von der verfügbaren Infrastruktur ab.

Eine Geschäftslogik programmieren und dann das jeweilige Frontend ändern?

Grundsätzlich sollte die Geschäftslogik IMMER unabhängig vom UI sein. Wenn du einen Fat Client für den Desktop willst, wirst du aber wahrscheinlich stellenweise nicht drumrum kommen, auch einen Teil der Geschäftslogik dort abzulegen.

02.02.2009 - 09:34 Uhr

Hallo, benutzte folgende Funktionen aus der WinAPI:

NotifyIpInterfaceChange oder NotifyAddrChange

Diese findest du in der Iphlpapi.dll.

Edit:
Achso, du willst feststellen, wann der DHCP Server das macht. Ich denke, dafür müsstest du mit einem "promiscuous" Interface einfach allen Traffic abhören und auf die entsprechenden Pakete reagieren. Näheres dazu in der Spec: http://www.ietf.org/rfc/rfc2131.txt

02.02.2009 - 08:59 Uhr

... also seit nicht enttäuscht wenn noch nicht so viel da ist
Keine Angst!
>
ist ein Ansatz, der schon Linux erfolgreich gemacht hat.

herbivore){gray}

... und den den Ruf von Netscape ruiniert hat.

01.02.2009 - 14:22 Uhr

Nur mal so als Frage, wie kann der Rennwagen 100% Grip haben, was ja schon das Maximum darstellt, und der Jeep 300%? Dann doch eher

Jeep 100%
Rennwagen 100/3 %

Damit sollen ja nur Verhältnisse ausgedrückt werden, wobei der Rennwagen halt die Referenzwerte hat.

31.01.2009 - 17:03 Uhr

Rein subjektiv kommen mir die Ergebnisse meiner Suchanfragen bei Google besser vor. Habe ich mich nun schon so an die Suchmaschine angepasst, dass ich mit den anderen nicht mehr optimal umgehen kann oder ist Google einfach so viel besser? Ich mein, msn kann man ja z.B. total vergessen

31.01.2009 - 16:27 Uhr

Danke, [Gott/Satan/Buddha/Shiva/Ganesh/Konfuzius/Flying Spaghetti Monster/Xena/Alien Invaders/other]

31.01.2009 - 16:19 Uhr

http://www.youtube.com/watch?v=s5ul6iz_lCU

Wie das wohl zustande gekommen ist? Fehler beim Deployment? Wurde ein falscher Query abgesetzt? Was meint ihr?

31.01.2009 - 16:15 Uhr

ZOMG! GOOGLE FUNKTIONIERT NICHT MEHR!

DAS ENDE IST NAH!

30.01.2009 - 11:51 Uhr

Was macht ihr denn genau? Welche Features hat die Software? Welche Zielgruppe habt ihr? Welche Arten von Projekten kann man damit managen? Unterstützt ihr oder haltet ihr euch an Projektmanagement Standards wie PMBOK?

28.01.2009 - 17:10 Uhr

Gut, ich kenne MVVM nicht, und er will mit WPF ran.

Ich habe mir darüber noch keine detaillierten Gedanken gemacht, finde aber, dass man prinzipiell nicht auf WPF angewiesen sein sollte, sondern auch einfach zwischen graphischen Frontends switchen können sollte, deswegen wäre ich gedanklich erstmal so naiv an die Sache rangegangen, das würde auch prinzipiell funktionieren.

28.01.2009 - 11:39 Uhr

Erstmal vorneweg: Threads halte ich für nicht so wichtig.

Die Logik vom GUI abzutrennen ist nicht besonders schwer. Am einfachsten wäre, "abstrakte" Logikklassen zu erstellen (Spiel, Spielfeld, Spieler, Einheit etc.) und dann GUI-Komponenten zu erstellen welche die jeweilige Logik-Klasse kapseln. Es sollte auch ein EventSystem geben, das es den einzelnen Bausteinen ermöglicht miteinander zu kommunizieren.

Dann brauchst du natürlich ein Grundgerüst, welches das "abstrakte" Spiel ablaufen lässt, also die Moves ausführt und zeichnet, weswegen du hier noch eine Schnittstelle einführen solltest, welche den Renderer repräsentiert.

Der Renderer nimmt dann deine Spielklasse, kapselt in seinem Subsystem die entsprechenden GUI-Klassen und stellt alles wie gewünscht dar. Für das RendererSubsystem und die Instanziierung der einzelnen GUI-Komponenten würde sich das Abstract Factory pattern anbieten.

28.01.2009 - 09:14 Uhr

Ich halte die Kündigung allein deswegen für übertrieben.

27.01.2009 - 21:31 Uhr

DON'T WORRY

27.01.2009 - 21:28 Uhr

.

25.01.2009 - 15:23 Uhr

Hrhr, Ich hätte irgendwie schon Lust da mitzuwirken.

Darf ich mal probeweise mitmachen?

25.01.2009 - 15:07 Uhr

Zeig mal mehr Code und auch den ConnectionString.

25.01.2009 - 14:40 Uhr

Ah, du hast da ja noch mehr geschrieben. Das hab ich gestern Nacht nicht mehr gecheckt.

Mein Laptop besitzt die FireGL V5000 Mobility. Diese bereitet mir immer wieder Kopfzerbrechen und hat mich schon ein paar Tagen gekostet. Da die GraKa unter Linux nur mit dem fglrx-Driver einiger Maßen stabil läuft 😉 Wie sieht das unter BSD aus?

Zu deiner Grafikkarte im Notebook kann ich leider nichts sagen, da ich selbst mit den ATI Treibern unter FreeBSD noch nie viel am Hut hatte. Allerdings muss ich dir sagen, dass die Hardware-Unterstützung eher mau ist. Will sagen, wenn du unter Linux keinen passenden Treiber hattest, findest du ihn unter FreeBSD wahrscheinlich erst recht nicht.

Die Priorität der Hardwareunterstüztung wird hier eher auf infrastrukturelle Dinge (z.B. Disk oder Raidcontroller) gelegt, Multimedia ist eher sekundär und nicht selten müssen die Standardtreiber herhalten. Wenn einem Multimedia wichtig ist, sollte man eher die Finger von FreeBSD lassen. Spielenswerte Spiele gibt es ohnehin kaum für diese Plattform.

Ich benutze auf meiner Workstation Outlook. Gibt es eine Möglichkeit die Kontakte sowie den Kalender zu synchronisieren? Welche Möglichkeiten gibt es, wenn als Fenstermanager KDE zum Einsatz kommen soll.

Da kann ich dir leider auch nicht weiterhelfen. Ich betreibe nur einige Fileserver mit Verschlüsselung auf Dateisystem-Ebene, auf deren Einrichtung und Absicherung beschränkt sich mein Wissen.

25.01.2009 - 03:20 Uhr

@Siassei
Ich bin einfach ein FreeBSD Fanboi.

25.01.2009 - 03:18 Uhr

Meiner Erfahrung nach besteht das Problem nicht in Gier sondern in mangelndem Wissen. Mal Hand hoch: Wer kennt Methoden zur Aufwandsschätzung von Softwareentwicklung? Fragt das mal eure Manager die von euch Aufwandsschätzungen haben wollen (oder analog: "Was kostet es?"). Gebt mal als Antwort: Mit welcher Methode soll ich schätzen und mit welcher Wahrscheinlichkeit soll das Ergebnis behaftet sein?

Jetzt mal ohne Scheiss: Ich schätz das fast 100% akkurat. Zumindest in dem 2 Mann Team, in dem ich seit einer Weile bin.

EDIT: Muss noch dazu sagen: Ich plan aber auch in Tagen. Da ist das natürlich keine Kunst.

24.01.2009 - 17:18 Uhr

Wenn du dich mit unixoiden Betriebsystemen beschäftigen willst, rate ich dir, dich erstmal durch BSD zu kämpfen (die BSD Handbücher sind hervorragend). Ausserdem kommt nicht so viel Müll mit "Out of the box", wie das z.B. bei den meisten Linux Distros der Fall ist. Du hast nur auf der Maschine, was du auch wirklich brauchst/haben willst.

FreeBSD ist um einiges aufgeräumter als die meisten Linux Distros, da wirst du viel lernen, was dir später bei anderen unixoiden Systemen weiterhilft.

Zunächst würde ich einen eigenen Kernel bauen und mich dann mit dem Package-Management vertraut machen, das ist eigentlich recht einfach. Ich rate dir auch mal was selber zu kompilieren, im Allgemeinen reichen aber die Binary Packages völlig aus.

Wenn du nicht auf Klicki-Bunti stehst und ein cooles Terminal haben willst, dann installier die aterm oder eterm und pass die an. Die kannst du z.B. transparent machen und so. Das sieht dann schon cool aus.

Ausserdem willst du sicher deine Shell anpassen, hier würde ich zu einer ksh oder bash raten. Die Einstellungen für deine Shell findest du in deinem Home Verzeichnis (~) als dotfile (.kshrc z.B.).

Gentoo Rant:
Gentoo hat meiner Ansicht nach von Anfang an auf die vollkommen falsche Philosophie gesetzt. Die Optimierungen die Gentoo versprach kosteten oft Stunden anstatt (Milli-)Sekunden zu bringen. Deswegen wurden die Stages wohl auch teilweise abgeschafft. Die Portage war ohnehin nur eine Kopie der FreeBSD Ports Collection und das einzige, was Gentoo aus der Masse herausstechen lies, eben durch das sauberste Paketmanagement.

24.01.2009 - 13:02 Uhr

Karneval mag ich nicht, aber Themenparties mit Verkleiden sind cool.

23.01.2009 - 18:24 Uhr

Probier doch mal FreeBSD aus. Da lernst du wahres POSIX kennen.

Zum Lernen bist du bei Ubuntu schon richtig. Wenn du damit gut klarkommst, dann probier doch mal Debian, das ist eh der Unterbau von Ubuntu.

23.01.2009 - 09:53 Uhr

Wie ist das an meinem gegenwärtigen Projekt?

Siehe Coding Styles Horror

Noch Fragen?

Wie gehe ich damit um? Es ist frustrierend. Refactoring ist nicht möglich, da man, wenn man einen kleinen Teil verändern und besser strukturieren will, fast so gut wie alles andere bricht. Würde man iterativ vorgehen, bräuchte man sicher genau so lange um das Ding auf Vordermann zu bekommen, wie die Entwicklung insgesamt bisher gedauert hat.

Neu schreiben ist auch unmöglich, da einfach in der Flut der Mini CRs nicht genug Zeit ist, sich darauf einzulassen.

Zum Glück hab ich das bald hinter mir.

22.01.2009 - 11:55 Uhr

Hmm, da der SQLServer kein connect by kennt, würde ich einfach alle Datensätze in DataTables laden und dann die TreeView im Client füllen.

Das wäre doch nicht besonders schwer.

16.01.2009 - 11:39 Uhr

Habe in meinem Dell-Notebook eine wohl schwächere GeForce 8400M. Viele Spiele laufen ohne Probleme (z.B. Warhammer, Age of Reckoning) und sehr flüssig, allerdings nicht mit dem Dell Treiber.

Hier gibts die guten Treiber: http://www.laptopvideo2go.com/

16.01.2009 - 09:15 Uhr

Ich denke du musst den Timer stoppen und dann wieder starten. Entsprechende Methoden sind ja vorhanden.

16.01.2009 - 08:59 Uhr

WCF mit .NET 2.0 wird schwierig...

13.01.2009 - 23:44 Uhr

Ist ja nett, dass ihr mir diesen Tipp in die Schuhe schieben wollt, der stammt aber von kleines_eichhoernchen.

13.01.2009 - 17:40 Uhr

Oder mal c# eval codeproject googlen. (z.B. http://www.codeproject.com/KB/dotnet/Expr.aspx)

Da gibts zig Möglichkeiten, obwohl man mit vielen bestimmt mit Kanonen auf Spatzen schiesst.

13.01.2009 - 17:21 Uhr
textBox4.Text = d.ToString("deinformat")

Liste aller Formate: http://alexonasp.net/samples/stringformatting/

13.01.2009 - 15:06 Uhr

Siehe Anhang