IV 2 Edin's Weblog
Dienstag, 29. Mai 2007
Tutoriumsübung vom 22.Mai

SQL-Abfrage

Bestand - Auftragsmenge/summe

Import der Ergebnisse in Excel

Diagramm mittels Pivot-Chart





Bücheranzahl pro Verlag

Import der Ergebnisse in Excel

Diagramm mittels Pivot-Chart

... link (0 comments)   ... comment


Freitag, 18. Mai 2007
"First Mover" nach Pils et al.

 

E-Business umfasst die Gestaltung aller Bereiche der Geschäftstätigkeit, sowie die Abstimmung der Außenbeziehungen einer Organisation, mit deren Mitarbeiter,  Lieferanten, Kunden, Behörden, Öffentlichkeit, Kapitalgeber etc. mit elektronischen Medien und dementsprechenden Methoden.

E-Business ist nicht nur ein kurzlebiger Modebegriff, es handelt sich um grundsätzliche Umstrukturierung des wirtschaftlichen und gesellschaftlichen Lebens handelt. Es ist mehr als eine Rationalisierungstechnik, es verändern sich Geschäftsstrategien, die in der New Economy nach eigenen Gesetzten funktioniert. Eines dieser Thesen wird als "First Mover" bezeichnet.

Als "First Mover" werden jene Unternehmen bezeichnet, die als erstes Unternehmen einenneuen Markt erschließen. Es hat erkannt, dass es wichtiger ist mit einem Produkt/Dienstleistung auf dem Markt zu gehen, als solange zu warten, bis es bereits perfektioniert ist.

Der Kern für eine erfolgreiche First Mover Strategie ist als "Early Adopter" (Person die ein Produkt früh annimmt) vorne zu bleiben. Wer zu früh stehen bleibt und nicht auf führende Marktstellung abzielt, wird früher oder später aufgekauft oder von der Konkurrenz abgehängt werden.

Der First Mover Vorteil kann ein gutes Instrument sein um einen großen Marktanteil aufzubauen. In manchen Branchen werden First Movers, mit einer Monopolstellung oder auch hohen Gewinnen belohnt.
Andere Branchen wiederum ermöglichen keine so hohen Gewinnen, erlauben es sogar den Late Movers (Späteinsteigern) effektiver und effizienter in den Wettbewerb zu treten gegenüber den First Movern.

Beispiele für erfolgreiche First Mover sind: Hotmail, der erste Gratis-Maildienstleister; Amazon, Vetrieb von Büchern, CD's übers Internet; Gillette, mit seinen Rasierer; Sony mit dem Walkman.

Strategie eines First-Movers kann es auch sein sich als Übernahmekandidat für langsamere, aber finanzkräftige "big players" interessant zu machen, gerade Startup-Unternehmen bevorzugen diese Variante. Bsp.: YouTube - Google. Ebenso wurden auch Apple - bei den grafischen
Benutzeroberflächen oder Netscape im Browsergeschäft vom Microsoft weitgehend vom Markt verdrängt.

Ob ein Unternehmen als First-Mover auftritt hängt von zwei Faktoren ab:

  1. die Geschwindigkeit, mit der sich die Basistechnologie des einführenden Produktes entwickelt,

  2. die Geschwindigkeit, mit der der Markt für das Produkt wächst.

Je schneller sich die Basistechnologie und die Märkte entwickeln, desto riskanter der Schritt als Vorreiter. Eine langsamere Entwicklung erhöht die Chancen für Erfolg, auch wenn die Märkte schnell wachsen. Gefahr besteht nur wenn sich die Technologie schnell verändert, dies ermöglicht Wettbewerber mit neuen Features und besserer Technologie vorbeizuziehen, wie zB im Bereich der Digitalkameres, Web-Browser oder Mobiltelefone.

Weitere Voraussetzungen:

  • ein starkes Marketing, ausreichende Produktionskapazitäten und gute Distribution, wenn das Marktwachstum entscheidend ist;

  • hervorragendes Technik-Know-how, exzellente Forschungs- und Entwicklungsexperten und ausreichende finanzielle Mittel, wenn die Technologie sich rasant entwickelt.

     

