Push-Nachrichten von MacTechNews.de
Würden Sie gerne aktuelle Nachrichten aus der Apple-Welt direkt über Push-Nachrichten erhalten?
Forum>Entwickler>Fragen zu Perl am Mac

Fragen zu Perl am Mac

flx
flx27.11.0603:01
Hallo,

ich versuche eine lokale MySQL Datenbank-Datei mit Hilfe von Schemaball grafisch darzustellen. Habe mich schon ein wenig in die Tutorials eingelesen bin aber mit Perl nicht vertraut.

Bei den Systemanforderungen stehen einige Dinge
Was muss ich davon installieren und was ist bereits bei Mac OS X enthalten?

Wie lege ich mit der Programmierung los? Gibt es dafür extra einen Editor?
0

Kommentare

flx
flx27.11.0614:26
Kein Perl Experte unter euch?
0
oefinger
oefinger27.11.0614:46
ich weiss auf Anhieb nicht, welche der Module standardmäßig installiert sind (hab gerade keinen Zugang zu einem Mac), aber du kannst über fink (darwinports müsset auch gehen, habe ich aber noch nie gemacht) relativ bequem module nachinstallieren. Geht zur Not auch von hand, ist aber stressiger, ggf. mal nach googeln.
Wenn du im Terminal "perldoc <Modulname>" (also z.B. "perldoc Math::Bezier") eingibst, dann bekommst du eine Dokumentation zu den Modulen (sofern die Module installiert sind)
Als Editor eignet sich eigentlich jeder simple Texteditor, manche bieten zusätzlich Syntax Coloring, was sehr hilfreich sein kann, insbesondere am Anfang. Smultron fällt mir sofort ein, ansonsten mal bei versiontracker oder MacUpdate nach einem Editor suchen.

0
han
han27.11.0615:03
Die angegebenen Module zu installieren ist nicht ganz ohne, vor allem GD kann einem ganz schön zu tun geben.

Es _sollte_ relativ einfach gehen, wenn du dazu 'cpan' benutzt: Terminal auf und mit 'sudo cpan' den CPAN-assi starten. Wenn du nun "cpan> " als Eingabezeile hast warst du erfolgreich, sonst musst du das noch installieren. Ich weiss nicht mehr, ob das erst mit den Developer-Tools installiert wurde.

Bist du mal soweit kannst du einfach "install GD" tippen und das sollte laufen. Wiederhol das mit allen angegebenen Modulen ('install Config::General' usw.) und gut.


Noch ein Hinweis von wegen GD und Perl auf OS X:
0
flx
flx27.11.0618:44
oefinger: Danke. Werde mal Smultron ausprobieren.
0
flx
flx27.11.0618:46
han
Bist du mal soweit kannst du einfach "install GD" tippen und das sollte laufen. Wiederhol das mit allen angegebenen Modulen ('install Config::General' usw.) und gut.

Danke für deinen Tipp. "install GD" hat schon mal funktioniert. Nun fragt er mich aber wo meine "libgd" installiert ist. Was nun?
0
flx
flx27.11.0618:46
Hier noch ein Bild:
0
flx
flx27.11.0620:36
Also ich seh schon das ist mir für's erste zu schwierig.

Arbeite mich nun erst einmal durch ein einfaches Tutorial Aber scheitere ja daran schon.

Ich gebe nun im Terminal "perl -w" ein, oder?

$name = "Walter";
print " Hallo $name \n";

und dann geht's schon los. Wie kann dich die Datei als .pl abspeichern? Mit Speichern unter... lässt er mich nur als .term benennen. Wohin muss ich die Datei speichern um den drauffolgenden Test zu machen?
0
oefinger
oefinger27.11.0620:46
falscher Ansatz. Du programmierst nicht im terminal, sondern in einem seperaten Editor. z.B. Smultron oder TextMate (gibt noch viele andere)

darin erstellst du ein neues Dokument und gibst folgendes ein:

#!/usr/bin/perl -w
$name = "Walter";
print " Hallo $name \n";

dieses Dokument speicherst du als test.pl

