HX3 Foren  

  HX3 Foren > Konstruktiv > Software- und Webentwicklung

Software- und Webentwicklung Planung, Programmierung und Administration
UML, JavaScript/DOM, ASP, JSP, PHP, Apache, MySQL, Python, Perl (...)

Antwort
 
Themen-Optionen Ansicht
Alt 25.08.2003, 22:07   #1 (permalink)
Administrator 10 Jahre hx3
5000 Beiträge
 
Benutzerbild von Atomic
 
Registriert seit: 21.02.2003
Ort: Köln
Alter: 38
Beiträge: 5.162
Atomic eine Nachricht über Skype™ schicken
Standard

Hier geht es mir weniger drum wie toll der Editor ist sondern viel mehr wie weit man mit den Technischen Möglichkeiten kommt. Inwieweit die Mängel der Vergangenheit behoben wurden und inwieweit es möglich ist Brücke zu schlagen zur OpenSource Gemeinde die größtenteils in der Unix Welt angesiedelt ist.


Hintergrundwissen:

C ist wohl die wichtigste Programmiersprache der Welt.
C hat viele "Ableger".
Der wohl wichtigste ist C++.
C++ ist sozusagen eine Weiterentwicklung von C.
C++ ist abwärtkompatibel zu C.
PHP wurde in C geschrieben.
Direct X wurde in C++ geschrieben. (Darauf bassieren die meisten Games.)
Visual C++ ist eine Klassenbibliothek von Microsoft für Grafische Windowsoberflächen.
Visual C++ .NET ist Visual C++ plus .NET Framework Erweiterung
.NET ist das große neue Konzept von Microsoft (die neue "Strategie")
.NET Framework besteht aus sogenannten "managed extensions"
Was ist so toll an diesen "managed extensions"?
Man kann sie in allen gängigen Microsoft sprachen schreiben und sie sind für alle diese Sprachen nutzbar.
.NET Framework bietet viel automatisierung gemäß dem neuen Microsoft Slogan "Mehr mit weniger"


Hintergrundgedanken:

Warum C?
C gehört zu den mit abstand schnellsten Sprachen (Darum schreibt man ja die ganzen Spiele in C)
Auf C bassieren die meisten Projekte. Z.B. ImageMagick (Grafikbearbeitung mit Support von bis zu 80 Major Grafikformaten) Sowas will man natürlich für seine eigene Anwendung auch haben (nutzen können).
Die Syntax ist mir vertraut.
Mit C kann man z.B. auch eigene PHP Extensions (Erweiterungen) schreiben.
Nur mit VC++ kann man wirklich proffessionelle Windows Anwendungen schreiben.

Mängel aus der Vergangenheit (ob sie behoben wurden sprechen wir später an) (Es bezieht sich auf das Produkt Visual C++ Studio 6.0):
Wer mit Mircrosoft Produkten arbeitt kann nur Microsoft Produkte einsetzen, weil Microsoft egosistisch ist.
Die C Standart Library ist nicht annähernd zufriedendstellend: Man vermisst viele Funktionen die man von PHP kennt und für selbstverständlich hält.
An allen Ecken findet man provisorische Lösungen um die kompatibilität zu C aufrecht zu erhalten.
Das konfigurieren der Entwicklungsumgebung ist alles andere als leicht.
C++ besitzt viel zuviele Konzepte die erst wahre Profis zu beherschen vermögen (und als Profi bezeichne ich mich noch nicht).
Und ganz wichtig: Die IDE (Visual C++ Studio 6.0) ünterstützt einem mit den 100 Wizzards und trägt einem. Sie vermag selbständig Projekte wie Browser zu generieren, ABER wer gezwungen ist etwas tiefer in die Materie einzusteigen steht vor der gigantischen MSDN Library und weiß nicht wo er zu suchen anfangen soll und was zu was gehört.

Microsoft hatte also nicht gerade wenig Mängel innerhalb der lezten Jahre zu beheben.
Ob das ihnen gelungen ist?


120 Euro für das Microsoft Produkt