Die Vorteile eines First Movers
können sein:

  • Knappe Ressourcen können durch Vorverkaufsrechte erworben werden

  • Besetzung der erstklassigen Einzelhändler

  • Die Möglichkeit Patente und Warenzeichen zu registrieren und sich vor zukünftigen Wettbewerb zu schützen

  • Die Wirtschaft in der Branche zu verändern, dass es Wettbewerbern nicht möglich ist in die Branche einzusteigen.

  • Frühe Gewinne können reinvestiert werden um die Basis zu verbessern.

  • Ein guter Ruf verschafft Vorteile, Lieferanten, Großhändler Kunden welche vertraut sind, zeigen ihre Loyalität zu den
    Produkten/Unternehmen

Grundsätzlich macht ein First Mover nur dann Sinn wenn die Gewinne die Risiken rechtfertigen. Ein First Mover zu bringt auch zwei große Nachteile mit sich: Kosten und Risiken. Zu einem ist es teuer ein Voreiter zu sein und zu anderen ist es nicht möglich als First Mover vom Wissen und den Fehlern anderer zu lernen. Fist Mover müssen oft hohe Forschungs- und Entwicklungskosten mit sich tragen und hohe
Marketingkosten aufwenden um die Bekanntheit ihres Produktes/Dienstleistung zu erlangen. Ein Second Mover kann aus den Erfahrungen des First Movers lernen, möglicherweise muss es nicht hohe Kosten aufwenden, wenn es ihnen gelingt ein ähnliches oder höherwertiges Produkt mit der existierenden Technologie zu entwerfen und somit den First Mover vom Markt zu verdrängen. Oft verdrängt der Second Mover den First Mover von einer Marktische in den Massenmarkt. Nur wenn der First Mover seine Marktposition ausbaut bleibt er auch Sieger in diesen Duell.

Die folgenden aufgezählten Fälle sind jene in denen der Marktanteil des First-Movers im nachhinein vom Second Mover vollkommen erodiert worden sind:

  • Atari vs. Nintendo

  • Apple PDA vs. Palm PDA

  • Charles Stack Online Bookstoore vs. Amazon.com

  • Xerox vs. Canon

Verweise zu Kollegen Christian Henning,Nicole Kraus,
Mathias Mandl
, Claudia Riegler-Klinger,


Quellen
Wissensnavigator
Marketingterms.com
Wikipedia
Business-Wissen.de

Pils et al., Einführung in E-Business, Institut für Datenverabreitung, Johannes Kepler Universität Linz.

... link (2 comments)   ... comment


Mittwoch, 16. Mai 2007
Mediengerechte Integration der SQL Abfragen

1. Abfrage - Ermittlung der Anzahl der Lieferanten

Anzahl der Lieferanten

2.Abfrage - Auflistung aller Verleger

Erweiterung der Abfrage mit einen Kombinationsfeld, man kan auswählen zwischen der Auflistung aller Verläger oder der Auflistung der Bücher.

Bitte treffen Sie Ihre Auswahl:

3.Abfrage - Ermittlung der Bücheranzahl pro Verlag

Bücheranzahl pro Verlag

4.Abfrage - Büchersuche (nach Verlag sortiert)

Erweiterung der Abfrage durch ein Suchfeld, in dem man einen Buchtitel suchen kann. Mögliche Eingaben wie Mathematik, Chemie, Biolgoie, etc. Man erhält Infomationen welche Bücher es mit solchen Titeln gibt und von welchen Verlag diese angeboten werden.

Buchtitel eingeben:





5.Abfrage - Ermittlung des durchschnittlichen
Bücherbestandes

Durchschnittlicher Bücherbestand

6.Abfrage - Ermittlung des Durchschnittspreises

Durchschnittspreis pro Verlag

7.Abfrage - Ermittlung nach der Auftragsmenge

Auftragsmenge pro Verlag

8.Abfrage - Ermittlung nach der Auftragssumme

Auftragssumme pro Verlag

... link (0 comments)   ... comment


Dienstag, 24. April 2007
3. Tutorium
Optionsfelder Aussuchen:
Bitte treffen Sie Ihre Auswahl:



Optionsfelder Aussuchen:
Treffen Auswahl



Buchtitel:
Verlag:





Buchtitel
Verlag





Eingabe

Auswahl



... link (0 comments)   ... comment


Dienstag, 17. April 2007
2. Tutorium
Anzahl der Buecher je Verlag



