Samstag, 1. Januar 2011

Windows und Flash 10.1

Seit einiger Zeit hatte ich das Problem auf meinem Windows 7 System, dass FlashStreams nicht sauber abgespielt werden.

Nun. Nach einigem probieren fiel mir auf, dass es nach immer recht genau der gleichen Laufzeit des Videos zu akuten Leistungsproblemen kam. Die CPU war zwar nicht ausgelastet laut Taskmanager, allerdings war selbst Texteingabe ein Problem nebenbei.

Nun ich habe herausgefunden woran das liegt.
Adobe beschreibt in den Labs, dass ab Version 10.x die Hardwarebeschleunigung fürs Decoden über den Grafikchip geschaufelt wird. Was natürlich, selbst bei Highend System mit Integrated Video nicht wirklich sinnvoll ist.

Nun. "Ab Version X wird alles besser".

Stimmt. Ich habe nun die Beta von 10.2 installiert. Das Problem ist auf den Schlag weg. Schnelleres Buffern / Laden, kein ruckeln, und ich kann nebenbei diesen Text tippen :)

Also für alle, die auch ein derartiges Problem haben, kann ich nur empfehlen die Beta zu benutzen. Zu finden ist diese ebenfalls in den Labs von Adobe.

Darüber hinaus muss ich sagen läuft sie auch stabil bisher. In 10.1 gab es (zumindest bei mir) auch häufiger Probleme mit Abstürzen, sowohl im FireFox als auch im IE.

Nun. Problem gelöst. Eine Woche habe ich zwar gesucht und gefummelt nebenbei, aber es funktioniert bisher.

In Windows 7 scheint sowieso die Verwaltung der Aufgaben auf die einzelnen Cores oder co-Prozessoren extrem anders zu funktionieren als noch unter XP. Verwunderlich ist das nicht.
Aber ich kann mir sehr gut vorstellen, dass bei anderen Tools ähnliche Probleme auftreten könnten.

Nun. Ich hoffe ich konnte helfen!

current song: Espen Lind - When Suzanna Cries

Samstag, 18. Dezember 2010

Search & Destroy

So heißt eine Engine, die ich zwischen Tür unf Angel geschrieben habe.

(Generell, wer die Projekte mal sehen, testen, benutzen will von euch treuen Lesern, sollte sich mit mir in Verbindung setzen)

Also es ging im wesentlichen darum, dass in einem Datenbank Projekt einige Fehler entstanden sind.
Daher mussten doppelte Einträge aus mehreren Tabellen gelöscht werden. Die SQL Syntax bietet da zwar über Results wohl die Möglichkeit, aber das war mir far to complicated.
Es entstand eine Engine, die einen ConnectionString und eine Tabelle, sowie den Spaltennamen des PK übergeben bekommt. Das wars.
In einer eigenen Klasse, mit eigenem Thread geht die Engine dann die Tabelle durch und killt alle Einträge, die in den restlichen Spalten gleich sind durch und löscht alles doppelte.

Warum nicht einfach Einträge komplett miteinander vergleichen?
Nun, ganz einfach. Sie unterscheiden sich im PK.

Nachdem die Engine nun diese besagte Tabelle durchgegangen war fiel mir auf, dass in den Einträgen selber noch Fehler gemacht wurden sind. Als Beispiel mal Tippfehler.

Daher wurde die Engine noch mit einem SQL-Replace ausgestattet.
Es werden zwei Listen übergeben, die in der richtigen Reihenfolge den FIND- und den REPLACE- Wert enthalten müssen.
Es wird wieder ein Thread gebildet und die Tabelle wird gefixt.

Die Rückgabe liefert ein Array aus der Anzahl der Änderungen und den geänderten Spalten. Das sieht dann so aus:

[0] 12
[1] 34
[2] Name
[3] Adresse
[..] $Spaltenname

Wobei der erste Integer angibt wieviele Spalten gelöscht wurden, der zweite wieviele Einträge geändert wurden und dann folgen die geänderten Spalten.