Ja soviel musste ich bezahlen.
An Amazon.
Das Produkt heist mit vollem Namen:
"Microsoft Visual C++ Studio Standart Edition 2003"
Der Preiß ist gegenüber der 2002 Version gefallen.
Und vergleicht man es mit anderen IDE's so ist der Preiß doch recht billig.
Aber was ist schon billig wenn man bedenkt das die ganzen Produkt nur über 1000 Euro kosten weil die Leute schlichtweg zu beschränkt (das ist jetzt nicht beleidigend gemeint und manchmal macht es ja auch wirklich sinn zu blechen) sind um sich ordentlich auf dem Markt umzuschauen.
Nungut was die IDE wirklich kann werden wir ja sehen.
Ob ich die Software kaufe hab ich im übrigen von den Rezessionen auf Amazon abhängig gemacht.
Früher hab ich schon Flops gekauft, aber seit ich mir genau durchlese was die anderen über das produkt erzählen durchlese und mit meinen interessen vergleiche hab ich noch keinen weiteren Flop an Land gezogen.

Als ich die Schachtel öffne sticht mir soffort die ausnahmsweise mal richtig üppige Ausstattung entgegen.
Ich zähle auf:
2 CD's für das eigentliche Programm
1 CD mit dem Visual Studio.net Dateien
3 CD's mit der Kompletten MSDN Wissensbibliothek
Ein 100 seitiges Buch (!) "Microsoft Visual C++ .NET Schnelleinstieg"
6 (!) große Poster mit sinnvollen Inhalten (Technische Darstellungen zum .NET Framework und Klassen + Möglichkeiten)
weitere Prospekte und Papiere

Saubere Sache

Das die Installation dementsprechend Lange dauert (6 CDs).
Man kann aber auswählen wieviel man installieren will.
Bei mir waren es rund 1000MB Software + 780MB MSDN.
Auserdem wäre es mir egal wenn es Stunden dauern würde: Sowas hat nun wirklich keine Relevanz.

Die Installation lief wie zu erwarten ohne Probleme.


Ein Blick auf die neue Oberfläche und die Windows Forms:

Ich machs kurz: Ich kenne wirklich keine IDE mit so einer durchdachten Oberfläche und ich kenne nicht gerade wenige.

Hier ein richtiger Screenshot:
http://www.hx3.de/ext/image/VCppNET2003.png
(Die Verpackungsrückseite ist ja echt ein Witz dagegen.)

Windows Forms?
Ja das ist das Ding was das MFC ablöst.
Windows Forms sind ein Teil des Frameworks.
Mit ihnen lässt sich mal wirklich toll arbeiten.
Da hat man links seine Toolbox die man jederzeit durch neue Steuerelemente wie z.B. ActiveX oder COM Objekte erweitern kann. (Man muss also nur ins Nets gehen und sich neue coole Steuerelemente saugen.)
Per Drag&Drop zieht man die dann in seine Anwendung hinein.
Konfigurieren kann man sie dann über das Eigenschaften Fenster.
Und diesmal gibt es wirklich viele Freiheiten.
Genauso ist es mit den Events (OnClick usw.)
Toll finde ich auch das wenn man in das entsprechende Feld klickt das dann auch eine hilfreiche Darstellung arbietet. Was ich meine ist:
Gibt es feste Optionen kann man sie per DropDown auswählen.
Möchte man eine eigene Funktion an irgendwas koppeln so macht man einfach einen Doppelklick.
Kann man eigene Funktionen daran koppelt werden sie angezeigt.
Wenn unbedingt eine neue eigene erforderlich ist bleibt das feld lehr.
Wenn es um Sachen wie ausrichtung geht kann man das grafisch anklicken. (auch mehrfachsuwahl ist möglich)
(...)
Das ganze erscheint dann auch im Code.
Und zwar diesmal fein säuberlich in bestem Object Orientierten Stil.

Eine neue inovation hinsichtlich Sytnax highlighning ist die möglichkeiten Code auszublenden.
Das ist so zu verstehen:
Schreibt man Code so stehen automatisch links vom Code Kästchen.
Klickt man auf ein Kästchen so schliest es sich und blendet den Code bis zum nächsten aus.
Man kann den Inhalt von Funktionen ausblenden, den Inhalt von Kommentaren usw.
Es ist auch möglich Code selbständig auszublenden.
Den code kann man jederzeit wieder einblenden man muss nur auf die Kästen mit den 3 Punkten "..." klicken und schon öffnen sie sich wieder.
Das erhöht die übersicht drastisch wenn es sich um größere Projekte handelt.

