Hallo WhiteBaroque,

hier kann ich voll und ganz nachvollziehen, wie es dir da gerade geht.

Ich arbeite inzwischen einige Jahre nebenbei an einer Chat Plattform. Das Web entwickelt sich immer weiter, leider nicht schnell genug.

Grundsätzlich ist zunächst einmal zu beachten, das ein Chat in der Regel aus einer Client-Server Umgebung besteht. Ein verteiltes Netz ist über Browser Lösungen noch viel schwerer zu realisieren, als eine Client-Server Lösung. Hier Infos zu den verschiedenen Lösungswegen. Ich selbst bevorzuge und verwende inzwischen die Lösung über Websockets:

  1. Java Wie hier vorgeschlagen, habe ich zuerst auch auf Java gesetzt. Das birgt aber ein großes Problem: Du müsstest im Browser ein Applet schreiben. Dieses Applet muss bestimmte Methoden mit implementieren (Sockets zB.), für welche der Browser aber ein Zertifikat verlangt. Kann man umgehen, wenn man ein Zertifikat anlegt - das kostet aber Geld. Man kann es auch selbst signieren, dann wird dem Benutzer aber immer eine verwirrende Warnung angezeigt. Die meisten Nutzer entscheiden sich daraufhin gegen die Nutzung des Chats. (Selbst Freunde und Bekannte musste ich überreden, das hier kein Schadcode vorliegt). Java ist für den Client imho also überhaupt keine Lösung. Serverseitig sollte beachtet werden, das Java evtl. auch höhere Anforderungen stellt, als ein Server in C es bspw. tut.

  2. Flash Auf Flash würde ich ebenfalls verzichten. Diese Technik ist einfach nur veraltet. iOS Geräte unterstützen sie bspw. gar nicht mehr.

  3. Moderne Webtechniken Dies sind die Techniken, auf die man für einen Chat im Browser zurückgreifen sollte. Es gibt dabei mindestens drei wichtige Techniken.

a) Reine Web Lösung Diese Lösung lässt sich mit Javascript und einem normalen Webserver realisieren. Sie ist aber etwas unsauber, und kann zu leichten Lags führen. Das merken aber in der Regel nur Benutzer, die nebeneinander sitzen. Die Nachricht beim Empfänger tritt etwas verzögert ein. Hierbei fragt das Javascript im Browser regelmäßig über eine URL beim Server an, ob neue Nachrichten vorliegen. Der Server hat Nachrichten in einer Datenbank hinterlegt. Bekommt er eine Anfrage, gibt er die letzten Nachrichten an den Browser (Client) zurück. Dazu sollte eine Art Timestamp als Parameter an den Server übergeben werden. Damit vermeidet man, zu viele Nachrichten übergeben zu müssen. Hier sollte man auch nicht vergessen, alte Nachrichten zu löschen oder zu archivieren - denn irgendwann einmal ist die Datenbank so groß, das die Anwendung immer langsamer läuft..

b) Long Polling (und weitere HTTP Ansätze) Diese Techniken stellen nur indirekt eine dauerhafte Verbindung her. Long Polling wird seit einigen Jahren eingesetzt. Es gibt einige Plattformen/APIs dafür - die besten sind aber kostenpflichtig. In fast allen Fällen wird ein Root Server vorausgesetzt oder aber der kostenpflichtige Service stellt den Root Server. Beim Long Polling wird meist eine HTTP Verbindung aufrechterhalten (statt sie, wie es eigentlich sonst üblich ist, die HTTP Verbindung direkt nach der Übertragung zu schließen).

c) Websockets Ich habe mich drei Jahre lang mit dafür eingesetzt, das diese Technik zu einem Standard wird. WS ist inzwischen ein Standard des W3C. Websockets ist die Technik der Zukunft. Inzwischen sind Websockets endlich wieder in allen modernen Browsern aktiviert (und da liegt auch der kleine Haken - "moderne Browser"). Sie haben eine ganze Reihe von Vorteilen. Die Verbindung kann über HTTP hergestellt werden. Die HTTP Verbindung wird dann "geupgraded" (wenn der Webserver das unterstützt). Ansonsten kann diese Verbindung auch über andere Ports hergestellt werden. Man kann damit also Probleme mit gesperrten Ports in größeren Einrichtungen umgehen. Das ist klasse und eine großartige Bereicherung im Gegensatz zu Techniken wie Flash oder Java.