Wie gesagt. Bei Interesse Kontaktieren.
Es gibt auch noch ein paar mehr Tools in meinem Core :) - Einfach fragen.

current song: Sophie B. Hawinks - As I Lay Me Down

Sonntag, 28. November 2010

Plattformunabhängigkeit

Die Frage, die sich ein Entwickler doch immer stellt ist auf welchem Device die Software denn laufen soll.
Nach dieser Frage kommt dann eine andere, nämlich wie man mit Versionskonflikten fertig werden soll.

Ein Beispiel. Ich entwickle eine Homepage und öffne sie mit dem IE oder dem Firefox. Es ergibt 2 gänzlich unterschiedliche Seiten.
Komplett andere Formatierung.

Nun. Das lässt sich recht einfach lösen. Ein Browser übergibt seine ID. Daher weiß man mit welchem Browser der User surft und kann dem entsprechend dynamisch das Design anpassen.

Also gibt es nur eine Antwort auf die erste Frage: Auf allen Geräten!

Da wären wir da schonmal klar. Alles sieht gut aus.
Das lässt für eine plattformunabhängige Anwendung noch nur einen Schluss zu.
Man schreibt keine App. Keine App für ein Smartphone. Keine App für den PC, nicht für den Mac.

Die einzige Lösung, die einem bleibt ist es web-embedded zu schreiben.

Das ist was ich mit iWeLL tue. Der Server läuft zwar noch immer auf einem PC. Unter Windows Server Umgebung, aber der Client ist online.

Bleibt nur das reagieren auf den Client.
Der rest läuft.
Dann hängt es nur noch an Sicherheitseinstellungen vom Browser. Aber die kann der User anpassen. Sein Betriebssystem nicht.
Auf diese Weise ist es egal welches Gerät genutzt wird. Es ist auch egal welche Art von Verbindung zum Server genutzt wird. Dies entscheidet der Browser für mich.

Und genau in diesem Moment kann ich sagen ich bin Plattformunabhängig. Ob das IPad oder der Blackberry, das Alte SimPad oder ein PC oder Mac. Linux oder Windows. Völlig egal.
Das handling bleibt das gleiche.

Sonntag, 21. November 2010

Küken

Was ich mit Küken am Hut habe?

Ganz einfach. Ich habe vor 2 Wochen zugesagt zwei nachwuchs Studenten in einigen Fächern ein wenig zu helfen.
So fängt es mit der Informatik an.

Informatik wird bei uns an der FH im 1. und 2. Semester gelehrt.
Der Inhalt ist eigentlich im 1. Semester die Programmierung in C#- Grundlagen von Datentypen und Umwandlung, Anzeige etc von Daten.
Nicht weiter schwer, aber selbst hier scheint es schon Probleme zu geben. So lang ist das Semester ja noch nicht.

Nun. Auf jeden Fall ist es heute wieder einmal so weit.
Ich hoffe ja starkt, dass ich es schaffe aus dem Küken nen Hahn zu machen, aber das habe ich wohl nicht allein ind er Hand.

Zumindest stellt er sich nicht dumm an und ist willig das zu packen.

Daher. Mal sehen wie das wird.

Freitag, 12. November 2010

Alles anders

Moin!

Nicht viel passiert hier in der letzten Woche. Hat auch alles einen Grund.

Es ist geschafft. Ich habe nun endlich alle Projekte von VB.Net auf Csharp umgestellt.
Lange habe ich mich etwas davor versteckt genau dieses zu tun. Aber im Sinne von professioneller Softwareentwicklung geht einfach nichts daran vorbei meiner Ansicht nach.

Nicht, dass ich Basic vollends den Rücken kehren will, aber dennoch wird alles neue auf jeden Fall in C# entstehen.

So heißt es ja schon.. Basic 's not the answer, write in C#

Dann wollen wir das mal auch weiterhin so machen.
Dazu habe ich noch alle Projekte von Visual Studio 8 auf Version 9 hochgezogen. Was mit der Upgradefunktion komischer Weise astrein problemlos funktioniert hat.