Man kann auch eigene codefetzen in der Toolbox ablegen und per Drag&Drop im Dokument verteilen.

Als sehr flexibel ist auch die subfenter management möglichkeiten zu bezeichnen.
Was ich meine sind die kleinen Unterfenster wie "Eigenschaften" "Objekt Browser" usw.
Man kann sie an irgend eine seite andocken.
Kann sie dynamisch einblenden lassen (wenn man über die schaltfläche fährt)
man kann sie verschachteln
Man kann sie zu seiten machen und wie dokumente behandeln.
(...)
Nunja: Es ist immer so das immer der Platz fehlt. Aber Mircosofts Lösung ist die bisher beste die ich gesehen habe.
Etwas zu denken gibt mir jedoch das Microsoft immer über die "Coolen" Windows Elemente verfügt und diese erst ab der nöchsten Generation frei gibt. Ich persönlich würde auch gerne eine Anwendung schreiben mit so einem intuitiven Window-Management.

Die Windows Forms lösen eindeutig das MFC ab.


Über die .NET Klassen und MSDN Doku

Die .NET Klassen sind genau das was ich von PHP her kannte und sehr stak kritisiert hab am vorgänger.
In wiewiet wirklich alles vorhanden ist kann ich nicht sagen da ich noch nicht lange genug mit dem Framework arbeite. Ich weiß nur eines: Ich arbeite ausschlislich mit dem Framework.

Mit den Klassen verbunden ist natürlich auch die Dokumentation.
Auch hier war Microsoft sehr schlecht.
Microsoft hat immer mit Quantität geprotzt.

Und hat sich das geändert?
Jein: Viel besser als früher und dazu auch noch auf deutsch und mit zusatzartikeln. Aber die PHP Doku ist halt schon ne ganze Klasse darüber.

Ein Pluspunkt hat die MSDN Doku doch:
Technisch hat sie die PHP Doku bzw. das hauseigene CHM Format abgehängt.

Es gibt die Doku als Software und integriert in die Entwicklungsumgebung, wo sie einen sehr guten Eindruck macht.
Toll auch:
- Filter Möglichkeit
- Dynamische Hilfe


Genug gesabbert.. Kritik:
Sehr stark ist mir ins Auge gestochen das Microsoft C genau wie Java gegenüber den rein-hauseigenen Sprachen Visual Basic und C# benachteiligt hat. Bemerkbar hat sich dies vor allen dingen an den fehlen Beispielen für Java und C gemacht.
Und schaut man ins Internet so hat C# und VB viel mehr Aufmerksamkeit.
Und das wo doch genau diese Sprachen die Eigenschaft "Unix inkompatibel" teilen wie ein Brandmark auf dem Arsch.

Das Microsoft keinen Finger rührt wenn es um Nicht-Microsoft Produkte wie z.B. andere Datenbanken aller MySQL oder Sprachen aller PHP geht merkt man.
Und leider sind auch viele Microsoft Anhänger (z.T auch wegen der starken angreifenden kritik der gegenpartei) so von dem glanz geblendet das sie sich voll auf die seite von microsoft und kompatibilität wenn es um drittanbieter geht für völlig unsinnig halten.
Ebenfalls kritisiere ich alle Unix User die aus Protest jegliche microsoft kompatibilität in ihren projekten vermeiden.
Denn ihr macht es mir nun wirklich unnötig schwer.
Ich bin nicht bereit ein Microsoft Anhänger zu werden und genausowenig ein Linux Fan.
Auf meinem PC läuft Windows und das ist auch gut so.
Und ich arbeite mit PHP (Projekt aus der Unix Welt) und das ist ebenfalls gut so. (Es gibt keine PHP Alternative - ASP ist einfach anderst)
Und ein geht nicht ist nicht akzeptabel.

Aber für mich ist nun nicht wirklich die kompatibilität an sich wichtig sondern das ich meine Checkliste (meinen Wille) durchsetzen kann.