Viele Browser mit aktuellen Versionen unterstützen diese Technik (Internet Explorer, Firefox, Chrome, Safari, iOS Safari, ...) Sie läuft nach meinen Tests auch auf den modernen Mobiltelefonen (wobei das für einen Chat wiederum eher ungeignet ist, aufgrund des kleinen Displays und der kleinen Tasten).

Auch bei Websockets besteht die Chat Anwendung aus zwei Teilen. Der Client ist in Javascript implementiert (im Browser). Der Server kann über jede beliebige Programmiersprache implementiert werden, welche Socket Bibliotheken verwenden kann. Ich habe dazu einen Deamon in PHP weiterentwickelt, dessen Grundversion bei GIT zu finden ist. Auch hierfür gibt es inzwischen Dienste, welche die Funktionalität bereits bereitstellen.

d) Kombinierte Lösung Ich selbst mache es nicht, viele Anbieter von APIs bieten aber inzwischen eine Kombination aus 2b und 2c. Dabei dient das Long Polling meist als Fallback, falls die Websocket Verbindunbg nicht möglich ist.

Das waren jetzt eine Menge Informationen. Am besten erstmal sacken lassen. Wenn du dazu noch Fragen hast, helfe ich dir gern. :)

...zur Antwort

Gibt es so nicht. Allerdings ist das bspw. Mit Modified Shop mit wirklich wenig Arbeit erledigt. Es müsste lediglich die Adminfunktion geändert werden, die das Ändern des Status vornimmt, ein kleines Modul geschrieben werden das die Seriennummernverwaltung erlaubt und die Bestellbestätigungsmail angepasst werden.

Natürlich ist das auch mit anderen Shop-Systemen wie Magento, XTC4, Shopware oder Presta Shop möglich. Der Aufbau von Modified ist aber auch gerade für weniger erfahrene Entwickler so einfach zu verstehen, das die Entwicklung sehr zügig vorangeht. Außerdem läuft Modified auch auf leistungsschwachen Servern flüssig.

...zur Antwort

Die Überprüfung ist gar nicht so schwer.

Leider gehst du nicht darauf ein, was bis jetzt schon programmiert wurde, deshalb kann man nur hinweise geben. Es gibt hier auch mehrere Lösungsansätze. Ich erkläre einen relativ einfachen. Es geht aber definitiv auch anders und Performanter.

Bei diesem Ansatz überprüft man immer das komplette Spielfeld. Dazu verwendet man 4 verschiedene schleifen. Die machen folgendes:

1. horizontal prüfen ob 4 gleiche Steine hintereinander vorkommen. (Es hilft bei diesen Prüfungen zu wissen, welcher Spieler gerade dran ist. Man muss also nur auf dessen steine prüfen. Eine zählervariable wird erhöht wenn steine hintereinander gefunden wurden und auf 0 gesetzt wenn keine gefunden wurden. Ist sie 4, hat der Spieler gewonnen.)

2. vertikal prüfen

3. jetzt wird es komplizierter. Hier wird auf die Schrägen geprüft. Dabei muss man sich immer die Ausgangsposition am Rand in extra variablen merken. Dann geht man so durchs Raster, das man immer sowohl einen Schritt in X als auch in Y Richtung geht.

4. das selbe wie bei 3. nur hier geht man negativ in Richtung X.

Ein anderer Ansatz, der für Anfänger aber schwer zu verstehen sein dürfte ist: Immer wenn ein Spieler einen Stein platziert, kann die Vierer kette an dieser Position entstehen.

...zur Antwort

Stöber einfach mal durch die Addons. Es gibt verschiedene Tools. Leider erklärst du nicht genauer, was du da machst. Mir erscheint es etwas ungewöhnlich, aber es gibt ja immer Gründe. :)Möglichkeiten die ich sehe:

1. Ein passendes addon suchen. Wahrscheinlich hat schon jemand eine Lösung für dein Problem. Zum erzeugen von Bilddateien fällt mir da bspw. ScreenGrab ein. Das erzeugt Bilder, wie du wolltest.