Jetzt gehst du ins Terminal

dort gibst du folgendes ein:

cd ~/pfad_zu_deinem_perl_skript

und dann

chmod +x test.pl

und dann

./test.pl
0
oefinger
oefinger27.11.0620:52
so, hier kommen nun die Erklärungen:

in der Zeile #!/usr/bin/perl -w teilst du der Shell mit, mit welchem programm dieses Skript ausgeführt werden soll. In deinem Fall eben perl, das -w sorgt dafür, dass perl erweiterte Warnungen ausgibt.

Unter Unix dürfen nur Dateien ausgeführt werden, die entsprechende Rechte besitzen. Mit chmod +x test.pl gibst du der Datei die entsprechenden Rechte. das cd ... sorgt dafür, dass du im richtigen Verzeichnis bist.

mit dem ./test.pl schließlich sagst du der Shell, dass du das Skript test.pl ausführen willst. Die Shell liest nun die erste Zeile, und ruft das dort spezifizierte Programm auf und übergibt ihm das Skript zum ausführen.

Alternativ kannst du auch selbst mit perl -w test.pl das Skript ausführen, in diesem Fall wäre die erste Zeile nicht nötig.
0
oefinger
oefinger27.11.0620:55
falls das mit dem cd nicht klar ist. Angenommen, du hast dein Skript auf dem Schreibtisch gespeichert, dann müsstest du

cd ~/Desktop

eingeben, um in das Desktop Verzeichnis zu wechseln (die Ordner Bezeichnungen sind alle englisch, das blendet nur der Finder um). Das ~/ ist einfach eine kurze Form, um dein Home-Verzeichnis anzugeben. Wenn du ein neues Terminal Fenster aufmachst, solltest du aber normalerweise in deinem Home-Verzeichnis sein.
0
oefinger
oefinger27.11.0621:00
Hm, hab mir gerade mal Schemeball angesehen. Also ich kann mit den Darstellungen nichts anfangen. Die Ensembl Beispiele finde ich eher verwirrend und ich bin mit den Ensembl Datenbanken eigentlich ganz gut vertraut.
0
flx
flx27.11.0621:24
Ach so. Wunderbar, jetzt kann ich schon mal "Hallo Walter" schreiben Danke für deine Erklärung. Hat mir sehr geholfen.

Oh mann. Du machst mir aber Hoffnungen. Dachte Schemaball wäre jetzt nicht so die Welt. Verdammt ich brauche das dringend. Weißt du vielleicht eine andere Möglichkeit Beziehungen von Datenbankfeldern einer MySQL Datenbank grafisch darzustellen? Finde die Graphen von Schemaball schon sehr gelungen.
0
oefinger
oefinger28.11.0600:18
Gegenfrage: Wie viele Tabellen enthält die Datenbank?

Was ist mit einem klassischen ER-Diagramm (Entity Relationship)? Wofür benötigst du das denn?



0
oefinger
oefinger28.11.0601:04
Schemaball ist auch nicht so die Welt. Wenn man sich etwas auskennt
0
oefinger
oefinger28.11.0601:05
wie wäre es denn mit sowas als Darstellung deiner DB?

0
flx
flx28.11.0601:14
oefinger
Gegenfrage: Wie viele Tabellen enthält die Datenbank?

Was ist mit einem klassischen ER-Diagramm (Entity Relationship)? Wofür benötigst du das denn?

Im Moment arbeite ich noch nicht mit der richtigen Datenbank. Diese wird dann später in etwa 300k - 400k Datensätze enthalten. Will aber erst einmal mit einer kleinen Datenbank ausprobieren, wie es funktioniert.

Die ganze Sache brauche ich für meine Diplomarbeit in der es um die grafische Visualisierung von großen Datenmengen geht. Schwerpunkt liegt aber dabei auf dem Grafik-Design. Die "echte" Abbildung der Datenbank spielt nur eine Nebenrolle.
Leider ist das ER-Diagramm grafisch recht "unspannend".