Meine Checkliste mit Dingen die ich brauche für anstehende Projekte:

- MySQL Datenbank Server connection (Ich sehe nicht ein Microsoft SQL Server zu lernen, und MySQL ist im Internet nunma sehr weit verbreitet.) Auserdem ist MySQL kostenlos.
- Regex (Richtige Textverarbeitung kommt nicht ohne aus)
- Browser in der eigenen Anwendung um Html Dokumente darstellen zu können
- ImageMagick als Grafiklibrary
- Grafiken Darstellen können (im Vorgänger waren standartmäsig nur primitive pixelgrafiken möglich)
- Internet Dateien aufrufen und per POST Daten hochschicken
- FTP
- Bessere Funktionen um mit Strings u.ä. arbeiten zu können.
(...)

Ersteres konnte ich durch einbindung einer drittanbieter DLL regeln.
Für Zweiteres gibt es eine eigene Klasse im Framework
Dritteres ist über das einbinden eines PlugIns wirklich kinderleicht möglich.
Mit ImageMagick hab ich noch nicht wieder befasst. Das mit den Datentypen könnte wieder etwas stressen.
Viertes ist wie mein Screenshot beweist möglich.
Auf Fünftes bin ich durch zufall gestoßen als ich was anderes gesucht hab.
FTP hatte ich noch keine Zeit.
Zu letzterem: Es gibt ein neues String Format aber das ist nutzlos wenn es sich um eine in reinem C geschriebenem Library handelt.


Abwertskompatibel?

Das Framework bietet viel Automatisierung.
Die OOP wurde leichter.
Das Framework bringt viele Funktionen.
Doch was wenn ich eine PHP Extension schreiben möchte?
Tja dann hab ich ein Problem denn PHP akzeptiert nur C.

Nun andererseits muss es ja nun wirklich nicht immer .NET sein.
Die möglichkeit in C Klassen zu schreiben die ich dann sowohl für PHP verwenden kann als auch für VC++.NET ist doch schon was.
Nachteil eigener extensions ist natürlich das man sie schlecht wie z.B. ein Newsscript unters Volk werfen kann weil die meisten Hoster keine no-name Extensions akzeptieren werden.

Vorteil von Extensions: Nun z.B. die Geschwindigkeit. Gerade bei rechenintenbsiven Scripten wie dem HX3 Seitenparser mit Scripting Features ist sowas wünschenswert.


Ausblick:
Die Preisleistung stimmt.
Es ist die #1 in windows anwendungen.
Es gibt verblüffend gute Verbesserungen
Microsoft bleibt egoistisch, aber es gibt eine große Gemeinde von Programmierern die Lösungen gratis anbieten
Tools für HX3 CMS Nutzer in VC++.NET sollte ich vielleicht doch in PHP GTK schreiben (oder java aber das behersche ich nicht) damit man sie auch auf Linux und Mac nutzen kann. Das bin ich der OpenSource Gemeinde schuldig.

Für alle die darüber nachdenken C++ zu lernen:

C++ hat eigene eigenheiten.
C++ ist aber logisch auch wenn es einem aufgrund der komplexität zuerst einmal nicht greifbar erscheint
C++ ist doch ein ganzes stück schwerer

Tip: Es gibt auch eine kostenlose Autoren Version der 6.0 Version.
Gegenüber anderen halte ich es jedoch nicht sehr empfelenswert mit dieser zu arbeiten.

Kauft euch lieber diese Version.
Möglicherweise könnt ihr sie als schülerversion noch billiger bekommen.
Denkt auch an eure Verwandten die sichrlich gleich viel spendabler sein werden wenn sie begreifen das man mit Programmierer kenntnissen in jedem Betrieb gleich viel besser ankommt. (In jedem betrieb braucht es jemanden mit EDV und Informatik kentnissen). Und einen Leistungsnachweiß gibt es auch: Man kann Zertifikate ablegen die man dann bei einer Bewerbung vorweisen kann.