3. Wenn du immer auf den gleichen Seiten unterwegs bist und "nur" archivieren willst, gibt es für diesen Fall sogenannte Web Downloader. Die Laden alle Änderungen als Dateien auf deinen Computer. Du kannst damit komplette Webseiten mit einem Knopfdruck herunterladen und den Vorgang automatisieren.

4. du kannst dir etwas programmieren lassen. Erzähl doch mal, was genau dein Anliegen ist - also weshalb du soviel Web speicherst. Wenn es interessant ist, würde ich es bspw. Als Nebenprojekt gern mit umsetzen. Gute Ideen sind immer willkommen.

...zur Antwort

Die Antwort von Aren98 ist ganz einfach falsch. Es gibt mit der gdlib eine Bibliothek die Bilddaten verarbeiten kann. Damit kann man auch neue Bilder anlegen. Richtig ist: das ist kein Zeichenprogramm. Die hierin erstellten Bilder werden nur über Programmier-Anweisungen erstellt.

Und wenn das noch nicht reicht oder die Leistung der GDLib erschöpft ist, kann man auf imagick zurückgreifen. Das gibt es sowohl als compilierte Bibliothek (also die Aufruffunktionen sind in php enthalten), oder als externes Tool. Letzterer Fall ist mächtiger, aber auch komplizierter zu verwenden.

Du kannst mit beiden JPG, GIF und png bearbeiten, und noch ein paar andere Formate. Angewendet wird das z.B. oft, um Wasserzeichen auf Bilder zu bringen (als Kopierschutz), oder um Captcha Bilder zu erzeugen. Oft verwende ich es auch, um Hochgeladene Bilder zu prüfen (denn wenn sie sich damit nicht öffnen lassen, sind es sehr wahrscheinlich keine Bilder). Ein weiterer sehr häufiger Fall ist das Erstellen von Thumbnails für Bildergalerien oder Artikel-/Beitrags- Listings.

...zur Antwort

Hallo PeterFragtNet,

Ich bin Senior Softwareentwickler und nebenbei auch noch selbständig. Deshalb kenn ich mich da aus.

  1. Auswandern Du musst nicht auswandern, nur weil die Programmierer in einem anderen Land günstiger sind. Als Privatperson oder auch Unternehmen kannst du in DE freiheitlich entscheiden, mit wem du Geschäfte machen möchtest. Ich kenne einige Firmen die zumindest Grafikvorlagen im Ausland erstellen lässt. Ich selbst habe auch Kunden im Ausland, bspw. der Schweiz oder USA. Man schätzt dort unsere Pünktlichkeit, Zuverlässigkeit und vor allem die Qualität des Produktes. Außerdem sind 10.000 EUR auch sehr wenig Kapital zum Auswandern.

  2. Qualität und Vertrauen Leistungen im Ausland zu beziehen kann auf den ersten Blick sehr günstig sein. Allerdings verhält es sich hier wie beim Einkauf in China. Wenn du keinen Mittelsmann vor Ort hast, der sich auskennt und Kontakte hat, wirst du sehr schnell übers Ohr gehauen. Du brauchst jemanden, der die Qualität prüft. Es gibt bei FB eine Gruppe aus Indien, in der Stellengesuche und Quelltexte in PHP gepostet werden können. Die Qualität der Quelltexte ist dabei echt erschreckend und schreit oftmals vor Sicherheitslücken.. Als Laie wirst du es schwer haben, da durchzublicken.

  3. Agenturen Es gibt Outsourcing Agenturen die dich bei ausländischen Arbeitnehmern vertreten und die die oben genannten Qualitätsmerkmale prüfen. Die Miete kostet allerdings oftmals mehr als ein deutscher Arbeitnehmer, da immer ein Projektleiter hinzugebucht werden muss. Ist also eigentlich nur für Firmen, die schnell zusätzliche Leistung benötigen. Die Entwickler die für diese Firmen arbeiten kommen meist aus ehemaligen Ostblockstaaten.

  4. Freelancer/startup Projekte wie deines sind eher im Bereich Startup/Freelancing einzuordnen. Mit Twago gibt's eine deutsche etablierte Plattform für so etwas. Da kannst du eine Ausschreibung erstellen- mit deinem maximalen Budget.. Kann man machen- wenn das Projekt komplex und das Budget niedrig ist wirst du aber mit Kritik leben müssen.

  5. Erfolg Das ist der wichtigste Punkt. Ich habe einige erfolgreiche Geschäftspartner, die mit meiner Software ihr Geschäft stark steigern konnten. Als Webentwickler und Marketingexperte kenne ich aber auch die Luftschlösser, die die Menschen sich bauen. Nur weil jemand eine tolle Idee hat, muss sie nicht funktionieren. Die Entwicklung ist nur ein Teil davon. Danach kommt direkt das Marketing. Wenn deine Idee neu und unbekannt ist, wird es entweder viel Zeit brauchen um die bekannt zu machen (gute Google Rankings erreicht man mit SEO bspw. nach frühestens 3 Monaten in neuen Projekten), oder viel Geld in die Hanf nehmen (bei Adwords ist schnell ein Monatsbudget von 500 EUR zusammen. Da muss sichergestellt sein, das man gute Anzeigen schaltet die auch die ROI erfüllen können, oder zumindest das Geld für die Werbung wieder einspielen.

  6. ich könnte noch viel ner dazu sagen, das soll aber erstmal reichen. Ich will dich nicht erschrecken oder gar entmutigen. Es gibt Entwickler da draußen, die Glauben an neue Ideen. Wenn deine gut ist, findest du sicher auch einen, der für ein kleines Startkapital und eine zukünftige Beteiligung am Projekt mitarbeitet. Ich unterstütze solche Projekte auch gern, wenn Sie Erfolg bringen könnten. Du kannst dich gern einmal mit mir in Verbindung setzen. :)

