Laden...

Forenbeiträge von t2t Ingesamt 415 Beiträge

26.07.2012 - 17:05 Uhr

Zu 1. kannst du den im Event mitgelieferten ColumnIndex als Entscheidungskriterium nutzen, wie du rundest (In Spalte 1 3 Stellen; in Spalte 2 2 Stellen, etc). Den zweiten Punkt hab ich nicht ganz verstanden.

26.07.2012 - 16:44 Uhr

CellFormatting Event abonnieren und die Rundung des Wertes nach deinen Wünschen vornehmen mit Math.Round()

17.07.2012 - 17:52 Uhr

Ah, gut zu wissen. Danke für die Info.

17.07.2012 - 15:18 Uhr

Wir haben den Fehler nun gefunden. Eine der Tabellen war ausversehen im InnoDB Schema, alle übrigen im MyISAM. Anscheinend hat die MySQL Version 5.5 da eine Anfälligkeit / Bug.

17.07.2012 - 12:50 Uhr

verwendetes Datenbanksystem: MySQL

Hallo,

aus Perfomance Gründen haben wir in der Firma einen Wechsel auf einen neueren Webserver vorgenommen. Ubuntu System, 4x2,8 GHz, 8 GB RAM. Auf diesem System läuft ein Apache und ein MySQL. Genutzt wird es für eine PHP + MySQL Anwendung. Wir sind natürlich davon ausgegangen, dass diese Maschine einen deutlichen Perfomance Schub gegenüber der alten Celeron Kiste mitbringt. Aber das Gegenteil ist der Fall. Das neue System ist um den Faktor 2-3 langsamer. Nach einigen Benchmarks sind wir der Überzeugung, dass die MySQL Datenbank das Problem ist. Diese ist deutlich langsamer als unsere Vergleichsysteme.

Dabei wurde schon einiges probiert. Die Config wurde an dieselben Werte des alten Webservers angepasst. Buffergrößen erweitert. Query Cache angeschaltet. Nix.
Ebenso das Logging mal auf slow-queries angeschaltet. Kein Ergebnis. Auch das komplette An- und Ausschalten des Loggings ergibt keine neuen Erkenntnisse.

Hat jemand noch Anhaltspunkte wo man was verändern könnte? Mir reichen Brainstorming Ideen wo man ansetzen könnte, da wir so langsam mit unserem Latein am Ende sind.

Danke schonmal!

13.07.2012 - 14:14 Uhr

Ich nutze Google Drive. Ist schön mit meinem Android Handy kombinierbar und ich hab auch jederzeit von überall mit dem Browser Zugriff auf meine Daten. Bin damit sehr zufrieden.

11.07.2012 - 11:49 Uhr

Um einen Fortschritt sichtbar zu machen könntest du zuerst die Anzahl aller Ordner ermitteln und im Anschluss die Dateiensuche durchlaufen. Jedesmal, wenn du einen Ordner abgearbeitet hast, kannst du die Prozessbar um einen Schritt erhöhen.

02.07.2012 - 18:53 Uhr

Wie FZelle schon meinte, musst du natürlich alle Fremd-DLLs mitliefern. Das geht mit VS recht einfach, indem du auf deinen Verweis klickst und bei den Verweiseigenschaften "Lokale Kopie" auf true setzt. Dann wird beim Build die entsprechende DLL mit ins Release Verzeichnis kopiert.

25.06.2012 - 12:25 Uhr

Ich werde mal konkreter und tippe auf einen Sieg mit mindestens zwei Toren unterschied gegen Italien.

20.06.2012 - 10:24 Uhr

var histogram = names
                .GroupBy(n => n)
                .OrderByDescending(grp => grp.Count())
                .Select(grp => new
                {
                    Name = grp.Key,
                    Anzahl = grp.Count()
                }).FirstOrDefault();

            Console.WriteLine("{0}", histogram.Anzahl);

20.06.2012 - 10:15 Uhr