Über illegale Wege an die Software zu kommen rate ich strigt aufgrund der vollgenden Gründe ab:
- Die Software ist ausnahmsweise ihr geld wert
- Es ist eich hochentwickeltes hochinteligentes microsoft produkt
- Es ist inklusive Doku komplett deutsch
- Ihr erstellt damit software mit von microsoft generiertem bytecode wo wasweiß ich noch alles an sonderinformationen drinnstehen kann
- Ihr müsst auf die tolle sonderausstattung verzichten
- Ich habt nicht das tolle gefühl was wirklich mächtiges zu besitzen


Fragen?
__________________
https://savetheinternet.info/
Atomic ist offline   Mit Zitat antworten
Alt 26.08.2003, 15:20   #2 (permalink)
10 Jahre hx3
500 Beiträge1000 Beiträge2.500 Beiträge
 
Benutzerbild von xezon
 
Registriert seit: 31.03.2003
Beiträge: 2.533
Standard

Krass, das lese ich mir nachher durch...
xezon ist offline   Mit Zitat antworten
Alt 26.08.2003, 19:00   #3 (permalink)
10 Jahre hx3
500 Beiträge1000 Beiträge2.500 Beiträge
 
Benutzerbild von xezon
 
Registriert seit: 31.03.2003
Beiträge: 2.533
Standard

Das klingt alles sehr interessant und diesen Abschnitt finde ich sehr interessant, weil der erstmal der wichtigste ist für mich:
Zitat:

Originally posted by Atomic
Für alle die darüber nachdenken C++ zu lernen:

Ich habe schon oft gehört, dass C bzw. C++ hilfreich sein kann, um eben Programme zu schreiben. Und nun bin ich am überlegen, ob ich das lernen möchte. Ich weiß aber nicht so recht wie ich anfangen soll, da kommt mir dieser Thread von dem lieben Atomic ganz gelegen. Ich bin mir aber immer noch unsicher, ob ich Geld darin investieren will. Was soll ich tun?
xezon ist offline   Mit Zitat antworten
Alt 26.08.2003, 20:12   #4 (permalink)
Administrator 10 Jahre hx3
5000 Beiträge
 
Benutzerbild von Atomic
 
Registriert seit: 21.02.2003
Ort: Köln
Alter: 38
Beiträge: 5.162
Atomic eine Nachricht über Skype™ schicken
Standard

Wenn du überhaupt noch nicht mit einer Spracher aller C gearbeitest hast,
dann empfehle ich dir dich erst einmal mit
A: PHP zu befassen
oder B: C bzw. C++ (also ohne das große V und das .NET) selber zu lernen und dafür brauchst du kein Visual C++ Studio .NET

Soetwas würde ich mir nur zulegen wenn ich mir über den Erfolg im Klaren bin.
Ich beispielsweise hab mir schon ein paar Produkte von Magix gekauft.
Hört sich einfach zu toll an "Super Musik selbst zu machen - kinderleicht".

Nur weil du nicht gleich Programme mit grafischer Oberfläche erstellen kannst ist das nicht langweilig oder öde.
Die Sprache zu lernen hat auch was für sich und die grafischen Oberflächen sind Praktisch in der Regel nur ein geklicke.

Wenn du wahre Programme entwickeln willst ist wichtig verschiedene Kenntnisse zu haben:
Man muss SQL können um mit Datenbanken umgehen zu können.
Man muss Regex können um Texte zu verarbeiten.
Man muss die Konzepte von C verstanden haben um mit Drittanbieter Bibliotheken arbeiten zu können.
(...)

Ich würde an deiner Stelle das ganze etwas lockerer anfangen mit kleinen lustigen bzw. interessanten und herausfordernden eigenen Programmen (noch ohne Grafische Oberfläche).

Falls du jedoch soffort nach oben willst (professionell) solltest du dich über Kurse und Schulungen beraten.

Anfangen kann kein Fehler sein: Man lernt was.
Geld investieren schon: Man könnte ein Produkt kaufen und erst zuspät merken das einem das nicht das bringt was man sich zu erwünschen hoffte.

Ein Manko mit C bzw. C++ gibt es: Die STL (Standarbibliothek) lässt sehr zu wünschen übrig.

PHP ähnelt C hinsichtlich der Syntax und ist mehr Praktisch orientiert, sowie verständlicher.
Es gibt in PHP nichts was einem in C nicht helfen könnte.
Es ist so als würdest du ein einfaches C lernen nur eben mehr Weborientiert (man kann auch grafische Anwendungen in PHP schreiben - nur weiß das nicht jeder.)