...zur Antwort

Hallo pfuffi,

das ist etwas verwirrend. Wieso stellst du denn zwei Datenbankverbindungen her und verwendest bei beiden auch noch unterschiedliche Funktionsbibliotheken? Ich drösel das mal auf:

1 Anhand der Tabellenstruktur vermute ich, es handelt sich hier um Wordpress? Falls ja, gibt es für WP eigene Funktionen um Benutzerdaten abzufragen..

2 Du includierst die Datei db_connect.php. Da der Pfad hier gleich ist, gehe ich davon aus, das diese im selben Verzeichnis liegt. Wenn in einem Script eine Datei includiert wurde musst du sie nicht ein zweites mal inkludieren. Ich kann den Inhalt der Datei leider nicht sehen, aber es ist davon auszugehen, das darin eine Datenbankverbindung hergestellt wird. Wenn diese im Script einmal hergestellt ist, dann bleibt diese auch verfügbar. Es besteht keine Notwendigkeit, eine zweite Verbindung zu dieser Datenbank herzustellen.

3 Unterschiedliche Funktionsbibliotheken

Du verwendest in deinem Code zum einen eine Datenbankklasse. ($db). Im letzteren Teil verwendest du dann aber auf einmal direkt die mysqli Funktionen. Stehen diese überhaupt zur Verfügung? Kannst du sicherstellen, das deine Klasse auch mysqli verwendet?

Du solltest besser nur ein System verwenden, und dieses auch nicht vermischen. Eine Datenbankklasse kapselt meist die grundlegende Funktionalität ab und ermöglicht damit den Wechsel der verwendeten Datenbank-Funktionen, ohne das alle Queries angepasst werden müssten.

Wenn die DB-Klasse jetzt pdo verwendet, statt mysqli, kann das ganze nicht funktionieren.

4 Error Reporting

Ich habe auf Mindfav.com einen Blog-Beitrag zum Thema Error Reporting verfasst. Du solltest es unbedingt aktivieren, damit dir die Fehlermeldung angezeigt wird. Fehlermeldungen sind wichtig, um Fehler schnell und gezielt finden zu können. Anderenfalls können wir hier nur raten, da wir nur einen Teil deines Quellcodes sehen und ihn auch nicht ausprobieren können.

Der Blogbeitrag findet sich hier: http://mindfav.com/index.php?s=blog&id=14

...zur Antwort