So far.

Freitag, 29. Oktober 2010

C#

C# ist bekanntlich eine wirklich handliche Sprache und wirklich sehr verbreitet.

Es gibt zu Hauf Interpreter für C# und es wird gerne auch als Entwicklungssprache für andere Anwendungen, zum Beispiel als Script Sprache für Visualisierungen verwendet.

Wodurch zeichnet sich ein guter Interpreter aus?
- Er sollte Debuggen können
- Er sollte ein ganzes Projekt als Projekt und nicht nur die einzelnen Funktionen und Header betrachten
- Er sollte Schlüsselwörter kennzeichnen und Typen farblich voneinander absetzen
- Er sollte das Suchen von Querverweisen erlauben
- Er sollte gegebenen Falls auch noch Überwachungen möglich machen

Die Hersteller von Entwicklungsumgebungen sehen das scheinbar etwas anders.
Eigentlich war ich der Meinung, dass man sich bei Software insgeheim auf gewisse Funktionalitäten geeinigt hat. Vor allem was Editoren angeht.

Wohl nicht!
SIEMENS ist da sehr eigen. Sie geben einem ein C# mit an die Hand und sagen "Guck mal! Wir haben C#! Das kann jeder, da braucht man nicht noch eine neue Sprache lernen!"

Grundsätzlich wirklich eine erstklassige Idee. Allerdings ist die Umsetzung mehr als bescheuert.
Man kann weder einem Funktionsaufruf folgen, noch dessen Verwendung suchen.
Gibt es eine Variable schon meckert er nicht. Nichteinmal beim kompilieren, nein, nicht einmal in der Runtime!
Es funktioniert einfach nicht. Sau stark!
Man muss zugeben, dass es sich wirklich um basis C# handelt.

Davon abgesehen ist der Interpreter / Editor wirklich ein Graus.
Man kann immer nur eine Funktion durchsuchen.
Das erschwert es bei ca. 500 Funktionen wirklich sehr Verwendungen zu finden. Wo wird eine Variable das erste mal geschrieben? Keine Ahnung.

Nun. Trick 17 mit anfassen war ja meine Idee. Vielleicht sind die Dateien ja nicht kompiliert gespeichert sondern als Volltext und ich kann dann mit nem klugen Texteditor das ganze Verzeichnis durchsuchen! Super Idee! - Nein. Geht nicht.

Was bleibt mir noch. Achja, ich kann ja den Code aus dem original Editor kopieren und dann in Notepad einfügen, als .txt speichern und dann das Verzeichnis durchsuchen!
Wirklich super Idee. Funktioniert auch! ....

Wie? Kein aber? DOCH VERFLUCHT NOCH EINS!

Der schnieke Editor hat KEINE Funtkion um "Alles zu markrieren"... der Text steht da und man muss die Zeilen von Hand markieren. Nichts mit STRG + A. Von wegen.
Gibt es schlichtweg nicht.
Das gestaltet sich also so:

Funktion öffnen.
Text markieren.
Kopieren. (Ja, STRG+ / SHIFT+ Einfg geht!)
In nen Ordner wechseln.
Textdabei anlegen.
Umbenennen.
Öffnen.
Text einfügen.
Speichern.

Und wieder von vorne.
Es sind ja nur 500 Funktionen zu machen.
Für das eine Projekt.
Schön, dass es insgesamt 4 sind.
Also round about 2000 mal dieses gehexe NUR um zu sehen wo, in dem Fall, ein Datenbankaufruf verwendet wird, weil der angepasst werden muss.

Danke SIEMENS! Wirklich vielen Dank dafür es dem Entwickler so einfach wie möglich zu machen.

"Integrated Automation"
Am Arsch die Räuber!

Das ist ne Arbeit für Leute, die Mama und Pappa nicht nur erschlagen, sondern auch noch zerstückelt und im Wald zusammen mit dem Nachbarshund vergraben haben!

Heckschleuder

Gefunden! - Und auch wieder nicht gefunden.

