Jump to content

Patrick_C64

Mitglieder
  • Gesamte Inhalte

    60
  • Benutzer seit

  • Letzter Besuch

Über Patrick_C64

  • Rang
    Reg.-Benutzer

Letzte Besucher des Profils

Der "Letzte Profil-Besucher"-Block ist deaktiviert und wird anderen Benutzern nicht angezeit.

  1. @PVoss, hmm K,Interessant, zur Kenntnis genommen!
  2. Bei einfachen ' Anführungszeichen wird der String nicht geparst und somit keine Variablen ersetzt! Wenn Du eine Variable im String ausgeben möchtest musst Du doppelte " Anführungszeichen nutzen! Aber das bitte nur dort wo es benötigt wird, parsen verbaucht ja auch Ressourcen! (edit: wurde aber von Crash2001 angemerkt .....)
  3. Ich hoffe und vermute garnicht, wenn es gehen würde wäre das wohl Katastrophal .
  4. Automatisch erstellte Statistik: Reiche Forennutzer : 60-70% Dummschwätzer : 20-30% Fachinformatiker : ca. 10-20% Bei 10 mal drauf gesch***** hmm rechnet mal, sowas gross****iges ... ! Wie Wuwu schon anmerkte:"Verallgemeinerungen sind in der Regel ein Schuss in den Ofen. ". Und ebenso die Bewertung aus nur einer Sicht, hier in den meisten Fällen wohl die Eigene. Kindergarten ...! (sorry liegt vllt. an Krank und Meds. aber der Thread macht mich leicht sauer, und das musste jetzt mal raus!)
  5. Es gibt Gehälter in der IT für die Man einfach nicht Arbeiten gehen sollte, es sei den bestimmte Umstände verlangen dies zeitweise von einem ab! Den Rest musst Du selber wissen und entscheiden, gehört halt zum Leben dazu und es hat keiner behauptet das dieses ein einfaches ist ! Ich mach das so, und bin bisher damit gut gefahren ... Wenn Du zweifel hast überlege deine Entscheidungen lieber noch mal, wenn Du Dir von ganzen Herzen sicher bist bei deinen Entscheidungen dann treffe diese auch so und handel konsequent! Und nicht aus dem "Bauch" heraus handeln! Je mehr Lebens- und in diesem Kontext Berufserfahrung, desto klarer die Sichtweise und das Urteilsvermögen auf die Situation das eigene Selbst und vor allem auch den Wert dessen was man leistet. Gruß Patrick
  6. "CLIENT" Client.WriteByte(MSGTYPE type BYTE) Client.WriteInt(MSGLEN type INT) Client.WriteStream(MSG,MSGLEN) Client -> Request.Send(); ------------------- "SERVER" if(Server.Receive()) { MSGType as Byte = Server.ReadByte(MSGTYPE type BYTE) MSGLen as Byte = Server.ReadInt(MSGLEN type INT) MSG as <2string>Stream Client.ReadStream(MSGLEN) } Protokollbescheibung: -1 Byte MSG Type -1 Int(4 Byte je nach Plattform/Compiler, wobei ich 2 Byte eher als Short betrachte) Länge der Nachricht -Nachricht. Warum nur einen String senden und den Aufwendig parsen? Wenn das viel viel einfacher geht ! Wenn der Server seine Antworten im Selben Schema (Protokoll) sendet, kannst du eine Methode implementieren zum senden und lesen die vom Host und Clienten benutzt werden kann. (U.a. Sinn und Zweck solcher Protokolle ein Verbindliches/Einheitliches Kommunikationsschema.) Habe schon hochskalierbare Client/Host Protokolle implementiert (Slotbasierte Kommunikation etc. .....). Nach eigenen Vorstellungen erweiter- und modifizierbar. Sollte als Denkanstoß passen/genügen ! Toi Toi Toi und viel Erfolg! Gruß Patrick
  7. Zitat :"Wenn jemand noch ein Tip ....." Das waren u.a. allgemeine Stichwörter nicht direkt auf deine Problemstellung bezogen, die Dir in naher Zukunft so hoffe ich etwas sagen werden und Du dann auch weisst was ich meine . Es kann der Qualität der Software die Du zukünftig entwickeln wirst nicht abträglich sein! Zitat :"Mit dem MVC-Prinzip arbeiten wir ja im Grunde. Das andere wäre WYSIWYG... " :eek Du solltest diese Aussage dringend noch mal reflektieren. (Die beiden Dinge haben nichts mit einander zu tun!) Gruß Patrick
  8. Tip! Trennung, View und Logik (HTML vs. PHP)! Im Weiteren! Strichwörter: -KISS -SRP -DRY -Modularisierung -Design-Patterns -OOx(x=A,D,P) .... bla bla ! Viel Spass weiterhin, und immer am Ball bleiben sieht doch schon mal gut aus im Sinne von Problem gelöst ! Gruß Patrick
  9. Wenn Du rechtmäßig Urlaub hattest, und in deinem Vertrag steht Urlaub wird nicht vergütet! Dann ziehste wohl den kürzeren! Ich hoffe du versteht den Sarkasmus ! Wie gesagt sofern das rechtmäßiger Urlaub war hast Du auch Anspruch auf Vergütung, wird es Dir verweigert hast Du im Prinzip 100% Aussicht an das Gehalt durch einklagen zu kommen, sofern das Unternehmen nicht insolvent ist. TOI TOI TOI! Und klingt für mich so als hättest Du richtig gehandelt , ist immer ein geben und nehmen und nicht nur AN's können von schlechter Natur sein ebenso trifft das auch auf AG's zu, dann muss eben der AN konsequenz an den Tag legen gerade in der IT wenn man wirklich was auf dem Kasten hat! Gruß Patrick
  10. Hallo lempy, Zitat:"Die "Variable" Dateinamen bezieht sich auf Text.doc aber aus dem doc soll ein .bak werden. Da fehlt mir die Idee wie ich das anstellen." Suchst du zufällig (einfach nur) nach Möglichkeiten zur Stringmanipulation in .Net (Dein Stichwort!) zum Beispiel "Ersetzen" (Replace) ? Als Tip! Behalte doch die alte Dateierweiterung bei und füge nur ein .bak an somit weiss man auch auf anhieb um was für eine Sicherung es sich handelt ! Gruß Patrick
  11. OpenCV Hab da schon was an Erfahrung, ist eigentlich rel. einfach realisierbar. Benötigt nur ein wenig Einarbeitung wie jede andere Technologie auch! Konnte schon ein Paddle mit meinem Kopf steuern, Gesichtserkennung ganz einfach, also sollten Primitive wohl kein Thema sein genau für sowas und weiteres ist ja OpenCV gemacht ! Gruß Patrick
  12. Ergänzende Informationen zu pr0gg3r's Beitrag. PHP: $_SERVER - Manual
  13. Zitat :"Kann es sein, dass ich zum Senden und Empfangen zwei Threads brauche?" Nein, nicht zwingend. Zitat:"Codebeispiele wären toll." PseudoCode! Container<string,client> clients; if(myUDP.StartListen(@PortIrgentwas)) while (!ExitEventHandler()) { if(Msg=myUDP.Recv()) { ip =Msg.remoteIP; port = Msg.remotePort; clientID = ip+port; if(!clients.Contains(clientID)) { client nc = new Client(ip,port); clients.Add ( clientID, client ); myUDP.Send(client, "Welcome!"); } } } Hoffe hilft Dir n bischen, soll auch nur grob die Richtung aufzeigen wie man es umsetzen kann (Rom viele wege und so!), Das Broadcastpaket kann man vorher senden, und dann auf die Antworten reagieren. Mfg. Patrick
  14. Hallo flashpixx! Hallo Fi.de Community! Zitat:"... Du hast durch diese Diskussion selbst was gelernt ...." Habe ich mein bester (wirklich Aufrichtig und lieb gemeint, so wie zu nem guten Kumpel!!) Zitat :".... Außerdem solltest Du auf ein MVC Pattern übergehen, damit die einzelnen Bereiche passend getrennt werden. ..." Habe ich, und ich knie nieder vor Dir für diesen produktiven Ratschlag, nun habe ich mich glaub 2 Jahre hier nicht mehr in diesem Kontext gemeldet! Hat auch seinen Grund, ich habe deine Ratschläge beherzigt und ein MVP-Framework entwickelt und auf dieser Basis noch einmal ein CMS mit dem alten ORM und meiner BBCodeEngine auch wenn dass ORM unter der Haube, ich sag mal so wie es ist, :"Ka**e" ist, das Interface ist im Prinzip doch schon mehr oder weniger gut durchdacht(das ganze bekommt aber ein mächtiges Refactoring!) und ist auch recht brauchbar (stabil!!). Meine letzten Posts waren noch ohne Berufserfahrung (außer Umschulung!) mittlerweile programmiere ich erfolgreich für die großen (u.a. VW, MAN, und deren Dienstleister) (auf Grund meiner Leidenschaft der ich wie schon geschildert jahrelang auch ohne monetären Hintergrund nachgehe!)! Kollegen fragen mich in vielen Dingen (in letzer Zeit vor allen C#,.Net ) , das macht mich echt Stolz ! Ich werde das Projekt(CMS) diesmal stillschweigent veröffentlichen, dennoch wollte ich auch wenn ich das hätte per PM machen können Dir mitteilen das deine Worte nicht ungehört im Raum verschallten! Mag ja sein dass man mich angesichts meiner anderen Ambitionen als leicht, bis stark verstahlt einschätzen könnte und zu dem bin ich auch nicht gerade der Geduldigste, aber mein "Freund"(sorry!, hoffe weißt wies gemeint ist!) selbst nach dieser Zeit habe ich deine produktiven Ratschläge nicht vergessen auf dessen Basis nun ein m.E. ziemlich "geiles" Gesamtwerk enstanden ist! Zudem wollte ich auch denen die meinen was großes machen zu wollen auch mal Verständlich machen das sowas nicht von heut auf morgen geht, und man immer am Ball bleiben sollte ! Immer ein Ziel im Auge haben nie aufgeben! Und das es doch geht egal ob man auf Widerstand stößt, man trifft auch auf Feedback wie das von flashpixx welches einem Motivation gibt und daran sollte man sich hochziehen anstatt von negativen runterziehen zu lassen! Das habe ich nicht durch flashpixx erkannt das ist meine Lebenseinstellung, aber bei diesem Projekt ist er eine Person die mich auf den richtigen Weg gebracht hat! @flashpixx n herzliches dankeschön an dieser Stelle für die Konversation mit Dir !!! Some pieces of code ...... "masterpage/layout" <!DOCTYPE html> <!-- PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> --> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> {UseScript("content/shared/scripts/jquery-ui-1.10.3/ui/jquery-ui.js")} {UseScript("content/shared/scripts/jquery1.10.2/jquery1.10.2.js")} {UseStyle("content/shared/scripts/jquery-ui-1.10.3/themes/base/jquery.ui.all.css)} {UseStyle ("content/shared/view/stdlayout.css")} {SCRIPTS} {STYLES} <title>{ViewData(PAGETITLE)}</title> <script> $(function() { $( document ).tooltip(); }); </script> </head> <!-- Add default entries to Menus --> {Section ( PageMenu: )} {Section ( SiteMenu: )} <!-- --> <body> <div id="pageheader"> <!-- <h4>c64.feuerware.com</h4> --> <h1>{ViewData(PAGENAME)}</h1> </div> <div id="pagemenu"> <!-- Page.PageMenu Menu by presenter Page--> {RenderPartial (Page.PageMenu)} {RenderPartial (PageMenu)} <!-- Individual PageMenu generated by Presenters--> {RenderSection (PageMenu)} <!-- Display Login Formular --> {RenderPartial (User.LoginForm)} </div> <div id="sitemenu"> {RenderPartial (SiteMenu)} {RenderSection (SiteMenu)} </div> <div id="mainview"> <div id="sitecontent"> {VIEW} </div> </div> <div id="sitefooter"> {RenderSection (SiteFooter)} </div> <div id="pagefooter"> {RenderSection (PageFooter)} </div> </body> </html> "Presenter" Install-Presenter wird geladen wenn kein Authfile vorhanden ist, ansonsten wird das CMS geladen diese Funktionalität /dieser Mechanismus(Algo) befindet sich allerdings außgelagert und soll hier nicht weiter interessieren! Der Installer kann als (ist eine) eigenständige MVP-Applikation betrachtet werden! <?php class install extends Presenter { private $showform=1; private $dbformular=null; /** * * Enter description here ... */ function __construct() { $this->ViewData("PAGETITLE","MVP-CMS-Install"); $this->ViewData("PAGENAME","MVP-CMS-Install"); } /** * * Enter description here ... */ function PageMenu() { $html = \MVP::Route(array("call"=>"install","text"=>"Installation")); $html .= \MVP::Route(array("call"=>"install/showhelp","text"=>"Help")); $html .= \MVP::Route(array("call"=>"install/showlicense","text"=>"License")); $html .= \MVP::Route(array("call"=>"install/showabout","text"=>"About")); return $html; } /** * * Enter description here ... */ function ShowHelp() { return $this->View("help"); } /** * * Enter description here ... */ function ShowAbout() { return $this->View("about"); } /** * * Enter description here ... */ function ShowLicense() { return $this->View("license"); } /** * * Enter description here ... */ function index() { if($this->showform) $this->ViewData("showform",1); return $this->View("index"); } /** * * Enter description here ... */ function DBSettings() { return $this->PartialView("dbsettings",$this->dbformular); } /** * * Enter description here ... */ function StartInstall() { $dbformular = new stdClass(); $dbformular->dbhost =\MVP::GetRequestArg("dbhost"); $dbformular->dbuser =\MVP::GetRequestArg("dbuser"); $dbformular->dbpass =\MVP::GetRequestArg("dbpass"); $dbformular->db =\MVP::GetRequestArg("db"); $dbformular->dbprefix =\MVP::GetRequestArg("dbprefix"); $auth = array($dbformular->dbhost, $dbformular->dbuser, $dbformular->dbpass, $dbformular->db, $dbformular->dbprefix); $this->dbformular = $dbformular; try { $ORM = new ORM("mysqli",$auth); $fh = fopen("sec/xauth.sec","w"); fwrite($fh,implode(";", $auth)); fclose($fh); $this->showform=0; $this->ViewContent("<h1 style=\"color:#00bb00\">SUCCESS</h1>"); session_destroy(); header ("refresh:2;?" ); } catch(Exception $e) { $this->ViewContent("<span style=\"color:red\">Database Connection error!</span>"); } } ?> Das DBSettings Formular (PartialView) {UseScript("content/shared/scripts/mvp/FormValidator.js")} <h2>Database Settings</h2> <div class="formular"> {MVP(@FormBegin: @action=install/startinstall)} <div title="Benutzername für die Datanbankverbindung."> <input class="required" type="text" name="dbuser" value="{ViewModel(dbuser)}"> Username </div> <div title="Passwort für die Datenbankverbindung"> <input class="required" type="password" name="dbpass" value="{ViewModel(dbpass)}"> Password </div> <div title="Host für die Datenbankverbindung (localhost, myhost.tld)."> <input class="required" type="text" name="dbhost" value="{ViewModel(dbhost)}"> Host </div> <div title="Datenbank für das CMS (wird erstellt wenn diese nicht existiert!)"> <input class="required" type="text" name="db" value="{ViewModel(db)}"> Database </div> <div title="Datanbankprefix, wenn auf der gleichen Datenbank mehrere Installationen des CMS verwendent werden sollen."> <input class="" type="text" name="dbprefix" value="{ViewModel(dbprefix)}"> Prefix </div> <div title="Startet die Installation"> <input class="submit" type="submit" name="install" value="start install"> </div> {MVP(@FormEnd:)} </div> Eins noch, warum mir das u.a. hier im Gedächtniss geblieben ist, erstmal weil ich die ganze Zeit an meinem Projekt neben Arbeit und Familie "weitergeargeitet" (Hobby ist ja kein Arbeit ) habe, und weil ich auch im Kontext meiner doch eher "unbeholfenden" Projekt-Vorstellungen schon Feedback ganz anderer Natur erhielt! Darum hier noch mal ganz offiziel ganz ganz herzlichen Dank an flashpixx! Mit freundlichen Gruß Patrick Edit: Nachtrag: Wollte ich Dir eigentlich schon vor nem halben Jahr schreiben, aber ich wollte mich deinem Perfektionismus anschliessen (was musste ich mich zügeln *grieen!), und zu dem hatte ich heute auch erst die Musse, nach dem der Installer nun so 1A funktioniert dich mal einfach zu Informieren! (IIS und WebInstallation getestet!)
  15. Ungetestet da keine Zeit (hab eben in 5 min nur schnell ein paar Gedanken als Code notiert!). Zitat :"Danke schonmal für Tipps oder Lösungen. " Wer nichts lernt ist auch keine Konkurrenz !, Mal ein bischen mehr Eigeninitiative an den Tag legen ! Tip! Teile dein Gesamtproblem in einzelne Schritte/Komponenten auf! Hier am Beispiel : 1. An den Inhalt kommen ..... 2. Option 1: Zeilenweise einlesen Option 2: .... 3. Wörter aus Zeile extrahieren usw. usf. So kannst Du dich auf einzelne Probleme fokussieren! 1. Wie lese ich eine Datei ein 2. Wie splitte ich Strings usw. usf. /* * returns null or array */ function FileTo2DArray($fname) { $content = file_get_contents ($fname); $result = null; if($content) { $result = array(); $rows = explode('\n',$content); foreach($rows as $row) { $result[]=explode(' ',$row); } } return $result; } /* * returns null or array */ function FileTo2DArray($fname) { $fh = fopen($fname,"r"); $result = null; if($fh) { $result = array(); while(!feof($fh)) { $row = fgets($fh); if($row) { $result[]=explode(' ',$row); } } fclose($fh); } return $result; }

Fachinformatiker.de, 2019 SE Internet Services

fidelogo_small.png

if_icon-6-mail-envelope-closed_314900.pnSchicken Sie uns eine Nachricht!

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

Fachinformatiker.de App


Get it on Google Play

Kontakt

Hier werben?
Oder senden Sie eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...

Wichtige Information

Fachinformatiker.de verwendet Cookies. Mehr dazu in unserer Datenschutzerklärung