Auch das Entwickeln einer App kostet schon Geld.. Mal abgesehen davon, das ein Mac benötigt wird, um iOS Apps zu entwickeln, verursacht der Entwickler Account bei Apple eine jährliche Gebühr von seit Jahren stabilen 99 EUR (in der günstigsten Variante..). Nur mit dem Account ist es möglich, die entwickelte Software auf Test-Geräte zu verschieben. Als Test-Gerät kann jedes IOs Gerät verwendet werden. Mit dem einfachsten und günstigsten Entwickler-Account lassen sich 3 oder 5 iOS Geräte verbinden. Bin mir über die Anzahl nicht mehr ganz sicher, aber für eine Messe könnte das schon etwas wenig sein.

Ich würde den Ansatz ändern. Entwickelt eine Web-App - bestenfalls mit Bootstrap oder ähnlichem mobil-fähigem Webgerüst. Setzt euch lokal einen kleinen Server hin - da reicht bspw. auch der Heimrechner schon - und verbindet den mit den IOs Geräten. Dann nehmt ihr euch nen "Borderless"-Browser und blendet die Navigationsleiste und möglicherweise auch die Titelleiste aus.

Bedenkt auch, das ihr möglichst die Einschalt/Ausschalt Buttons und den Home-Button in der Haltevorrichtung abdeckt - sonst kann jeder das Programm wechseln (betrifft auch eure App..)

Denkbar für den Anschluss der Pads an den Webserver wäre ne kleine Basisstation die im 5ghz Bereich funkt (Auf Messen wichtig, da die meisten Besucher mit ihren Handys im 2.5 ghz wifi Bereich unterwegs sind, und das Netz damit meist sehr ausgelastet ist.. Wichtig ist auch, das die Geräte im Funk die von der Messeleitung vorgegebenen Richtlinien einhalten [Abstrahlung|Sendeleistung] Vom Messeveranstalter gibts da aber oftmals auch Leihgeräte. Wichtig und zu klären ist, das die IOs Geräte auch 5 ghz Wifi untersützen, wenn ihr das so machen wollt. Die neuesten Varianten können das, bei den älteren Modellen müsstet ihr da vorher unbedingt prüfen.)

Vorteil: -> Änderungen am Programmcode für eine Web-App (die ich bevorzugt in PHP entwickeln würde), lassen sich notfalls selbst vor Ort noch vornehmen - ohne das die Geräte neu bespielt werden müssten. -> Eine Web-App zu entwickeln ist weit kostengünstiger und schneller als das Entwickeln einer iOS App. -> Die App kann so entwickelt werden, das sie möglichst wenige Daten nachladen muss um den Netzwerk-Traffic vor Ort niedrig zu halten.

Wenn ihr dabei Hilfe braucht oder noch weitere Fragen habt, kontaktiert mich gern. Ich mache sowas professionell. ;)

...zur Antwort

Hallo mrapple123,

leider muss man zwischen den Antworten hier viel Halbwissen herauslesen.

1. Unterschiede

Die Unterschiede der Sprachen sind in Ihrer Entstehung bedingt. Jede Sprache wurde zu einem bestimmten Zweck entworfen, bspw. um Dinge zu vereinfachen. Hilfreich sind dazu die einzelnen Wikipedia Artikel. Dort wird jeweils erklärt wie die Sprachen entstanden sind. Die meisten der genannten Sprachen sind der C-Sprachfamilie zuzuordnen.

a) C++

->beinhaltet die Sprache C ->imho die semantisch stärkste Sprache

b) Java

-> plattformunabhängigste der 3 Sprachen Hier muss man sich keine Gedanken machen, auf welchen Geräten der Code laufen soll und was man dabei beachten muss (so lange man sich an den Sprachkern im Hauptzweig hält). ->Syntax ist stark an der C-Familie angelehnt

c) C#

Die jüngste der 3 C-orientierten Sprachen. Basiert u.a. auf Konzepten aus C++ und Java. Wurde von Microsoft entwickelt.

d) Visual Basic

-entstammt ursprünglich NICHT der C-Familie, sondern Basic -Syntax unterscheided sich von der, der anderen 3 Sprachen eindeutiger Wurde von Microsoft entwickelt.

2. Mythos "Hardwarenähe"

Grundsätzlich würden sich alle der genannten Sprachen auf bestimmten Systemen hardwarenah integrieren lassen. Dazu kann man Bibliotheken entwickeln oder verwenden, welche hardwarenahe Routinen ausführen. So lässt sich für alle Sprachen bspw. kompilierter Assembler Code in Form von Bibliotheken einbinden, falls das nötig wäre. Richtig ist allerdings schon, das C++ für diese Art der Entwicklung von den vier Sprachen am besetn geeignet ist.

