|
|
|
|
MAN WEIß ES NICH! ES IS DOCH VERPIXELT!!!
|
|
|
|
|
|
|
Meine Weisheitszaehne sind verdammt scharf
|
|
|
|
|
|
|
Ich habe keine mehr
Davon mal abgesehen... warum flirtet die Kellnerin des Cafes gegenüber so heftig mit mir? *shudder*
Ich mag keinen Frauen mit mehr Kosmetik im Gesicht als Masse im Schädel
|
|
|
|
|
|
|
Es gibt doch nichts schöneres als Solitär während der Compilerbau-Vorlesung
|
|
|
|
|
|
|
Spider Solitär mit 4 Farben und ich bin die nächsten 20 Minuten beschäftigt. Gute Idee!
|
|
|
|
|
|
|
Solitär.... bringt mich nicht auf dumme Ideen, ich bastel grade ziemlich lustlos an einem Vortrag für Montag.
|
|
|
|
|
|
|
Und ich überlege mir wie ich einen Recruiter Headhunter für meine Person interessieren kann...
Vielleicht sollte ich ihn ganz plump zum Lunch einladen während meines Aufenthaltes in Nottingham
Wie gesagt, bisher habe ich (fast) jeden Job gekriegt wenn ich es zu einem "Face to Face" Meeting geschafft habe
/edit: Weil es so viel cooler ist
|
[Dieser Beitrag wurde 1 mal editiert; zum letzten Mal von Strider am 12.06.2009 12:05]
|
|
|
|
|
|
Und der Thread braucht einen neuen Titel: Brainhuntersalat
/edit:
/edit2:
Also ich an Deiner Stelle würde das Directory Listing abstellen
|
[Dieser Beitrag wurde 2 mal editiert; zum letzten Mal von Strider am 12.06.2009 12:26]
|
|
|
|
|
|
Gutes Wetter macht gute Laune
|
|
|
|
|
|
|
| Zitat von Strider
Und ich überlege mir wie ich einen Recruiter Headhunter für meine Person interessieren kann...
Vielleicht sollte ich ihn ganz plump zum Lunch einladen während meines Aufenthaltes in Nottingham
Wie gesagt, bisher habe ich (fast) jeden Job gekriegt wenn ich es zu einem "Face to Face" Meeting geschafft habe
/edit: Weil es so viel cooler ist
| |
Nur, dass du selbst bei diesen Meetings nicht festgestellt hast, dass dein zukünftiger Chef inkompatibel mit dir ist.
Ich glaub auch, dass mich vorgestern meine neue Bankering angegraben hat; Hab ich das richtig verstanden, dass sie ledig sind?
Ok, dass war notwendig für das Formular, aber ich sah an dem Tag auch wirklich gut aus
|
|
|
|
|
|
|
Wie kann man auch innerhalb des initialen Meetings feststellen ob man kompatibel ist...
Solche diffizilen Inkompatibilitäten kommen erst im Job auf wenn es darum geht Projekte zu stemmen. Und wenn das schwierig wird oder gar schief geht zeigt sich erst der wahre Charakter eines Menschen.
Man kann ja nicht beim Vorstellungsgespräch Saufspielchen veranstalten um mittels "Vino Veritas" dem Chef auf den Zahn zu fühlen
/edit: Du hast natürlich Recht, wer einen Job annimmt der von einem Headhunter vermittelt wurde hat keine Möglichkeit einen "ersten Blick" auf den zukünftigen Chef zu werfen.
Allerdings kann man ja vereinbaren den Chef/Vorgesetzten kennen zu lernen um eben frappanten Inkompatibilitäten vorzubeugen.
|
[Dieser Beitrag wurde 1 mal editiert; zum letzten Mal von Strider am 12.06.2009 13:10]
|
|
|
|
|
|
Kann mir mal wer mit C# helfen?
Ich habe hier eine Tool-Klasse die bisher wunderbar funktionierte. Nun allerdings kriege ich eine NullReferenceException
|
Code: |
using System;
using System.Collections.Generic;
using System.Text;
namespace tld.domain.Tools
{
public class TriggerQueue<T> : Queue<T>
{
/// <summary>
/// ItemEnqueued
/// </summary>
/// <param name="sender">sender</param>
public delegate void ItemEnqueuedHandler(object sender);
/// <summary>
/// ItemDequeued
/// </summary>
/// <param name="sender">sender</param>
public delegate void ItemDequeuedHandler(object sender);
/// <summary>
/// Triggered when the queue count reached EnqueueTriggerLimit
/// </summary>
public event ItemEnqueuedHandler ItemEnqueued;
/// <summary>
/// Triggered when an item gets dequeued
/// </summary>
public event ItemDequeuedHandler ItemDequeued;
private int enqueueTriggerLimit = 1;
/// <summary>
/// Queue lenght limit used to determine when the ItemEnqueue event fires
/// </summary>
public int EnqueueTriggerLimit { get; set; }
/// <summary>
/// Default constructor
/// </summary>
public TriggerQueue() : base() { }
/// <summary>
/// Default constructor
/// </summary>
/// <param name="enqueTrigger">Limit at which the event ItemEnqueued fires</param>
public TriggerQueue(int enqueTrigger) : base() { this.enqueueTriggerLimit = enqueTrigger; }
public new void Enqueue(T item)
{
// Enqueue the object into the base queue
base.Enqueue(item);
// Trigger the event if we reached the limit
if (Count == EnqueueTriggerLimit)
ItemEnqueued(this);
}
//public new T Dequeue()
//{
// ItemDequeued(this);
// return base.Dequeue();
//}
}
}
|
|
Im Abschnitt
|
Code: |
// Trigger the event if we reached the limit
if (Count == EnqueueTriggerLimit)
ItemEnqueued(this);
|
|
bei ItemEnqueued(this) kriege ich die NullReferenceException (ItemEnqueued==null). Und ich habe keine Ahnung warum, diese Klasse funktionierte bisher wunderbar
|
[Dieser Beitrag wurde 1 mal editiert; zum letzten Mal von Strider am 12.06.2009 13:17]
|
|
|
|
|
|
EventHandler immer vor dem Aufruf auf "null" prüfen. Wenn kein Event-Handler angebunden ist, ist dieser auch null.
|
Code: |
EventHandler tempHandler = this.EventHandlerName;
if (null != tempHandler)
{
tempHandler(this, e);
}
|
|
|
|
|
|
|
|
|
Übrigens, "new" ist immer böse. Auch wenn ich verstehe, was du da machen möchtest. Für eigene Ereignishandler sollte man eigentlich von EventArgs ableiten und diese über den genersichen EventHandler<TEventArgs> bereitstellen.
Ist keine persönliche Meinung von mir, sondern Teil der Code-Analyse.
|
|
|
|
|
|
|
Ich würde dir übrigens empfehlen, die Klasse so zu implementieren, dass die intern eine Queue<T> verwendet, du aber nicht davon ableitest.
Da du bei einem Downcast von TriggerQueue<T> auf Queue<T> (was der Vorteil der Ableitung ist) nämlich beim Aufruf von Enqueue(T) nur die Basis-Methode aufrufst und nicht die überschriebene.
|
|
|
|
|
|
|
|
|
|
|
Danke für die Anregungen; ich bin gerade beim Refactoring des Codes des letzten Quartals und werde jetzt eine "proper Implementation" machen
|
|
|
|
|
|
|
| Zitat von Strider
Danke für die Anregungen; ich bin gerade beim Refactoring des Codes des letzten Quartals und werde jetzt eine "proper Implementation" machen
| |
Sachen besser machen, macht einfach Spaß. Aber nur, wenn man Sachen von anderen verbessern darf, das gibt einem so ein tolles Gefühl der Überlegenheit
Du könntest auch einfach FxCop bzw. die Code-Analyse der Team-Edition (falls vorhanden) nutzen, die hat mir schon ein paar Mal die Augen geöffnet.
|
|
|
|
|
|
|
|
|
|
|
Wir haben hier "nur" Professional; was imo schon ganz nett ist weil mit VS2008 auch Unit Testing in die IDE Einzug gehalten hat.
Naja, ich glaub ich mache jetzt Feierabend und gehe mich in aller Ruhe über den Idioten totlachen, der es geschafft hat seinen Rechner regelrecht tot zu schlagen
Er hat seinem Rechner einen "liebevollen Klapps" gegeben als dieser eingefroren ist vor lauter Viren. Das Resultat kann sich sehen lassen: Eine enorme Beule im Seitenteil der Verkleidung und sämtliche Anschlüsse der Festplatte wurden heraus gebrochen
/edit: Bevor jemand fragt: Natürlich waren höchst wichtige Dokumente auf der Platte
|
[Dieser Beitrag wurde 1 mal editiert; zum letzten Mal von Strider am 12.06.2009 14:27]
|
|
|
|
|
|
|
Code: |
using System;
using System.Collections.Generic;
using System.Text;
namespace tld.domain.Tools
{
public class GenericTriggerQueue<T>
{
/// <summary>
/// Queue holding our objects of type T
/// </summary>
private Queue<T> queue = new Queue<T>();
/// <summary>
///
/// </summary>
public int QueueLimit { get; set; }
public delegate void OnQueueLimitReachedEventHandler(object sender, EventArgs e);
public event OnQueueLimitReachedEventHandler QueueLimitReached;
public GenericTriggerQueue(int queueLimit)
{
QueueLimit = queueLimit;
}
public int Count { get { return queue.Count; } }
/// <summary>
/// Enqueues an item
/// </summary>
/// <param name="item">Item to be enqueued</param>
public void Enqueue(T item)
{
// Lock the queue for purposes of correctness
lock(queue)
{
// Enque the item
queue.Enqueue(item);
// Check for the limit
if (queue.Count == QueueLimit)
// And fire the event
this.QueueLimitReached(this, null);
}
}
/// <summary>
/// Dequeues an item from the queue
/// </summary>
/// <returns>Item of type T</returns>
public T Dequeue()
{
return queue.Dequeue();
}
}
} |
|
Booo... Sieht irgendwie primitiv aus
|
[Dieser Beitrag wurde 2 mal editiert; zum letzten Mal von Strider am 12.06.2009 14:56]
|
|
|
|
|
|
Gegenvorschlag:
|
Code: |
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace QueueImplementation
{
class Program
{
static void Main(string[] args)
{
ObservableQueue<int> queue = new ObservableQueue<int>(10);
queue.LimitReached += delegate(object sender, EventArgs e)
{
Console.WriteLine("Queue limit reached.");
};
queue.ItemEnqueued += delegate(object sender, ItemEventArgs<int> e)
{
Console.WriteLine("Item {0} enqueued", e.Item);
};
queue.ItemDequeued += delegate(object sender, ItemEventArgs<int> e)
{
Console.WriteLine("Item {0} dqueued", e.Item);
};
Random random = new Random();
for (int i = 0; i < 15; i++)
{
queue.Enqueue(random.Next(100));
}
Console.ReadLine();
}
}
public class ItemEventArgs<T>
: EventArgs
{
public ItemEventArgs(T item)
{
this.Item = item;
}
public T Item { get; private set; }
}
public class ObservableQueue<T>
{
private Queue<T> queue = new Queue<T>();
public ObservableQueue(int limit)
{
if (0 >= limit)
{
throw new ArgumentOutOfRangeException("limit");
}
this.Limit = limit;
}
public event EventHandler LimitReached;
public event EventHandler<ItemEventArgs<T>> ItemEnqueued;
public event EventHandler<ItemEventArgs<T>> ItemDequeued;
public int Limit { get; private set; }
public int Count
{
get
{
return this.queue.Count;
}
}
public void Enqueue(T item)
{
lock (this.queue)
{
if (this.Count > this.Limit)
{
this.OnLimitReached(EventArgs.Empty);
}
this.queue.Enqueue(item);
this.OnItemEnqueued(new ItemEventArgs<T>(item));
}
}
public T Dequeue()
{
T item = this.queue.Dequeue();
this.OnItemDequeued(new ItemEventArgs<T>(item));
return item;
}
protected virtual void OnLimitReached(EventArgs e)
{
EventHandler tempHandler = this.LimitReached;
if (null != tempHandler)
{
tempHandler(this, e);
}
}
protected virtual void OnItemEnqueued( ItemEventArgs<T> e)
{
EventHandler<ItemEventArgs<T>> tempHandler = this.ItemEnqueued;
if (null != tempHandler)
{
tempHandler(this, e);
}
}
protected virtual void OnItemDequeued(ItemEventArgs<T> e)
{
EventHandler<ItemEventArgs<T>> tempHandler = this.ItemDequeued;
if (null != tempHandler)
{
tempHandler(this, e);
}
}
}
}
|
|
Beispielprogramm ist dabei
|
[Dieser Beitrag wurde 1 mal editiert; zum letzten Mal von [DK]Peacemaker am 12.06.2009 15:21]
|
|
|
|
|
|
Kann jemand etwas zum Sophos Virenscanner im Vergleich zu kostenfreien Alternativen sagen?
Hab grad gesehen, dass Mitarbeiter der Uni die Lizenz gratis bekommen.
Laut Testberichten scheint der aber nicht sooo doll zu sein
|
|
|
|
|
|
|
Virenscanner...
|
|
|
|
|
|
|
Denken Sie doch mal an die Synergie-Effekte, die Sie mit einer White-Label-Loesung dank unserer Thrift-Api erzielen koennten.
|
|
|
|
|
|
|
Das kauf ich Dave Grohl sofort ab!
Wobei die Ähnlichkeit schon mal stärker war
|
|
|
|
|
|
|
Ich frag mich noch immer, wie alle auf Dave Grohl kommen :/
|
|
|
|
|
|
|
ABI 09! \o/ Ich besoffenes sTück1
|
|
|
|
|
|
|
Gutes Wetter macht verstrahlte Gesichter
|
[Dieser Beitrag wurde 1 mal editiert; zum letzten Mal von Strider am 12.06.2009 19:34]
|
|
|
|
|
|
| Zitat von SkunkyVillage
ABI 09! \o/ Ich besoffenes sTück1
| |
!!!!!!!!!!!!!!!!!!! <3
|
|
|
|
|
|
Thema: Gehirnsalat ( wir unter uns ) |