Ich bereite dich schon mal vor, das ist ne Grundlagenfrage, die hier nicht gern gesehen wird. Dennoch: Solltest du gfoidl's Vorschlag genommen haben und die Methode nun in deiner Klasse steht. Dann kannst du einfach deine List<String> Namen an die Methode übergeben:


WriteHistogram(Namen);

wenn eine Linq Anweisung durchlaufen wurde steht - in deinem Fall - in der Variable


var NamenAnzahl

bereits das Ergebnis der Query und kann beispielsweise in einer Schleife o.ä. verarbeitet werden.

Abt war etwas schneller

19.06.2012 - 16:41 Uhr

Und mit dem Take-Statement kannst du gfoidl's Lösung auf ein einziges Result begrenzen.

12.06.2012 - 14:09 Uhr

Wieso machst du dein privates "net" nicht einfach per Property zugänglich und veränderst dieses dann von außen?

08.06.2012 - 13:20 Uhr

Elfmeterschießen ist aber immer noch fairer als die Münzentscheidung welche es früher gab.

Und deutlich spannender ;o)

08.06.2012 - 09:49 Uhr

Ich hab meine Stimme der deutschen Mannschaft gegeben. In den Medien gibt es zwar einiges an Skepsis, aufgrund der durchwachsenen Vorbereitung. Allerdings denke ich, dass wenn die Mannschaft wieder in den Spielfluss der EM-Quali kommt der Titel nur die logische Konsequenz ist.

Ich als großer Fußball Fan drücke ihnen ganz fest die Daumen!

Und als leidgeprüfter HSV Fan, wäre die Freude über einen solchen Titel ein willkommens Trostpflaster. Etwas, was diese Saison die Bayern Anhänger sicher ähnlich empfinden würden 😄

06.06.2012 - 08:50 Uhr

Und noch ein Update: Wie jeder heute auf der Google Startseite erfährt beginnt die offizielle Umstellung heute:

http://www.google.de/ipv6/

15.05.2012 - 10:08 Uhr

Hallo herbivore,

ich werde mich mit der Thematik und den hier vorgeschlagenen Möglichkeiten nun näher auseinander setzen. Ich denke auch, dass der von dir beschriebene Ansatz in die Richtung geht, die ich testen werde. Vielen Dank soweit.

11.05.2012 - 12:15 Uhr

Hallo MrSparkle,

ganz genau so wie herbivore es vermutet hat, ist es. Die Videos sind fix vorgegeben. Sagen wir fünf stehen auf der Seite zur Auswahl und der User kann sie verändern in dem er sein Bild dazu läd.
Sorry, hatte mich da wohl immer noch nicht ganz klar ausgedrückt. Daher auch meine Idee eine Art Video Template auf dem Server zu haben, welches dann verändert wird mit den Bilder die die User hochladen.

11.05.2012 - 11:47 Uhr

Das klingt tatsächlich etwas mächtiger in Bezug auf mein Vorhaben. Danke für den Hinweis und an gfoidl fürs genauere suchen nach Wrappern ;o)

11.05.2012 - 09:05 Uhr

Der Gedanke ist ja ein Video zu haben, welches von beliebig vielen Usern auf einer Website verändert werden kann. Man hat also beispielsweise eine Kamarafahrt mit einer Litfaßsäule im Bild und der Internetuser kann nun ein Bild von sich hochladen und die Applikation generiert daraus das eigentliche Video, was der User dann zu sehen bekommt - eben mit seinem Bild hineingemappt. Ich muss diesen Vorgang also irgendwie dynamisch gestalten, damit das immer wieder beliebig austauschbar ist und auch von vielen Usern gleichzeitig genutzt werden kann. Da stoße ich natürlich mit After Effects schnell an Grenzen. Ich könnte mir eher Vorstellen so eine Art Template im Hintergrund zu haben, welches von Hand bearbeitet wurde und dann immer automatisch angepasst wird. Vielleicht war aber auch mein Vorhaben noch nicht ganz klar.

10.05.2012 - 18:48 Uhr

Hallo MrSparkle,