...zur Antwort

Was soll denn heißen: "die Variablen gehen immer eine Zahl zurück"?

Meinst du in etwa so hier:

'firefox' => 3, 'chrome' => 2, 'safari' => 1, 'ie' => 0

Warum nutzt du das array dann nicht anders herum, und nimmst die Variable als index. (Der index ist der Schlüssel, dem ein Wert zugeordnet wird. Bei deinem Beispiel, kennzeichnet der Text vor dem => Zuweisungsoperator den Index/Schlüssel)(

Oder kann eine Zahl mehrfach vorkommen?

Es gibt jetzt verschiedene Möglichkeiten. Da du drei Elemente brauchst, würde ich das Array ganz einfach mit bubble sort oder einem ähnlichen Algorithmus sortieren. Wenn es eine Hausaufgabe ist, musst du den Algorithmus vermutlich selbst schreiben. Ansonsten dürfte asort das machen, was du möchtest:

asort behält den index bei, sortiert aber die Reihenfolge anhand der Werte neu. Anschließend schnappst du dir einfach die drei letzten Elemente. Dazu könntest du bei Bedarf auch das Array mit array_reverse umdrehen..

(Ich hätte gern weitere Links mit Erklärungen beigefügt, aber gutefrage.net sieht darin Spam.. -.- )

Ich wünsche dir viel Erfolg. :)

...zur Antwort

Das hängt stark davon ab, wofür du deine Webseite erstellen möchtest. Ein paar weitere Informationen wären für sinnvolle Tipps schon gut.

-> Soll es eine professionelle Seite sein, oder eine einfache private Homepage? -> Was soll auf der Homepage dargestellt werden? -> Gibt es erweiterte Funktionen, oder werden nur Texte und Bilder angezeigt?

...zur Antwort

Hallo pointlessbutton,

1. C/C++

Du fragst ja direkt nach C. Das Beispiel von jamineb ist allerdings C++. In C gibt es keine Klassen.

Beispiel zum Erzeugen einer Zufallszahl in C:

#include <time.h>
#include <stdlib.h>

srand(time(NULL));
int r = rand();

2. Compiler und Variablen

Ein Compiler "merkt" sich keine Variablen. Ein Compiler übersetzt von Menschen lesbaren Programmcode in Byte-Code oder Maschinencode. Möchte man im Programm Werte zur Verarbeitung zwischenspeichern, verwendet man Variablen. Da es hier um immerhin schon 20 Variablen geht, würde ich in diesem Fall die Verwendung eines Arrays schon bevorzugen. Insbesondere, weil die Werte anschließend noch sortiert werden sollen (worauf bis jetzt niemand eingegangen ist).

Möchtest du die Werte für die Zukunft speichern, kannst du auf einfache Dateifunktionen verwenden (fopen, fclose fwrite..)

3. Sortierung

Wenn du keine fertige Bibliothek dafür verwenden möchtest/kannst, würde es hier ein einfacher Bubble Sort Algorithmus machen. Größere Datenmengen sollten allerdings mit einem anderen Algorithmus sortiert werden, weil BS recht langsam ist. Dafür ist es aber sehr einfach zu implementieren - und in diesem einfachen Szenario sehr schnell.

...zur Antwort
Ist Java wirklich zu blöd?

Nein, es liegt in 99% der Fälle am Programmierer. Mehrdimensionale Arrays bereiten vielen Entwicklern Probleme. Das einzige was hilft ist: Testen, testen, testen..

...zur Antwort

Es gibt genügend Foren in denen Entwickler unterwegs sind.. Viele von denen betreiben nebenher auch Projekte. Keine Angst, Deine Idee wird nicht geklaut..

Anfragen dieser Art erhalte ich wöchentlich.. Meist wird daraus nichts weil:

  1. Die Idee quatsch ist.
  2. Keine Marketing Erfahrung vorhanden ist. Virale Verbreitung hört sich ja nett an, bedeutet aber auch jede Menge Arbeit und ein Quentchen Glück..
  3. Die Vorstellungen der App nicht ausgereift sind.
  4. Das andere Team-Mitglied ist plötztlich nicht mehr erreichbar - e.g -> hat festgestellt wieviel Arbeit eigentlich dahinter steckt..