Stundenlange Suche auf einschlägigen online Automärkten hatten nichts ergeben im Punkto Heckschleuder.
Kriterien waren eigentlich nur:
- BMW
- 3er
- mit Motorschaden / nur die Karosse.

Nun. Man findet schon den ein oder anderen. Aber entweder waren sie platt gefahren, oder zu Teuer. Nicht einmal die Entfernung spielte mir eine Rolle. Ich wär auch wohl eben nach München geknallt mim Hänger. Wäre nicht das Problem gewesen.

Nur warum so weit weg suchen wenn das Teil vor deiner Nase steht?
Es ist nie verkehrt das Angebot zu kennen. Da ich alle Schrottis im Umkreis schon durch hatte bleib mir eigentlich nur noch warten.. Bis zur nächsten Saison wird schon was zu finden sein. Nur die Zeit wird auch knapp.
Also fiel mir doch vorgestern was ein.
Der ******* hat doch einen hinten stehen!

Hingefahren, war schon geschlossen und da stand er.
Keine Ahnung von der Basis ersteinmal, der Wagen muss da schon was länger stehen. Auseinander gerupft bis aufs letzte. Genau das was ich suche.
Überrascht hat mich der Unterboden. Wie neu. Kein Rost an den Achsen, kein Rost an der Karosse, kein Rost an sonstigen tragenden Teilen. Der Kofferraumboden etwas mit Rost befallen, aber der wäre eh raus geflogen. Augenscheinlich auch nicht verzogen. Kein Motor, keine Innenausstattung. Also, so möchte man meinen, alles raus was in irgendeiner Form Geld bringt bis auf das Diff. Allerdings kein gesperrtes. Leider. Dachte ich.

Da ich unterwegs war kam ich erst heute dazu anzurufen. Das Telefonat war... sagen wir merkwürdig.

Es fing gut an... er erzählte mir was über den Wagen, woher er kommt, was alles fehlt.. und fragt mich dann was ich denn eigentlich fürn Ersatzteil suche. Ich sach "Meister, keins, ich will den ganzen Kübel kaufen"...

Nun seine Antwort war, auch merkwürdig, aber allsweilen viel eher ernüchternd indem er sagte: "Verkauf ich dir nicht"

Watt? ... Äh ... Geht's noch?!

Nein, er rückt ihn nicht raus. Auf die Frage was er damit denn bitte anstellen will: ein trockenes "Gar nichts, aber ich verkauf ihn dir auch nicht"

Vielen Dank auch! Geliebter Schrauber meines Vertrauens.

Weiß der Henker was er plant. Nichts Gutes wohl möglich. Allerdings habe ich die gleiche Erfahrung ja schon einmal gemacht, auch mit ihm, der 7 Jahre 500€ für nen Wagen haben wollte der nun wirklich nicht mehr zu verkaufen war. Bis er ihn eines Tages verschrotten ließ anstatt ihn mir doch zu verkaufen.

Was solls. Kommt Zeit, kommt Karosse. Da bin ich mir sicher, denn kein Angebot ist bekanntlich einmalig.

Dienstag, 26. Oktober 2010

Das ging...

Schnell...

Schneller als ich dachte - zugegeben.

Und wie das so ist kann ich es auch nicht lassen was neu zur Verfügung steht auch gleich aus zu probieren...

Also mal ein Anfang vom neuen Design der Homepage based on ASP.NET... und das neue Logo gleich mit :)

enjoy

Transcom-solutions.de

Gute Nacht!

traffic

Nein, kein Straßenverkehr. Eher Datenverkehr.

Bei der Idee zu i.weLL war mir von Anfang an klar, dass der Traffic, der entstehen würde immense Ausmaße annehmen kann.
Kann ist dabei das Stichwort.