genau das hatte ich befürchtet. Für nen realistischen Eindruck bleibt wohl tatsächlich dann nur der Flashansatz. Ich werde mich da mal weiter schlau lesen. Vielen Dank soweit.

10.05.2012 - 18:02 Uhr

Soll das "neue Video" dann nur am Bildschirm betrachtet werden od. als neues Video heruntergeladen werden können?

Es ist zum betrachten im Browser vorgesehen. Mit Animationen und Animationskurven unter WPF bin ich noch nicht ganz so vertraut.

Was ich erst dachte, da es sich um ein real gedrehtes Video handelt, dass man erstmal die Kamerafahrt tracken muss, um das Bild richtig zu mappen. Beispielsweise könnte es auch sein, dass ein Bild vom User in einem Video auf eine Litfaßsäule gemappt werden muss. Um dabei die Krümmung des Bildes und die ändernde Größe bei einer Kamerafahrt zu berücksichtigen, muss das Ganze ja irgendwie getrackt werden um die Bildkoordinaten zu haben auf die das Foto projiziert werden soll.

Wenn das wirklich alles mit WPF Mitteln gehen könnte, wäre das ein guter Ansatz. Habt ihr vielleicht nützliche Links, wo ich mich gut einlesen kann?

10.05.2012 - 15:50 Uhr

Mal ganz allgemein gefragt: Ich suche die Möglichkeit in ein Video dynamisch ein Bild einzubauen und würde gern wissen mit welcher Technologie man sowas umsetzen könnte. Da ich mit meinen Suchbegriffen an die Grenzen stoße. Man kann sich das so vorstellen:

In einem Video ist eine Kamerafahrt zu sehen auf eine Person zu. Es soll möglich sein, dass der User ein Bild von sich hochläd und dann im Video der Kopf der Person mit dem hochgeladenen Bild ausgetauscht wird.

Hat jemand schon mal ähnliches im Web gesehen? Weiß jemand mit welchem Technologischen Ansatz man da ran gehen könnte. Aktuell könnte ich mir nur vorstellen, dass Flash sowas vielleicht könnte. Oder eben gewisse Frames des Videos müssen jedesmal mit dem hochgeladenen Bild gemerged und neu zusammen encodiert werden.

Jede (Brainstorming-) Idee könnte mir helfen.

26.03.2012 - 10:36 Uhr

Umlaut ersetzen geht gar nicht, weil er dann den Eintrag mit dem Ö gar nicht findet. Wie schaffe ich es, nach "öst" zu suchen und beide Einträge zu bekommen (ohne ein OR zu verwenden)

Ich hab das REPLACE einfach mal anders rum gemacht. Damit gehts. Wär das ne Alternative?


SELECT *
FROM (
	SELECT REPLACE(cast('Österreich 1' as char), 'Oe', 'Ö')  as Bezeichnung
	UNION
	SELECT REPLACE(cast('Oesterreich 2' as char), 'Oe', 'Ö') as Bezeichnung
) Data
WHERE Bezeichnung LIKE ('%öst%')

21.03.2012 - 12:47 Uhr

Das sind leider etwas wenig Informationen um da weiterzuhelfen. Gibt das Frontend überhaupt keine Ausgabe raus. Keine Fehlermeldung? Nix?

19.03.2012 - 14:36 Uhr

Es gibt Tools von der Firma, die die HW Herstellt. Diese schaffen diese hohe Auflösung ohne einen Prozuessorkern aufzubrauchen....

Die werden mit großer Wahrscheinlichkeit kein Sleep() verwenden. Da dieses, wie du schon selbst sagtest, einen ganzen Kern "lahm legt". Genau das umgehst du auch, wenn du einen Timer einsetzt. Ich weiß ja nicht, wie du deine Architektur aufgezogen hast, aber sollte es dir einigermaßen leicht möglich sein, dann empfehle ich dir zumindest mal testweise die Timer-Variante einzubauen und zu schauen, wie es sich dann verhält.

19.03.2012 - 12:54 Uhr