Ich hab mit JavaScript begonnen. (Mach das bloß nicht!!)
Dann nach einem kurzen einblick in Java C++ (hat aber damals nicht so ganz gewollt (die Zeiger und Datentypkonvertierung hat mir schwer zu schaffen gemacht sowie ein bischen das Konzept OOP mit MFC)
dann PHP (da gibt es nun abgesehen von einer sache nichts mehr zu lernen) und jetzt wieder C++ und diesmal mit .NET Unterstützung.
__________________
https://savetheinternet.info/
Atomic ist offline   Mit Zitat antworten
Alt 27.08.2003, 14:39   #5 (permalink)
10 Jahre hx3
500 Beiträge1000 Beiträge2.500 Beiträge
 
Benutzerbild von xezon
 
Registriert seit: 31.03.2003
Beiträge: 2.533
Standard

Dem entnehme ich, dass ich mich zuerst mit PHP beschäftigen soll. Wie soll ich das anstellen? Woher bekomme ich Material?
xezon ist offline   Mit Zitat antworten
Alt 27.08.2003, 17:25   #6 (permalink)
Administrator 10 Jahre hx3
5000 Beiträge
 
Benutzerbild von Atomic
 
Registriert seit: 21.02.2003
Ort: Köln
Alter: 38
Beiträge: 5.162
Atomic eine Nachricht über Skype™ schicken
Standard

Die wichtigste URL (erkennt man auch am Page Rank von 10(!!!) - außer Google selber hat das soweit ich weiß keine andere Website auf der Welt): http://www.php.net
Lade dir am besten die deutsche Doku als *.chm Datei herunter. (->Windows Doku Format - viel besser als html)
Aber wenn du mit PHP arbeitest solltest du schon ObjektOrientiert arbeiten.
Denn Windows Programme haben einen Mainloop und sind objekt orientiert geschrieben.
Ein Ablaufplan (z.B. zur Erzeugung einer Html Seite) hat nichts damit zu tun.

Zitat:

Dem entnehme ich, dass ich mich zuerst mit PHP beschäftigen soll.

Oder mit C/C++
__________________
https://savetheinternet.info/
Atomic ist offline   Mit Zitat antworten
Alt 27.08.2003, 17:36   #7 (permalink)
10 Jahre hx3
500 Beiträge1000 Beiträge2.500 Beiträge
 
Benutzerbild von xezon
 
Registriert seit: 31.03.2003
Beiträge: 2.533
Standard

Ist C und C++ dasselbe? Welches von den beiden soll ich denn lieber nehmen?
xezon ist offline   Mit Zitat antworten
Alt 28.08.2003, 23:20   #8 (permalink)
Administrator 10 Jahre hx3
5000 Beiträge
 
Benutzerbild von Atomic
 
Registriert seit: 21.02.2003
Ort: Köln
Alter: 38
Beiträge: 5.162
Atomic eine Nachricht über Skype™ schicken
Standard

C++ ist C nur etwas erweitert.
Es ist also fast das selbe.
C Scripte für C++ anwendungen schreibem: geht
C++ Scripte für C: geht nicht
Deshalb muss man seine Entwicklungsumgebung auch auf C (allein) umstellen wenn man PHP Extensions schreiben will (weil PHP in C geschrieben wurde und nicht in C++).

Warum heute noch C genutzt wird?
Tja ich glaub das C++ "irgendwie" von Microsoft stammt (Microsoft die Hände im Spiel hatte) und leider gibts Leutz die können nicht anderst als alles was Microsoft macht zu verurteilen.
Vielleicht liegt ja an den Kompromissen in C++ (um es C kompatibel zu machen) das manche C++ verschmähen.
Also: Ich weiß es nicht.
__________________
https://savetheinternet.info/
Atomic ist offline   Mit Zitat antworten
Antwort


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen
Ansicht

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus


Kontakt - HX3.de - Archiv - Nach oben

Angetrieben durch vBulletin, Entwicklung von Philipp Dörner & Tobias



SEO by vBSEO 3.2.0 ©2008, Crawlability, Inc.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119