Anzahl der Aufträge je Kunde

... link (0 comments)   ... comment


Samstag, 14. April 2007
SQL-Aufgabe

Aufgabenstellung:
Stellen Sie fest, welche Lieferanten Haupt- und welche Nebenlieferanten sind.
Unterscheiden Sie zwischen mengen- und wertmäßigen Betrachtungen. Wie abhängig
ist Ihr Betrieb von einzelnen (wenigen) Lieferanten?

1. Abfrage - Ermittlung der Anzahl der Lieferanten

SELECT
Count(Kurzbezeichnung) AS Lieferantenanzahl

FROM Verlag

Erklärung der Abfrage:

In den Befehl SELECT werden alle Tabellenfelder angegeben die angezeigt werden sollen. Der Befehl Count zählt die Anzahl der Kurzbezeichnungen der Verleger und durch den Befehl AS wird wird die Tabellespalte als "Lieferatenanzahl" angegeben. From gibt an von welcher Tabelle die Daten bezogen werden sollen.

Erklärung des Ergebnisses:

Die Abfrage ergibt dass es insgesamt 22 Verleger (Lieferanten) gibt. Sollte uns einen Überblick schaffen von wieviel Lieferanten unser Unternehmen abhängig ist.

 

 

2.Abfrage - Auflistung aller Verleger

SELECT Verlag.Kurzbezeichnung,
Verlag. Name, Verlag. Kundennummer, Verlag.Strasse, Verlag.Plz, PLZ.Ort

FROM Verlag, PLZ

WHERE PLZ.Plz = Verlag.Plz

Erklärung der Abfrage:

Es werden die Daten wie der Name, Kurzbezeichnung, Kundennummer, Strasse, Postleitzahl von der Tabelle Verlag angezeigt zudem der Ort aus der Tabelle PLZ.
Da hier Daten aus zwei verschiedenen Tabellen bezogen werden, müssen in der WHERE Bedingung die Beziehungen (siehe Pfeile) der Tabellen erzeugt werden. Die Postleitzahl(en) der Tabelle PLZ entspricht der Postleitzahl jenen einzelnen Verlags in der Tabelle Verlag.

Erklärung des Ergebnisses:
Die Abfrage zeigt uns eine vollständige Auflistung aller Namen der Verleger, samt deren Kurzbezeichnung, Kundennummer, Strasse, Postleitzahl und Ort. Somit haben wir Daten unserer Lieferanten immer schnell zu Hand.

 

3.Abfrage - Ermittlung der Bücheranzahl pro Verlag

SELECT Verlag.Name, COUNT(Buch.Titel)
AS Bücheranzahl

FROM  Buch, Verlag

WHERE Buch.Verlag=Verlag.Kurzbezeichnung

GROUP BY Verlag.Name

ORDER BY 2 DESC

 

Erklärung der Abfrage:

SELECT: Der Name des Verlages soll angezeigt werden, durch den Befehl COUNT wird die Anzahl der Buchtitel angegeben und als Tabellenspalte "Bücheranzahl" angegeben.

FROM: Die Daten werden aus den Tabellen Buch und Verlag bezogen. WHERE: Die Kurzbezeichnung in Tabelle Verlag entspricht den einzelnen Verlegern in Tabelle Buch.

GROUP BY: Gruppiert wird die Abfrage nach den Namen des Verlags.  Es müssen immer alle Felder die im SELECT-Teil angegeben werden und auf die keine Aggregatfunktion (hier COUNT) angewendet wird auch im GROUP BY-Teil enthalten sein

ORDER BY: Hier wird das Feld angeben dass sortiert werden soll. ORDER BY 2 bedeutet das 2 Feld im Select Teil also nach COUNT(Buch.Titel)=Anzahl Buchtitel. DESC = absteigend sortiert. Wenn nichts angeben wird, wird automatisch aufsteigend sortiert
ASC.