...zur Antwort

Zunächst einmal ist nicht ganz klar, ob du jetzt nach einer Programmiersprache oder nach einer IDE (Integrated Developement Environment = Entwicklungsumgebung) suchst. Als Entwicklungsumgebung eignet sich Eclipse sehr gut, da es viele verschiedene Sprachen unter einer Oberfläche vereinen kann. Man muss sich später beim Wechsel der Sprache nicht aufwändig mit neuen Entwicklungsumgebungen vertraut machen. Es gibt für die verschiedenen Sprachen gerade im Windows-Bereich sehr viele Entwicklungsumgebungen - auch von Microsoft.. Dort kann man die .NET Produkte wärmstens empfehlen.

Zum Thema Programmiersprachen Es hängt hauptsächlich davon ab, wie weit du schon bist. Ist Erfahrung vorhanden?

Wenn du ganz blutiger Anfänger bist, und Anwendungen mehr oder weniger zusammenklicken willst, könnte Visual Basic etwas für dich sein.

Ich persönlich verwende für Windows gern MinGW (C/C++/ggf. Assembler). Ich beschränke mich in meiner Arbeit allerdings auch auf sehr systemnahe Ansätze - viele meiner APIs sind selbst entwickelt und setzen auf Grundkonstrukten wie WinApi und Sockets auf. Man merkt das ganz deutlich an der Ausführungsgeschwindigkeit. Während bei Net-Programmen das Programm spürbar geladen wird und für manche Operationen etwas länger braucht, ist ein mit Winapi entwickeltes Programm innerhalb von Sekundenbruchteilen geladen. Allerdings ist der Aufwand in Winapi auch viel höher.

Alternativ dazu gibt es "modernere" Ansätze wie bspw. Java oder C#. Die können dir, gerade wenn du noch Anfänger bist, eine ganze Menge Arbeit abnehmen. Da ich das Thema Sockets oben als Beispiel gewählt habe: Hier gibt es bspw. von Haus aus komplexe Verbindungsklassen für Netzwerkoperationen, welche die Grundkonstrukte wie Sockets komplett kapseln. Man öffnet bspw. eine Netzwerkverbindung mit einem oder zwei Befehlen und sendet einen Datenstrom mit einem weiteren Befehl, während man bei der direkten Arbeit mit Winsockets mit einigen hundert Zeilen Vorarbeit rechnen muss. Dieser Teil ist dort also bspw. schon fertig..

...zur Antwort

Hallo rydah1337,

es gibt einige hundert Dinge, die mir dazu einfallen. Das hier alles auszudiskutieren, wäre wirklich zuviel. Unter anderem betrifft euer Projekt folgende Bereiche:

1. Eigenentwicklung oder CMS? Komplette Eigenentwicklungen nehmen weit mehr Zeit in Anspruch, als die Verwendung eines fertigen CMS. Für Anfänger bedeutet allerdings beides eine relativ steile Lernkurve.

2. Webserver Ein Grundlagenthema: Welche Leistung und welche Bandbreite steht zur Verfügung? Allein wegen der Videos ist das nicht zu unterschätzen. Eure Schule wird natürlich kaum hunderte Besucher gleichzeitig anlocken - (vom Tag des Launches der Seite einmal abgesehen). Videomaterial auf dem eigenen Server kann diesen schnell an die Grenzen bringen - außerdem kann die maximale Bandbreite schnell erreicht sein. Alternative wäre hier eine Teil-Auslagerung, bspw. Upload der Videos auf Youtube mit anschließender Einbettung auf Eurer Seite.

3. Sicherheit -Betrifft Zugang zu den Systemen über FTP und Passwörter: Da hier verschiedene Parteien damit vertraut sind, ist das Risiko eines "verlorenen" Passwortes erhöht. Es müssen klare Regeln geschaffen werden, wer wann von welchem Computer aus, auf die Plattform zugreifen kann. Sogenannte Keylogger können Passwörter direkt bei der Eingabe auslegen, und kommen oft mit Viren oder Trojanern daher. Deshalb sollte möglichst nur an sauberen Rechnern gearbeitet werden.