Schonmal versucht statt Thread.Sleep() einen Timer zu verwenden? Dieser blockiert dann natürlich das Programm auch nicht.

12.03.2012 - 16:44 Uhr

Als guten Einstieg empfehle ich dir da den A* Algorithmus. Versuche dich darüber mal in das Thema der Wegfindung einzulesen. Sollten sich dann dazu noch weitere Fragen ergeben, dann kannst diese ja hier stellen.

A*-Algorithmus

24.02.2012 - 09:53 Uhr

Hmm, mir persönlich ist die UI noch ein wenig zu grau. Ich mochte bisher das Erscheinungsbild von VS 2008 am liebsten. Mal schauen was am Ende draus wird und ob es vielleicht noch Themes geben wird.

06.02.2012 - 12:22 Uhr

Da ich auch den abgeleiteten Thread von dir gesehen hatte und es dir wohl um OpenGL Entwicklung für Android geht, kann ich dir folgenden Artikel sehr empfehlen:

Spieleentwicklung_101

Alles versehen mit Beispielcode zum selber ausprobieren auf Emulator / eigenem Device

28.11.2011 - 15:58 Uhr

Via FileDelete() würde es prinzipiell funktionieren - in meinem Fall aber nicht, da ich die Unc-Schreibweise benötige und daher den IO-Namespace vergessen kann.

Die Einschränkung verstehe ich nicht ganz. Man kann doch File.Delete() aus System.IO verwenden und einen UNC Pfad übergeben.

11.10.2011 - 10:54 Uhr

Was genau jetzt diesen von dir beschriebenen Fehler auslöst kann ich nicht sagen. Ich kann mir aber vorstellen, dass er mit deinem Tabellen-Design zusammenhängt. Ich kann dir generell nur dazu raten, auch schon beim Design deiner DB dich an die gänigen Richtlinien zu halten und deine Tabellen zu normalisieren. So wie du das aktuell aufgebaut hast, sollte man das nicht machen. Ich würde bereits die Tabellen so anlegen, dass du die Redundanzen beseitigst.

Also Name und Adresse aus den speziellen Personen Tabellen raus nehmen und IDPerson als Foreign Key in die Tabellen Student und Professor einbinden. Ich gehe stark davon aus, dass das EF dies auch erkennen wird und eventuell deinen Fehler schon so behoben sein wird.

10.10.2011 - 18:52 Uhr

Ohne mich genauer eingelesen zu haben, wirst du sicher auch mit der Google Maps API zum Erfolg kommen.

http://code.google.com/apis/maps/index.html

04.10.2011 - 10:09 Uhr

Hatte garnicht bemerkt, dass hier doch noch geanwortet wurde. Daher erstmal danke, FZelle für das allgemeine bestätigen der Vorgehensweise. Ich war mir in diesem Fall tatsächlich nicht ganz sicher. Deine Ausführungen machen das aber klar. Ich hab das in der Tat auch so gekapselt, dass nur diese speziellen Aktionen die permanente Connection nutzen.

@Pluto
Eventuell ist dein Vorschlag auch eine Möglichkeit. Ich hab allerdings nicht mit DataTables / -Sets gearbeitet. Was größere Änderungen an der Architektur bedeuten würden. Ich behalte das aber für spätere Fälle als Möglichkeit mal im Kopf.

04.10.2011 - 09:57 Uhr

Portierung beliebter Apps von Andoid / iOS auf Windows Phone 7. Einfach mal ein wenig die Augen auf machen, was so in den beiden großen App Stores rumschwirrt und sich inspirieren lassen.

20.09.2011 - 14:49 Uhr

Wenn du den OR-Mapper umgehen willst dann passe doch deine Reader-Funktionalität an. Wie Florian schon sagte, befülle einfach damit die Properties deines Objekts. Kleines Beispiel:


class Person
{
    int ID{ get; set; }
    string Name { get; set; }
}

Und im Reader dann so:


while (Reader.Read())
{
    person.ID = Convert.ToInt32(Reader["id"]);
    person.Name = Reader["name"].ToString();
}