Erklärung des Ergebnisses:
Diese Abfrage gibt uns an wie viele verschiedene Bücher die einzelnen Verleger vertreiben und gibt uns somit einen mengenmäßigen Ausschluss über deren Marktanteil.
Größter Bucherverleger ist der Österreichische Bundesverlag GesmbH mit knapp über 2000 Büchern, die MANZsche Verlagsbuchhandlung rund 650 Büchern, Wertpraesent Wels 425 Büchern, ED. H OEL Z E L Ges.m.b.H. - 187 Büchern , Dr. F. HAIN Verlagsauslieferung - 159 Büchern, die ich als persönlich nach den Hauptlieferanten einstufen würden und zu den immer gute Kontaktpflege empfehlenswert wäre. Nur zum Vergleich: Die 7 "letzten" Verleger in dieser Statistik halten insgesamt 25 Bücher zur Auswahl - denen ist wohl geringere Aufmerksamkeit zu schenken.

 

 

4.Abfrage - Ermittlung des durchschnittlichen
Bücherbestandes

SELECT Verlag.Name, SUM(Buch.Bestand) AS Bücherbestand, COUNT(Buch.Titel) AS Bücheranzahl, AVG(Buch.Bestand)
AS Durchschnittbestand

FROM Verlag, Buch

WHERE Verlag.Kurzbezeichnung = Buch.Verlag

GROUP BY
Verlag.Name

ORDER BY 4
DESC

 

Erklärung der Abfrage:

SELECT: Neben der Bücheranzahl, soll hier auch der Gesamtbestand der Bücher angegeben werden durch die Funktion
SUM()=Summe und daraus ableitend der durchschnittliche Bücherbestand(Durchschnittbestand) angegeben werden.

ORDER BY: Es soll hier nach dem durchschnittlichen Bestand absteigend sortiert werden.

Erklärung des Ergebnisses:
Diese Abfrage soll uns über den wertmäßigen Bücherbestand der Verleger Aufschluss geben.
Bei niedrigen Bücherbestand, ist Aufmerksamkeit notwendig, hier muss man eventuell früher bestellen, damit diese nicht von der Konkurrenz  aufgekauft werden. Bei Verlegern mit hohen Bücherbestand ist davon auszugehen, dass das gewünschte Buch auch kurzfristig auf Lager sein wird. Hier lässt sich auch mit den Preis verhandeln. Den höchsten Durchschnittsbestand mit 61,33 Büchern hat das Katholisches Bibelwerk zu verzeichnen, jedoch bei einer Bücheranzahl von 3 verschieden Bücher, wenig aussagekräftig. Der gute Durchschnitt des Bestandes bewegt sich zwischen 40 und 50 Büchern. Das Schlussschlicht ist das Jugend und Volk Gesellschafts GesmbH mit "nur" 23,3 Büchern

 

 

5.Abfrage - Ermittlung des Durchschnittspreises

SELECT Buch.Verlag, Verlag.Name,
SUM(Buch.Preis) AS Preissumme, Count(Buch.Nr) AS
Bücheranzahl, AVG(Buch.Preis) AS Durchschnitsspreis

FROM Buch, Verlag

WHERE Verlag.Kurzbezeichnung=Buch.Verlag

GROUP BY
Buch.Verlag

ORDER BY 5
DESC

 

Erklärung der Abfrage:

SELECT: Neben Name des Verlags, Bücheranzahl, soll hier die Summe des Preises angebgen werden durch SUM(Buch.Preis), indemfall wenn jedes Buch nur einmal bestellt wird, und der daraus abgeleitet Durchschnittspreis eines Buches je Verlag angegeben werden

ORDER BY: Es wird nach den
Durchschnittspreis absteigend sortiert werden.

Erklärung des Ergebnisses:
Die Abfrage soll uns einen Überblick verschaffen wie teuer/billig im Durchschnitt ein Buch je Verlag ist und damit uns eine wertmäßige Analyse darstellen. Preise spielen eine sehr wichtige Rolle bei der Einkaufsplanung und bei der Ermittlung eines Deckungsbeitrages. Bei den Ergebnis: konnte ich sehr große Preisunterschiede festellen: So kostet beim Stocker Verlag ein Buch im Durchschnitt: 77,8 Euro, Bohmann Druck und VerlagsGesmbH 71,81. Während beim Bestandsmäßig größten Anbieter: Österreichischer Bundesverlag GesmbH ein Buch im Durchschnitt "nur" 20,20 Euro kostet. Am billigsten ist der Österreichische Bibelverband mit 10,85 Euro im Durchschnitt.

 

 

6.Abfrage - Ermittlung nach der Auftragsmenge