Nun, die Frage ist was man erreichen will und wie man das schlussendlich erreicht.
Baut man jetzt ein UI mit vielen Grafiken Farben, Schatten, vollends 2.0, dann ist klar, dass der Traffic hoch ist. Demnach habe ich mich bei dem Design für alle mobilen Geräte auf, nahezu fast nur standart HTML Elementen beschränkt. Außnahmen bilden die Anteile von ASP Elementen.
Aber. Die Datenübertragung von kleinsten Datenmengen dauert immernoch zu lange.

Ein Beispiel.
Nehmen wir eine standart SQL Abfrage auf eine recht kleine Tabelle. Sagen wir <10.000 Einträge.
Wir suchen eine Referenzspalte unter sagen wir 10 Spalten.
Weiter sagen wir wir hätten 10 Integer, also 32x10Bit sind 320Bit was wohl 40byte entspricht.
Die Abfrage dauert nun in der Zusammenstellung bis zum Client.
also Generierung der Abfrage im Client, wobei die Software auf dem Server läuft, bis zur Abfrage in einem lokalen Netz und das Callback zum Client mit samt eben dieser 40byte ne saftige Sekunde.

Je nach Vorstellung des Ganzen habe ich nun ein Timingproblem.
Das Problem liegt definitiv im Netz.
Ein Test mit ner anderen Leitung und nem Server, bei nem Hoster selbst liegt (In den nächsten Tagen habe ich dann auch endlich nen eigenen, der ASP kann wirklich Up and Public beim Hoster) ergaben ähnliche Zeiten.

Nun. Brauche ich nun Geschwindigkeit? Nein, eigentlich nicht.
Nach reiflicher Überlegung geht es um nichts zeitkritisches und ich glaube jeder, der ein mobiles Gerät zum Steuern benutzt wird einsehen, dass das länger dauert als über nen Bus, der direkt an der Steuerung hängt.

That's the point. Und das mindert das vermeintliche Problem auf ein Minimum und ist das was ich am Anfang meinte - Die Frage was man erreichen will.

Genug geheule. Lieber ein kleines Update. The Story so far:

- der Server läuft mit Anbindung zum PLC und sammelt fleißig Daten.
- das Clientscript Ist soweit fertig und geht dann die Tage live auf nem richtigen Server.
(Dann kann man auch mal etwas rumspielen, den link schmeiß ich selbstredend hier rein.)
- Die Clientsoftware an sich habe ich auch angefangen, allerdings ergibt sich auch hier ein kleines Problem.

Je nachdem wie man sein Windows Mobile konfiguriert hat ist es nicht möglich Events zu schmeißen auf dem Gerät musste ich feststellen. Man kann für jede Anwendung an sich sperren ob sie Meldungen aufpoppen darf. Mit unterschiedlichen Versionen verschärft sich das sogar soweit, dass man explizit erlauben muss, dass Anwendungen das dürfen.
Es ist allerdings wahrscheinlich möglich dieses beim Setup auf dem Gerät gleich für den Client so einzustellen. Das bleibt zu hoffen und testen.

Weiterhin kann ich vermelden: It runs on the IPhone.
Zumindest die Webschnittstelle. Ich war überrascht, dass der Iphone Browser ASP so ohne weiteres zulässt. Umso besser.

Alles in allem steht das Gerüst. Es müssen noch viele Schnittstellen gebaut werden. Zu verschiendensten Bussystemen mit verschiedensten Protokollen.

Aber ich habe schon die nächste davon auf dem Tisch. Ich erstand leihweise eine DPSlavekarte der Firma Hilscher, die ich astrein einbinden kann. Somit habe ich auch bald den Profibus Abgehakt.

Ethernet läuft ja an der S7, bzw dessen VIPA Clone schon. Wobei auch hier noch etwas zu machen ist.
Bisher habe ich Steuerung über die libnodave API gekoppelt. Das läuft aber nicht mit allen Siemenssteuerungen. Deswegen habe ich einen relativ überschaubaren Telegrammbaustein für die S7 geschrieben. Dieser müsste allerdings im PLC eingespielt werden und da steht das ganze schon vor dem Scheitern, da Änderungen an den Kundensteuerungen nicht unbedingt erwünscht respektive möglich sein werden.