19.09.2011 - 17:00 Uhr

verwendetes Datenbanksystem: MySQL

Hallo zusammen,

im Rahmen eines Suchformulars meines Programms wird eine sehr große Query mit mehreren inner-SELECTS aufgebaut. Dies führte aufgrund der hohen Datenmenge logischerwiese zu einer sehr inperfomanten Abfrage. Daher hab ich mich dazu entschieden vor der ersten Suchanfrage eine TEMPORARY TABLE zu erstellen, diese zu befüllen und alle Suchanfragen auf diese TEMP TABLE auszuführen. Dadruch dauert nur die erste Abfrage des Nutzer etwas länger, alle darauf folgenden sind aber sehr flott. Schön und gut.

Mein Problem ist nun allerdings, dass TEMPORARY TABLES nur innerhalb einer geöffneten Connection vorhanden sind. So wie ich es allerdings gelernt habe, sollen DB-Querys jedesmal neu geöffnet werden und am Ende sauber geschlossen werden. Hier liegt mein Problem. Ich müsste also über die Dauer die der User das Suchfenster offen hat die Connection ebenfalls bestehen lassen. Ich hab das so mal umgesetzt und das Schließen der Connection ganz simpel aufs Close-Event des Such-Formulars gelegt. Mir kommt das alles aber recht unsauber vor. Daher meine Frage, kann man das so machen? Oder gibt es bessere / elegantere Möglichkeiten?

15.09.2011 - 09:46 Uhr

Mich hat definitiv überrascht das WinForms so weit oben im Ranking zu finden ist.

Und mich hat definitiv überrascht das WinForms so weit unten im Ranking zu finden ist. 😃

Erläuert doch mal, warum ihr jeweils das Gegenteil erwartet habt. Für mich ist nur die schon starke Verbreitung von HTML 5 verwunderlich. Damit würde ich eher in 2-4 Jahren rechnen. (Es sei denn die Umfrage meinte damit auch das klassische HTML)

14.09.2011 - 09:14 Uhr

Nun kann man sich auch schon die erste Vorabversion herunterladen. Eine der x64 Versionen ist auch mit Entwicklerwerkzeugen ausgestattet.

Vorabversion von Windows 8 für alle

12.09.2011 - 16:51 Uhr

Es gab zu diesem Thema erst vor kurzem einen interessanten Artikel auf spiegel.de zum Status Quo:
BMW-Forschungsprojekt: Entspannung durch Chauffeur Computer

Lustig auch, die Größe des dafür eingesetzten Computers. Zu sehen in der Bilder-Galerie.

Grundsätzlich denke ich, dass es nicht unrealistisch ist, dass viele - vielleicht sogar alle - Visionen eines Tages eintreten. Nur wird es wahrscheinlich noch so lange dauern, dass viele von uns das wohl garnicht mehr erleben werden. Teile der Visionen vielleicht schon, aber nicht die gänzliche Umsetzung. Dazu reicht es sich den Stand der aktuellen Entwicklung anzuschauen und dann damit zu vergleichen, wie lange im Schnitt noch "alte" Autos auf den Straßen fahren. Man überlege nur mal wie lange ein aktueller Oldtimer sich schon auf der Straße bewegt. Mit anderen Worten: Ein kompletter Übergang zu autonomen Fahrzeugen wird ein sehr langwieriger und schrittweiser Prozess. Vielleicht > 50 Jahre.

06.09.2011 - 15:37 Uhr