-Betrifft den Webserver: Ein selbst betriebener Webserver oder auch ein Root-Server muss ständig aktualisiert und gewartet werden. Sinnvoll ist außerdem Hintergrundwissen in Sachen Computersicherheit. Abhilfe kann hier die Verwendung von reinem Webspace oder eines Managed Servers schaffen.

-Es betrifft HTML im Sinne von XSS und ähnlichen Attacken. Es betrifft PHP und SQL und damit auch die Sicherheit des Servers selbst in Sachen von SQLi (Injection) Attacken. Beide Techniken werden sehr häufig in Angriffsszenarien genutzt. Hier sehe ich auch die größte Gefahr, und bin mir nicht sicher, ob euer Lehrer sich dieser bewusst ist. Denn besonders hoch ist die Erfahrung bei Programmieranfängern in der Regel nicht. Lehrbücher gehen meist nicht darauf ein, wie Eingabeparameter richtig geparst werden, oder bestenfalls gebunden werden, so das ein Angreifer hier keine Chance hat.. Das kann im schlimmsten Fall dazu führen, das der betriebene Webserver komplett übernommen wird.

Allgemeine Tipps Wichtig wäre zunächst zu klären, in welchem Bereich die Ausbildungsziele liegen. Geht es darum, die Grundlagen der entsprechenden Sprachen und Techniken zu lehren, ist eine Eigenentwicklung zu bevorzugen. Möchte man eher ein funktionierendes Endprodukt erhalten, so ist wohl ein fertiges CMS die richtige Wahl, welches um die benötigten Komponenten erweitert wird.

Teilt euch die Arbeit auf. Es muss zum einen eine inhaltliche Gliederung geschaffen werden, sowie eine Grafikvorlage erzeugt werden, bevor mit der Entwicklung der eigentlichen HTML Codes begonnen werden kann. Während der Umsetzung der Programmierarbeiten kann das redaktive Team schon arbeiten, und die nötigen Materialien in Form von Bildern, Texten und Videos zusammentragen..

...zur Antwort
  1. Habe Programmieren hauptsächlich im Selbststudium gelernt.

  2. C, C++, PHP, MySQL, Javascript, JQUERY, HTML, Java, ...

  3. Für die Grundlagen ca. 6 Wochen, auch wenn das erste Buch "Teach Yourself C in 21 Days" war. :D Richtiges Verständnis für komplexere Paradigmen beherrschte ich nach ca. anderthalb Jahren.

...zur Antwort

Das Thema ist sehr komplex. Vereinfacht gesagt werden die benötigten Funktionalitäten (Ausgabe am Bildschirm, Berechnung eines Bildzuges, Verarbeitung der Eingabe..) in ihre Bestandteile aufgeteilt und dann jedes für sich entwickelt.

Diese einzelnen Teile werden dann vom Hauptprogramm angesteuert und miteinander verbunden. Das Verbinden der einzelnen Bestandteile übernehmen sogenannte Schnittstellen. Die Schnittstellen werden möglichst so geplant, das sie immer die gleiche Form (Struktur) von Daten entgegennimmt oder zurückgibt- egal ob die Programmierung hinter der Schnittstelle sich geändert hat. Das macht es dann bspw. möglich, das Spiele auf XBox, Playstation und PC portiert werden können.

Wenn du ein bisschen technisches Hintergrundwissen hast, kennst du vielleicht die Systemdateien von Windows (DLL - Dynamic Link Library). Das sind bspw. Implementationen von Shnittstellen- das heißt hier steht der Code, der hinter der Schnittstelle ausgeführt wird. Dieses Prinzip gibt es auch in anderen Betriebssystemen und viele Spiele verwenden es.

...zur Antwort

Warte lieber erstmal ab. Er ist sicher noch nicht so weit sich auf etwas ernstes einzulassen. Es kann so sonst leider passieren, das du in eine Situation gerätst, die er vielleicht nicht so ernst meint, wie du.. Lass ihm Zeit..

...zur Antwort

Das kannst du auch gern auf unserer neuen Gameserver Seite machen:

http://letop100.com

Einfach Server eintragen, und wenn du willst auch gleich noch den Voting Link bei dir hinterlegen, um im Ranking immer schön oben zu stehen. Das beste daran: Es ist kostenlos. :)

...zur Antwort