Schemaball würde mir da schon recht passen, da ich ähnliche Graphen entwickelt habe.
0
oefinger
oefinger28.11.0602:01
Du hast aber verstanden, das Schemaballs nur die Struktur, also die logischen Beziehungen zwischen den Tabellen visualisiert? Das ist also völlig unabhängig von der Anzahl der Einträge in den Tabellen. Das Schema wird also für eine leere Datenbank genauso aussehen wie für eine mit 500Mio Einträgen.

apropos, bei der Frage nach der libgd schlägt er dir ja schon /usr/lib vor, das sollte passen, du müsstest also an der Stelle nur return drücken.
0
flx
flx28.11.0602:11
oefinger
Du hast aber verstanden, das Schemaballs nur die Struktur, also die logischen Beziehungen zwischen den Tabellen visualisiert? Das ist also völlig unabhängig von der Anzahl der Einträge in den Tabellen. Das Schema wird also für eine leere Datenbank genauso aussehen wie für eine mit 500Mio Einträgen.

apropos, bei der Frage nach der libgd schlägt er dir ja schon /usr/lib vor, das sollte passen, du müsstest also an der Stelle nur return drücken.

Ich hoffe es richtig verstanden zu haben. Schemaballs zeigt mir die Beziehungen zwischen den Tabellen auf. Je mehr Einträge in der Tabelle, desto mehr Begriffe befinden sich um den Kreis. Je mehr Beziehung zwischen den Tabellen, desto mehr Linien werden in der Mitte gezeichnet. Oder?

Aber so wie es aussieht werde ich mich jemanden suchen mussen, der mir das programmiert. Ich will nicht zu sehr in den Code einsteigen müssen, da ja der Schwerpunkt meiner Arbeit ganz wo anders liegt.
0
oefinger
oefinger28.11.0602:30
flx
Ich hoffe es richtig verstanden zu haben. Schemaballs zeigt mir die Beziehungen zwischen den Tabellen auf. Je mehr Einträge in der Tabelle, desto mehr Begriffe befinden sich um den Kreis. Je mehr Beziehung zwischen den Tabellen, desto mehr Linien werden in der Mitte gezeichnet. Oder?

Fast. Zumindest in den Beispielen wie sind es nur die Tabellen, nicht deren Inhalt. Es ist also nur eine Repräsentation der logischen Beziehungen der einzelnen Einträge (ein exon besitzt z.B. ein exon_transkript), aber schon die mengenrelationen (besitzt ein exon EIN exon_transkript, n exon_transcripts oder besitzen m exon n exon_transcripts) sind nicht mehr ersichtlich. Genau deshalb habe ich ja vorher schon gemosert, dass die Bilder zwar nett aussehen, aber sehr wenig aussagen.

Btw, der Link zeigt die Struktur für eine Datenbank des menschlichen Genoms, das sind mehrere GB an Daten. Das die sich nicht so einfach Visualisieren lassen, dürfte einleuchten.

Beim coden könnte ich dir unter Umständen helfen, brauche eh mal wieder etwas mehr SQL-Praxis. Solange es sich im Rahmen hält. Ich hole dir aus der DB die Infos, die du haben willst, die Visualisierung musst du machen. Auf Graphikprogrammieren habe ich nämlich gar keine Lust.
0
oefinger
oefinger28.11.0602:33
das dann aber besser über icq, sonst spammen wir das Forum zu

ICQ: 235953149
0
flx
flx28.11.0617:35
Wow. Das wäre super. Muss mir aber erst noch die richtigen Daten holen bzw. die Datenbank schicken lassen. Wird noch ein paar Tage dauern, dann melde ich mich bei dir.
0
flx
flx02.12.0602:09
oefinger
das dann aber besser über icq, sonst spammen wir das Forum zu

ICQ: 235953149

Im Moment hat sich die technische Seite (Programmierung) erledigt, da sich meine Professoren doch dazu überreden liesen meine Diplomarbeit mehr grafisch als technisch aufzuziehen. Gott sei Dank. Jetzt heißt es zeichnen...
0

Kommentieren

Diese Diskussion ist bereits mehr als 3 Monate alt und kann daher nicht mehr kommentiert werden.