Ich meine das müsste mit diesen Methoden klappen:


 // Removes an ACL entry on the specified directory for the specified account. 
        public void RemoveDirectorySecurity(string FileName, string Account, FileSystemRights Rights,
                                                InheritanceFlags Inheritance, PropagationFlags Propogation,
                                                AccessControlType ControlType)
        {
            // Create a new DirectoryInfo object. 
            DirectoryInfo dInfo = new DirectoryInfo(FileName);
            // Get a DirectorySecurity object that represents the  
            // current security settings. 
            DirectorySecurity dSecurity = dInfo.GetAccessControl();
            // Add the FileSystemAccessRule to the security settings.  
            dSecurity.RemoveAccessRule(new FileSystemAccessRule(Account,
                                                             Rights,
                                                             Inheritance,
                                                             Propogation,
                                                             ControlType));
            // Set the new access settings. 
            dInfo.SetAccessControl(dSecurity);
        }

        // Removes an ACL entry on the specified directory for the specified account. 
        public void RemoveInheritablePermissons(string FileName)
        {
            // Create a new DirectoryInfo object. 
            DirectoryInfo dInfo = new DirectoryInfo(FileName);
            // Get a DirectorySecurity object that represents the  
            // current security settings. 
            DirectorySecurity dSecurity = dInfo.GetAccessControl();
            // Add the FileSystemAccessRule to the security settings. 
            const bool IsProtected = true;
            const bool PreserveInheritance = false;
            dSecurity.SetAccessRuleProtection(IsProtected, PreserveInheritance);
            // Set the new access settings. 
            dInfo.SetAccessControl(dSecurity);
        }

public void RemoveDirectorySecurityRecursive(string FileName, string Account, FileSystemRights Rights,
                                                InheritanceFlags Inheritance, PropagationFlags Propogation,
                                                AccessControlType ControlType)
        {
            try
            {
                string[] subDirs = Directory.GetDirectories(FileName);

                // Im aktuellen Ordner die Rechte setzen
                RemoveDirectorySecurity(FileName, Account, Rights, Inheritance, Propogation, ControlType);

                foreach (String strSubDir in subDirs)
                {
                    // Rekursiver Abstieg
                    RemoveDirectorySecurityRecursive(strSubDir, Account, Rights, Inheritance, Propogation, ControlType);

                    // Im Unterordner die Rechte setzen
                    RemoveDirectorySecurity(strSubDir, Account, Rights, Inheritance, Propogation, ControlType);
                }
            }
            catch
            {
            }
        }

Ein Aufruf der Methode zum Lese. und Schreibrechte entfernen könnte dann so aussehen:


accessManager.RemoveDirectorySecurityRecursive(args[4], "AF-HH\\" + args[3], FileSystemRights.FullControl,
                                             InheritanceFlags.ContainerInherit | InheritanceFlags.ObjectInherit,
                                             PropagationFlags.None, AccessControlType.Allow);

01.09.2011 - 09:04 Uhr

MS stellt hier einen Betriebskanal - wie es auch das böse Apple tut.

Dagegen ist auch nichts einzuwenden. Ganz im Gegenteil, eine echte Innovation für uns Entwickler. Nur warum darf man sich ohne Lizenz nicht die eigene Software aufs eigene Handy installieren? Alleine schon zu Testzwecken wäre das sinnvoll. Sobald man den Vertriebskanal in Anspruch nehmen möchte, wäre dann die Lizenz fällig. So fände ich es sinnvoll.

01.09.2011 - 08:59 Uhr

Und Tabs würden dem Explorer auch gut tun.

Dem würde ich voll zustimmen. Klingt mal nach einer echten Innovation für den Explorer.

30.08.2011 - 15:09 Uhr

Laut dieses Blog-Artikels plant Microsoft den neuen Windows Explorer mit Ribbons umzusetzen. Ich bin da noch sehr skeptisch, ob ich das gut finden soll. Seht selbst:

Improvements in Windows Explorer

04.08.2011 - 10:50 Uhr

Mal ein ganz anderer trivialer Ansatz: Wenn es dir nur darum geht, anzeigen zu wollen, dass dein Programm noch arbeitet, dann setze doch einfach deine Progressbar auf die Style-Eigenschaft auf ProgressBarStyle.Marquee und am Ende des Threads wieder auf ProgressBarStyle.Blocks. Dadurch hast du während des Vorgangs eine kontinuierlich laufende Progressbar, die am Ende wieder sauber anhält, wenn die Arbeit getan ist.