Zum Inhalt springen

errox

Mitglieder
  • Gesamte Inhalte

    390
  • Benutzer seit

  • Letzter Besuch

  1. errox

    Programmiertechniken

    Dir ist klar, dass die Watchdog-Methode die Systemlast begrenzt? -> Ja ist mir klar. Aber dem Seminarleiter nicht. Der Seminarleiter kannte keine Trigger. Er wusste nicht was das ist. Ich habs eher sportlich gesehen. Es wurde nach ein paar Buzzwörtern gefragt, hier sind sie. ;-) -> Ja vielen dank dafür
  2. errox

    Programmiertechniken

    Hallo. Erstmal danke für das Feedback. Das meiste kenn ich aber lambda ist mir komplett fremd. Zu der Aussage: das sollte man meinen. Das dachte ich auch. Ich war letzens auf einem (nicht gerade günstigen) Seminar. Dort wollte man eine Schnittstelle bauen von WaWi zu PIM System. Gelöschte Artikel sollten erkannt und übermittelt werden, und in eine seperate Tabelle eingetragen werden. Anstatt einen DELETE Trigger zu verwenden, wurde ein Watchdog Programmiert, der alle 10 Sekunden die Tabelle abfrägt, und die nicht mehr vorhandenen Artikelnnummern in eine seperate Tabelle schreibt. Deswegen frag ich lieber mal im Forum nach
  3. Hallo Zusammen, also vorab: Falls dieser Thread falsch sein sollte, dann bitte verschieben. Ich hab gedacht, dass das hier am besten rein passt. Ich würde gerne neue Programmiertechniken kennen lernen (Oder wie auch immer dieser Begriff heisst) Hier eine Liste was ich kenne: Datenbanken: - Index, Indizes (Damit ein Select auf dieser Spalte schneller funktioniert) - LEFT, RIGHT, INNER JOIN (Sollte eigentlich bekannt sein) - Trigger (Aktionen vor einem Select / Nach einem Insert, Vor einem Update, usw. ausführen) - Stored Procedures (Abfragen die auf dem Server gespeichert sind, die nur Parametrisiert ausführen) - Views (Abfragen zusammenfassen, auf dem Server gespeichert) Programmiersprachen: - Klassen - Interfaces - Reflection (Weniger bekannt, aber dient dazu Klassen zur Laufzeit zu erzeugen und Properties als Text zu laden, uvm.) - Interfaces (Sollte auch bekannt sein) - Vererbung - Multithreading Es gibt bestimmt noch mehr. Mir würden Stichworte reichen. Den Rest würde ich selber Recherchieren. Ein Beispiel: Wenn man Trigger kennt, kann man aktionen viel einfacher ausführen. Anwendungsbeispiel: Man hat eine Tabelle von GPS Koordinaten die man befüllt, und der Trigger befüllt den letzen Punkt automatisch in einer Tabelle. Oder Reflection ist auch weniger bekannt. Wenn man eine Datenbanktabelle als Klasse abbilden möchte oder ein serializiertes Objekt, kann man damit einfacher / angenehmer arbeiten (Simples beispiel) Gibt es noch irgendwas, was hier nicht aufgelistet ist? Vielen Dank und liebe Grüße errox
  4. Hallo, danke für die Antwort. Wenn ich das mache, dann krieg ich ja nur immer einen Datensatz zu dem Artikel zurück: Bsp: SELECT ArticleNumber, GroupGuidID, AttributeGroup FROM `articleattributes_target` GROUP BY ArticleNumber Dann krieg ich (wie gesagt) zwar alle Artikel, aber nicht die jeweiligen Datensätze zu den Artikelnummern.
  5. Hallo Liebe User, ich habe eine Frage zur Übermittlung von Änderungen. Anwendung: Artikel (Für einen Onlineshop) mit Eigenschaften. Die Tabelle hat folgenden Aufbau: Transfered (Spalte als Info ob Sie abgearbeitet wurde, Default 0, Übertragen: 1), ArticleNumber, OptionGroup (z.B. Farbe), OptionValue (z.B. Schwarz), OrderID. Nehmen wir einen Fallbeispiel: 0, 12345, Farbe, Grau, 1 0, 12345, Hersteller, Musterfirma, 2 0, 33333, Farbe, Blau, 1 ... usw Die Daten werden Gruppiert (Nach Artikelnummer) aus der Tabelle geladen und als Eigenschaften in den Shop eingetragen. Das Klappt soweit ganz gut. So das immer der "soll" Stand eingetragen wird. Das Problem: Das läuft über eine Schnittstelle. Die WaWi befüllt eine Tabelle immer wieder neu. Ich würde das gerne unterlassen. Ich habe mir folgendes überlegt: 1. Die WaWi hat eine Tabelle, die Sie befüllt 2. Die Tabelle wird übertragen in eine andere Tabelle. Struktur ist identisch. Aus der WaWi lade ich alle Artikel. Guck ob sich was in der "Ziel" Tabelle verändert hat. Wenn ja, werden die Daten als Transfered 0 übermittelt. Ansonsten ändert sich nicht. Danach aktualisier ich alles, was Transfered = 0. Danach setze ich es auf 1. Hier bereits ein Grober ausschnitt: Info: Es wird in PHP / MySQL umgesetzt. /** * Kopiert eine Tabelle * @param string $sourceTable Quelltabellenname * @param string $targetTable Zieltabellenname * @param string $groupColumn Spalte nach der Gruppiert wird */ public static function Copy($sourceTable, $targetTable, $groupColumn) { $sql = "SELECT DISTINCT `".$groupColumn."` FROM `".$sourceTable."`"; $query = ElioTransferCore::$CON->MySqlQuery($sql); while($row = mysql_fetch_row($query)) { $sql = "SELECT * FROM `".$sourceTable."` WHERE `".$groupColumn."` = '".$row[0]."'"; $innerQuery = ElioTransferCore::$CON->MySqlQuery($sql); while($rowInner = mysql_fetch_assoc($innerQuery)) { // Logik um nur die Änderungen zu übermitteln } } } Das Problem: Die Tabelle hat 491140 Datensätze. Das für 10232 Artikel. Wenn ich die Tabelle 1:1 Kopiere (Select, Insert) brauch ich 4 - 5 Minuten. Das Script (Siehe Oben) braucht über eine halbe Stunde. Und die Logik für den Abgleich habe ich noch garnicht implementiert. Das Hauptproblem was ich habe, ist das diese 491140 Datensätze, ewig brauchen (ca. 24 - 25 Std.) um Sie abzuarbieten (Da sind noch viel mehr Spalten dabei als nur OptionName / Value, SortID). Den ablauf kann ich auch nicht korrigieren / optimieren. Das wird leider so vorgegeben. Deswegen würde ich die zu abarbeitende Menge optimieren. Gibt es einen anderen / besseren weg? Oder ist das der beste? Vielen dank und liebe Grüße!
  6. Hallo, kurze Info Vorab: Ich habe kenntnisse in Objective C, .NET, etc. Ich habe auch bereits einige Apps gemacht. Ich würde gerne ein Spiel machen, was für Android / iPhone laufen soll. Es soll so ähnlich sein wie Doodle Jump. Jedoch will ich dabei auch lernen wie man Programmiert um 3D Spiele zu machen (z.B. Fruit Ninja) Also ich bin ein Ding (Ein Affe oder meinetwegen ein Punkt) was hüpft, auf einzelnen Plattformen / Linien um höher zu kommen. Ich glaube nicht, dass cih das mit Buttons / Grafikken umsetzen sollte. Wie setz ich sowas am besten um? Wie gehe ich da vor? LIebe Grüße
  7. Hatte ich ursprünglich vor, aber Swift geht erst ab iOS8 und ich würde gerne die älteren Geräte unterstützen (ab iOS 4.3) https://developer.apple.com/swift/
  8. Hallo Liebe Community, ich versuche mich grad in die Apple Programmiersprache Objective-C einzuarbeiten. Ich hab ein Button und möchte gerne einfach die dinger hochzählen: - (void)UpdateButton { int i = 1; UIView *view = viewButtons; for(UIButton *btnItem in view.subviews) { NSString *strValue = [@(i) stringValue]; btnItem.backgroundColor = [UIColor lightGrayColor]; [btnItem setTitle: strValue forState:UIControlStateNormal]; i++; [B]usleep(1000 * 1000);[/B] } } Jedoch muss ich es Asnyc laufen lassen, wegen dem Sleep. Hat da jemand ein gutes und verständliches beispiel wie das geht? Vielen Dank! Gruß
  9. Hallo Liebe Community, ich bin grad dabei eine Art minispiel nachzumachen, weil mich die Werbung im Spiel Selber nervt. Das Spiel wird im Android Studio mit der Version 2.3 Programmiert. Ich bin selber .NET Entwickler und tu mich sehr schwer. BEispielsweise mit der Formatierung der {} und dass ich die OnClickMethoden selber schreiben muss und es kein Doppelklick auf den Button für mich tut aber egal. Die Basis ist simpel. Ich habe einen Button und ein Linear Layout (Siehe Bild) Klicke ich auf den Button, ändert sich nach und nach die Farbe der Buttons. Jetzt wollte ich nur Fragen, ob das so gut gelöst ist. Weil es gibt ja auch noch Timer, Asynctask, usw. in Java / Android. Wo sind da die Unterschiede? Oder kann ich beim "klassischem" Thread bleiben? Der Code Funktioniert, ich will nur von erfahrenen Leuten hören ob ich den so lassen kann oder da Optimierungsbedarf ist (Das ist die Mini Basis, da soll noch viel mehr Assynchron laufen mit dem GUI Thread) Aufruf: public void OnButtonClick(View v) { LinearLayout layout = (LinearLayout) findViewById(R.id.linHorButtons); SetColorThread._layout = layout; SetColorThread._activity = this; SetColorThread thread = new SetColorThread(); thread.start(); } Klasse "SetColorThread" public class SetColorThread extends Thread { public static Activity _activity; public static LinearLayout _layout; public static Button _curBtn; @Override public void run() { for (int i = 0; i < _layout.getChildCount(); i++) { Button btn = (Button)_layout.getChildAt(i); _curBtn = btn; _activity.runOnUiThread(new Runnable() { @Override public void run() { _curBtn.setBackgroundColor(Color.GREEN); } }); try { sleep(100); } catch (InterruptedException e) { e.printStackTrace(); } } } } Ich freue mich auf Ehrliches Feedback! Vielen lieben Dank!
  10. Hallo Liebe Community, Ich habe an sich eine einfache Frage. Ich habe 2 Datume (Start und Endzeit) und würde gerne die Differenz berechnen. Die Differenz kann bis zu Tagen gehen, Monate brauch ich nicht. Also: Tage, Stunden, Minuten und Sekunden. Und das als Infobox ausgeben. Das mit der Infobox ausgeben krieg ich noch hin, aber das mit der Differenz? Das Format ist so: 2014-06-12 13:32:04 P.S. Es handelt sich um eine Android App. Wie geht das? Vielen Dank und liebe Grüße
  11. Servus Jungs, ich hab ne kleine App, die im Hintergrund Zahlen hochzählt (Als eine Art Timer). Vorab: Ja ich weiss, ich könnte auch den Aktuellen Zeitstempel Nehmen und hochrechnen. Aber man kann das Datum / Die Uhrzeit verändern. Das will ich nicht. Außerdem soll Später im Sekundentakt auch was anderes passieren im Hintergrund (z.B. GPS Positionen übermitteln für eine Ortungssoftware). Nein, ich mach das nicht unerlaubt. Das ist für mich selber. Jedenfalls hab ich das mal verkleinert und ein Label gemacht, dass einfach den Freien Speicher anzeigt. public void StartClick(View v) { TextView view = (TextView)findViewById(R.id.lblFreeSpace); new AppendFileThread(v); Thread th = new Thread(new Runnable() { public void run() { while (true) { runOnUiThread(new Runnable() { @Override public void run() { long availableSpace = -1L; StatFs stat = new StatFs(Environment.getDataDirectory().getPath()); availableSpace = (long) stat.getAvailableBlocks() * (long) stat.getBlockSize(); TextView lbl = (TextView)findViewById(R.id.lblFreeSpace); lbl.setText(String.valueOf(availableSpace)); } }); try { Thread.sleep(500); } catch (InterruptedException e) { e.printStackTrace(); } } } }); th.start(); } Wenn die App im Hintergrund läuft, wird die nach ner Zeit beendet. Wie kann ich das verhindern?
  12. Leider ist das Unbegrenzt :/ (1-n) Gibst da keine andere Möglichkeit?
  13. Hallo, nicht ganz, ich will ein Summenergebnis. Also Name | Count Drucker | 7 Laser | 3 Farblaser | 1 Sw Laser | 2 Tinte | 4 Bezug: Drucker -> Laser -> Farblaser Drucker -> Laser -> Sw Laser Drucker -> Tinte Am ende will ich alle rausladen, wo Count = 0, und die alle deaktivieren. Das dient darum, um auch die "Kopfkategroien" zu deaktvieren, die Unterkategorien haben, die keine Artikel beinhalten
  14. Hallo, zunächst mal, falls das im falschen Topic ist, bitte verschieben. Danke! Noch eine Info: Ich arbeite mit MySQL Ich habe ein Shopsystem, in dem ich eine Kategorietabelle hab. Die Wichtigsten Spalten sind: - ID - Parent (Übergeordnete ID, falls es eine untergeordnete Kategorie ist z.B. Drucker -> Laserdrucker) - Description (Name der Kategorie) Dann habe ich eine Tabelle, in dem die Bezüge abgespeichert sind - ID - KategorieID - ArtikelID Ich würde gerne alle Kategorien deaktivieren, die keine Artikelzuordnung haben und die übergeordneten Kategorien auch. Beispiel: Drucker -> Laserdrucker, Drucker -> Tintenstrahler. Wenn Tintenstrahler und Laserdrucker keine Artikel beinhalten, sollen diese auch deaktiviert werden. Ich habe auch bereits eine SQL abfrage, blos habe ich 2 Probleme. 1. Sie ist unsauber 2. Dort werden die übergeordneten Kategorien nicht deaktiviert. Nur die Aktuelle: SELECT cBase.ID AS ID FROM s_categories cBase // Nur Unterste Kategorien die nicht als Parent verwendnet werden LEFT JOIN s_categories cParent ON cParent.parent = cBase.ID // Ohne Artikelzuordnung LEFT JOIN s_articles_categories ac ON ac.categoryID = cBase.ID // Aktive Artikel! LEFT JOIN s_articles aActive ON aActive.Active = 1 AND aActive.ID = ac.articleID WHERE cParent.ID IS NULL AND cBase.Blog = 0 AND (cBase.external IS NULL OR cBase.external = '') GROUP BY cBase.ID HAVING COUNT(aActive.ID) = 0 Jetzt habe ich eine Idee: Ich mach einen SQL Befehl, der mir die Summe Rekrusiv anzeigt. Aber wie? Also z.B. Laserdrucker: 2, Tintenstrahler: 4. Also will ich beim Ergebnis auch Drucker mit 6 haben. Hier mal der "Grundbefehl" SELECT c.id, c.parent, c.description, COUNT(ac.ID) FROM s_categories c LEFT JOIN s_articles_categories ac ON ac.categoryID = c.ID GROUP BY c.id, c.parent, c.description Meine Idee wäre es, im SQL Befehl so oft zu Joinen, bis ich nichts mehr finde (Also fix für 5 ebenen) aber das wäre nicht so schön. Kann man da was machen? Bietet SQL die Möglichkeit? Liebe Grüße errox
  15. Hallo Kollegen, ich hab ein etwas außergewöhnliches Problem. Kurze vorgeschichte: ######## Ich hab ein iMac, mit dem hab ich daheim gearbietet. Und im Büro / Unterwegs, hab ich mein Macbook gehabt. Daten hab ich immer auf dem Stick gehabt. Hin / her veschoben. Das war nervig. Dann hab ich mit nem SmartCVS (Lokal) gearbeitet. Im Büro über VPN, dann war auch alles cool. Dann ist der Rechner (Daheim worauf der CVS läuft) abgestürzt. Dann denk ich mir, gut. Investierst du paar euro im Monat, machst das bei nem externen Server. Das ist mir aber zu langsam... ######## Jetzt habe ich folgendes vor. Ich will mein Macbook als "Master" benutzen (Mach ich ja grad auch) und den iMac als Bildschirm. Wie geht das? Jetzt will ich noch einen Schritt weiter denken: Der iMac hat mehr RAM / Leistung als das Macbook. Kann ich irgendwie das Macbook dazu bringen, dass er (wenn er angeschlossen ist) auf dem iMac rechnet? Wär echt cool! Gruß

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...