Nundenn.
Morgen ist auch noch eine Nacht.
I have memories of sleep, but they are fading...

Samstag, 23. Oktober 2010

Bodenleuchten..

Ja Bodenleuchten!

Mein Vater kam auf die Idee Bodenleuchten rund um seinen Wintergarten einzubauen.

Also. Samstag morgen. Beton machen.
Die Leuchten sahen auf den ersten Blick gut aus. Ich war allerdings skeptisch wie das dicke Erdkabel durch die kleinen Kabeleinführungen gehen soll. Die Antwort haben wir schnell erhalten:
Gar nicht.

Also Kabel geschält, Adern durch, passt. Und das ganze dann mit Silikon vergossen. Wird wohl dicht sein.

Dann anschließen. Eng wie n Smart da drin. Aber auch das lief dann recht schnell.

Dann festgestellt, dass eine Hülse nicht im Beton gehalten hat. Also nachbetonieren. Trocknen lassen, wieder anklemmen.

Dann die Leitungen auflegen.
Bis dahin war ja alles recht ok. Doch dann fing der Spaß an :).
Ersteinmal hatte mein vater wohl, wir haben da so ne Schalterreihe mit 8 Schaltern am Wintergarten, die Leitungen sehr konfus aufgeklemmt als das Teil gebaut wurde.
Nun. Auf jeden Fall sollten es zwei Kreise sein für die Lampen rechts / links. Ist auch so nur hängen die rechten Leuchten mit an einer Innen-Lampe. Aber auch das ist ja leicht zu lösen.

Schlimmer war, eine Leuchte blieb dunkel.
Er sagte dann "war ja klar, die hast du ja auch angeklemmt".
Ich das Teil also wieder auseinander genommen und ersteinmal Spannung gemessen. Keine Spannung an der Fassung.
An der Klemmleiste aber wohl.
Also, Fassung ausgebaut, gemessen, kein Durchgang auf einer Leitung.
Warum ist mir dann auch schnell klar geworden, das Kabel war einfach schlichtweg ab an der Stelle.

Auseinander genommen, angelötet und zusammengebaut. Dann gemessen. Durchgang gegen Erde. Na toll. Wieder auseinander genommen, neu verlötet zusammengebaut. Gemessen. Alles super. Wieder eingebaut. Klatsch. Fi draussen.
Wieder auseinander genommen, wieder gemessen, wieder Erdschluss.
Die Leitung extra noch einmal isoliert mit Schrumpfschlauch.
Gemessen. Leitung Ok.
Nullleiter gemessen. Erdschluss.
"Das darf doch nicht wahr sein!"
Wieder zerlegt, auch da Schrumpfschlauch drum.
Gemessen. OK. Eingebaut. Ok.

So, die Leuchten laufen jetzt alle.
Es ist 17:25! Und angefangen haben wir gegen 10!

Junge junge junge. Diese Schrottteile!
NIE wieder! Next Time kaufe ich persönlich die teuren Dinger!

User Status

Du bist nicht angemeldet.

Aktuelle Beiträge

Windows und Flash 10.1
Seit einiger Zeit hatte ich das Problem auf meinem...
Heckschleuder - 1. Jan, 13:03
Search & Destroy
So heißt eine Engine, die ich zwischen Tür unf Angel...
Heckschleuder - 18. Dez, 11:27
Plattformunabhängigkeit
Die Frage, die sich ein Entwickler doch immer stellt...
Heckschleuder - 28. Nov, 16:52
Küken
Was ich mit Küken am Hut habe? Ganz einfach. Ich habe...
Heckschleuder - 21. Nov, 11:32
Alles anders
Moin! Nicht viel passiert hier in der letzten Woche....
Heckschleuder - 12. Nov, 08:22

Suche

 

Status

Online seit 4941 Tagen
Zuletzt aktualisiert: 1. Jan, 13:03

Credits


Allgemeines
computing
Entwicklung
Musik
private
Profil
Abmelden
Weblog abonnieren