SELECT Verlag.Name, Buch.Verlag,
SUM(Auftragspos.Menge) AS Auftragsmenge

FROM Verlag, Buch, Auftragspos

WHERE Verlag.Kurzbezeichnung =
Buch.Verlag and Buch.Nr = Auftragspos.Buchnummer

GROUP BY Buch.Verlag

ORDER BY 3 DESC

 

Erklärung der Abfrage:

SELECT: Hier soll nun die Summe der Auftragsmenge je Verlag angeben werden.

WHERE: Da auch Felder aus der Tabelle Auftragspos angezeigt werden sollen muss nun auch zu dieser Tabelle eine Verknüpfung erstellt werden. Eine Buchnummer in Buch.Nr entspricht einer einzelnen Nummer in Auftragspos.Buchnummer.

ORDER BY: Absteigend nach der Auftragsmenge soll sortiert werden.

Erklärung des Ergebnisses:
Die Abfrage ergibt uns ein mengenmäßiges Ergebnis der Summe aller Aufträge je Verlag, und verschafft uns damit einen Einblick in die auftragsmäßig wichtigsten Verleger und Aufschluss über deren Marktanteil. Während der Österreichische Bundesverlag GesmbH um die 241413 Aufträge umfasst hat als Schlussschlicht die Österreichische Bibelgesellschaft nur 93 Aufträge aufzuweisen.

 

 

7.Abfrage - Ermittlung nach der Auftragssumme

SELECT Buch.Verlag, Verlag.Name,
SUM(Buch.Preis*Auftragspos.Menge) AS Auftragssumme

FROM Verlag, Buch, Auftragspos

WHERE Verlag.Kurzbezeichnung=Buch.Verlag
and Buch.Nr=Auftragspos.Buchnummer

GROUP BY Buch.Verlag

ORDER BY 3 DESC

 

Erklärung der Abfrage:

SELECT: Eine Erweiterung zur letzten Abfrage hier wird die Menge der Auftragssumme mit den Buchpreis multipliziert um somit die Gesamtauftragssumme zu erhalten.

ORDER BY: Absteigend nach der Auftragssumme sortiert.

Erklärung des Ergebnisses:
Die Erweiterung auf die Auftragssumme ergibt uns einen wertmäßigen Indikator. Wir erhalten somit einen wertmäßig und mengenmäßig agreggierte aussagekräftige Gesamtzahl (Buchpreis x Auftragsmenge). Die Ergebnisse spiegeln der letzten Abfrage nach der Auftragsmenge. Spitzenreiter ist wiederum die Österreichische Bundesverlags GesmbH und Schlusslicht abermals die Österreichische Bibelgesellschaft.

Ich würde somit nach Betrachtung der letzten beiden Abfragen die Oesterreichischer BUNDESVERLAG Ges.m.b.H.,
MANZsche Verlagsbuchhandlung, Wertpraesent Wels, Dr. F. HAIN Verlagsauslieferung,
ED. H OEL Z E L Ges.m.b.H., S T O C K E R VERLAG als unsere Hauptlieferanten einstufen, da sie sowohl wertmäßig und mengenmäßig an der Spitze sich befinden und die restlichen Verfleger weit hinter sich lassen.

 
 
Schlussendlich, möchte ich auf meine Kollegen verweisen,
die sich auch mit dem selben Thema beschäftigt haben


Michael David

Harald Josef Hageneder Christian Henning

Nicole Kraus Samir Midani
Thomas Sander
Stefan Sulzbacher

 

... link (0 comments)   ... comment


Dienstag, 27. März 2007
Erstes Tutorium
Text fett

Kursiv schreiben

kursiv und fett

größer schreiben

Google-Link

Bild einfügen:


Link auf den Bild



E-Mail Adresse

Aufzählung
  • Test1
  • Test2
Farben
Text

Laufschrift
Text

Text

... link (0 comments)   ... comment


Dienstag, 20. März 2007
Plattformunabhängige/spezifische Ebene
Um die Begriffe plattformunabhängige Ebene PIM und plattformspezifische Ebene PAM zu beschreiben möchte ich im vorhinein auf meine Kollegen Sinisa Mladenovic  und Karin Engelsberger verweisen, welche sich mit der Materie Model Driven Architecture MDA auseinandersetzen.
Model Driven Architecture teilt einen gesamten Prozess der Softwareentwicklung in mehrere Schichten darunter in die plattformunabhängige Ebene PIM - Platform Independent Model und plattformspezifische Ebene PSM - Plattform Specific Model. Durch diese Trennung in höhere Abstraktionsschichten wird eine Beschleunigung der Softwareentwicklung bei garantiert hoher Qualität ermöglicht.

In der plattformunabhängigen Ebene wird das fachliche Wissen der Anwendung (Sofwaresystems) technologieunabhängig erfasst und modelliert. zB. Geschäftsprozesse, Fachverfahren. Es sind nur rein fachliche Aspekte zu beachten. Das entstandene Modell hat selbst dann Gültigkeit, wenn überhaupt keine Software entwickelt wird.

In den plattformspezifischen Modellen wird die Implementierungstechnologie definiert, d. h. die technischen Aspekte bezogen auf eine konkrete Plattform. Häufig kommt es hier zu Einsatz von Frameworks. Der Softwareentwickler muss mit diesen Frameworks nicht ins Detail vertraut sein. Die Transformationen beinhalten das nötige Know-How.

Werden plattformunabhängige Modelle in maschinell plattformspezifische transformiert werden erhebliche Teile der Softwarearchitektur einschließlich Code generiert. Beide Modelle können unabhängig voneinander wieder verwendet werden. Das Plattformunabhängige Modell kann jederzeit be/verändert bzw. erweitert werden und immer wieder transformiert werden. Alle manuellen Ergänzungen, die im plattformspezifischen Modell und seinem Code vorgenommen wurden, bleiben bei einer Wiederholung der Transformation erhalten.

Grundsätzlich sind folgende Typen von Transformationen zu unterscheiden

PIM zu PIM: wird verwendet wenn Modelle verfeinert, erweitert etc werden müssen ohne dabei plattformabhängige Informationen zu nutzen. Man spricht von Modellverfeinerung. Möglichkeit ein Geschäftsmodell in mehreren Geschäftspunkten aufzuzeichnen.

PIM zu PSM: Dabei werden die plattformunabhängigen and die speziellen Gegebenheiten einer technologieabhängigen Plattform tranferiert. Das Modell wird auf unterschiedliche Komponenten abgebildet, welche in Abhängigkeit der gewählten Plattform unterschiedlich definiert sind.

PSM zu PSM: PSM Modelle können auch bei Bedarf verfeinert werden und Implementierungsdetails ergänzen oder in eine andere Zielplattform zu transformieren.

PSM zu PIM: Ermöglicht die Abstraktion von Modellen der existierenden, plattformspezifischen Implementierungen zu plattformunabhängigen Modellen. Diese Transformation wird als Refactoring bezeichnet.

Quellen

Softwarekompetenz

Wikipedia
Form4: MDA

Microtool


Seminararbeit - Grundlagen der MDA

... link (0 comments)   ... comment


Online for 6405 days
Last update: 2007.06.26, 10:02
status
You're not logged in ... login
menu
... home
... topics
... galleries

... ::collabor:: home
search
 
calendar
September 2024
Mo
Di
Mi
Do
Fr
Sa
So
 
 
 
 
 
 
 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
 
 
 
 
 
 
 
 
recent updates
Mediengerechte Integration...
1. Abfrage - Ermittlung der Anzahl der Lieferanten Anzahl...
by Edin.Osmanagic.Uni-Linz (2007.06.21, 11:22)
3. Tutorium
Optionsfelder Aussuchen: Bitte treffen Sie Ihre Auswahl: Kunde Buch Verlag...
by Edin.Osmanagic.Uni-Linz (2007.06.05, 11:09)
Tutoriumsübung vom...
SQL-Abfrage Bestand - Auftragsmenge/summe...
by Edin.Osmanagic.Uni-Linz (2007.06.04, 20:19)
First Mover
hier kommt man zu meinem Beitrag, der sich auch mit...
by Claudia.Riegler-Klinger.Uni-Linz (2007.05.20, 19:01)
"First Mover" nach Pils...
  E-Business umfasst die Gestaltung aller Bereiche...
by Edin.Osmanagic.Uni-Linz (2007.05.19, 13:28)

xml version of this page

made with antville