Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Contribute to GitLab
Sign in
Toggle navigation
S
softlab-thesis
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Antonios Angelakis
softlab-thesis
Commits
67ccb534
Commit
67ccb534
authored
Mar 16, 2018
by
Antonios Angelakis
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Finish figures and listings
parent
97787d6f
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
71 additions
and
39 deletions
+71
-39
catsexample.xml
Listings/catsexample.xml
+11
-7
pdoexamples.php
Listings/pdoexamples.php
+12
-11
thesis.tex
thesis.tex
+48
-21
No files found.
Listings/catsexample.xml
View file @
67ccb534
...
@@ -4,6 +4,7 @@
...
@@ -4,6 +4,7 @@
author=
"Admin"
inputFile=
"titlos.in"
outputFile=
"titlos.out"
>
author=
"Admin"
inputFile=
"titlos.in"
outputFile=
"titlos.out"
>
<Keyword
code=
"alg.geometry"
/>
<Keyword
code=
"alg.geometry"
/>
<ProblemStatement>
<ProblemStatement>
Problem statement and description.
Problem statement and description.
</ProblemStatement>
</ProblemStatement>
...
@@ -17,15 +18,15 @@
...
@@ -17,15 +18,15 @@
</OutputFormat>
</OutputFormat>
<ProblemConstraints>
<ProblemConstraints>
$1 \le m \le 100$, $-100 \le x_i \le 100, 0
<
y_i \le 100$
$1 \le m \le 100$, $-100 \le x_i \le 100, 0
<
y_i \le 100$
</ProblemConstraints>
</ProblemConstraints>
<Sample
rank=
"1"
>
<Sample
rank=
"1"
>
<SampleIn>
<SampleIn>
3
3
1 2 3
1 2 3
4 5 6
4 5 6
7 8 9
7 8 9
</SampleIn>
</SampleIn>
<SampleOut>
<SampleOut>
6
6
...
@@ -38,7 +39,10 @@ $1 \le m \le 100$, $-100 \le x_i \le 100, 0 < y_i \le 100$
...
@@ -38,7 +39,10 @@ $1 \le m \le 100$, $-100 \le x_i \le 100, 0 < y_i \le 100$
<Import
guid=
"std.testlib.1.1"
type=
"checker"
/>
<Import
guid=
"std.testlib.1.1"
type=
"checker"
/>
<Checker
name=
"ch"
src=
"check.dpr"
style=
"testlib"
/>
<Checker
name=
"ch"
src=
"check.dpr"
style=
"testlib"
/>
<TestRange
from=
"1"
to=
"42"
><In
src=
"tests/%0n"
/><Out
use=
"sol"
/></TestRange>
<TestRange
from=
"1"
to=
"42"
>
<In
src=
"tests/%0n"
/>
<Out
use=
"sol"
/>
</TestRange>
</Problem>
</Problem>
</CATS>
</CATS>
Listings/pdoexamples.php
View file @
67ccb534
<?php
<?php
// Connecting to a MySQL database
$user
=
"root"
;
$user
=
"root"
;
$pass
=
"root"
;
$pass
=
"root"
;
$dsn
=
"mysql:host=localhost;dbname=test"
;
$charset
=
"utf8"
;
$charset
=
"utf8"
;
$dsn
=
"mysql:host=localhost;dbname=test;charset=
$charset
"
;
$dbh
=
new
PDO
(
'mysql:host=localhost;dbname=test;charset=$charset'
,
$user
,
$pass
);
$db
=
new
PDO
(
$dsn
,
$user
,
$pass
);
?>
<?php
$query
=
"SELECT * FROM foo WHERE bar = "
.
$db
->
quote
(
$zip
);
// Executing a simple query
$val
=
42
;
$query
=
"SELECT * FROM foo WHERE bar = "
.
$db
->
quote
(
$val
);
$result
=
$db
->
query
(
$query
);
$result
=
$db
->
query
(
$query
);
while
(
$row
=
$result
->
fetch
(
PDO
::
FETCH_ASSOC
))
{
while
(
$row
=
$result
->
fetch
(
PDO
::
FETCH_ASSOC
))
{
print_r
(
$row
);
print_r
(
$row
);
}
}
?>
<?php
// Sequential executions of a prepared statement
$stmt
=
$dbh
->
prepare
(
"INSERT INTO REGISTRY (name, value) VALUES (:name, :value)"
);
$query
=
"INSERT INTO REGISTRY (name, value)
VALUES (:name, :value)"
;
$stmt
=
$db
->
prepare
(
$query
);
$stmt
->
bindParam
(
':name'
,
$name
);
$stmt
->
bindParam
(
':name'
,
$name
);
$stmt
->
bindParam
(
':value'
,
$value
);
$stmt
->
bindParam
(
':value'
,
$value
);
//
insert one row
//
First execution
$name
=
'one'
;
$name
=
'one'
;
$value
=
1
;
$value
=
1
;
$stmt
->
execute
();
$stmt
->
execute
();
//
insert another row
with different values
//
Second execution
with different values
$name
=
'two'
;
$name
=
'two'
;
$value
=
2
;
$value
=
2
;
$stmt
->
execute
();
$stmt
->
execute
();
...
...
thesis.tex
View file @
67ccb534
...
@@ -491,7 +491,10 @@ To CATS είναι το τρίτο σύστημα που θα αναλυθεί.
...
@@ -491,7 +491,10 @@ To CATS είναι το τρίτο σύστημα που θα αναλυθεί.
γίνεται με το ανέβασμα ενός συμπιεσμένου αρχείου το οποίο περιέχει μια XML
γίνεται με το ανέβασμα ενός συμπιεσμένου αρχείου το οποίο περιέχει μια XML
περιγραφή και τα απαραίτητα αρχεία ελέγχου.
περιγραφή και τα απαραίτητα αρχεία ελέγχου.
\lstinputlisting
[frame=single,captionpos=b,caption=Παράδειγμα xml]
{
Listings/catsexample.xml
}
\lstinputlisting
[language=XML,frame=single,captionpos=b,caption=Παράδειγμα xml προβλήματος
CATS. Το CATS δημιουργεί την οθόνη του προβλήματος και τα χαρακτηριστικά του
σύμφωνα με το συγκεκριμένο αρχείο ενώ διαθέτει δυνατότητα παρουσίασης LaTeX
τύπων
\,
όπως αυτός στο ProblemConstraints.]
{
Listings/catsexample.xml
}
\bigskip
\bigskip
...
@@ -1190,16 +1193,21 @@ callback για την χρησιμοποίηση αυτών των αποτελ
...
@@ -1190,16 +1193,21 @@ callback για την χρησιμοποίηση αυτών των αποτελ
\begin{figure}
\begin{figure}
\centering
\centering
\includegraphics
[scale=0.4,trim=4 4 4 4,clip]
{
Figures/beforesep.png
}
\includegraphics
[scale=0.4,trim=4 4 4 4,clip]
{
Figures/beforesep.png
}
\caption
[Βάση πριν το διαχωρισμό]
{
Διακρίνου
}
\caption
[Προβλήματα εκτός διαγωνισμών]
{
Το κάτω μέρος της διαχείρισης
διαγωνισμών περιέχει τα προβλήματα που δεν έχουν ενταχτεί σε κάποιο
διαγωνισμό. Με το πράσινο κουμπί στα δεξιά μπορούν να μεταφερθούν σε
διαγωνισμό. Με τον ίδιο τρόπο μπορούν όλα τα προβλήματα να μεταφερθούν σε
καινούριους διαγωνισμούς ώστε να επαναχρησιμοποιηθούν.
}
\end{figure}
\end{figure}
(TODO εδώ εικόνα διαχείρισης και ισως αλλαγή αναφορών σε εικονα 1, 2 κτλ.)
\bigskip
\bigskip
\begin{figure}
\begin{figure}
\centering
\centering
\includegraphics
[scale=0.4,trim=4 4 4 4,clip]
{
Figures/sepbefore.png
}
\includegraphics
[scale=0.4,trim=4 4 4 4,clip]
{
Figures/sepbefore.png
}
\caption
[Η αρχιτεκτονική του CMS]
{
Οι υπηρεσίες του CMS και οι σχέσεις μεταξύ τους
}
\caption
[Βάση πριν το διαχωρισμό]
{
Οι πίνακες και οι σχέσεις τους πριν την
αλλαγή μας. Παρατηρούμε, ότι οι υποβολές δεν έχουν σύνδεση με το διαγωνισμό,
ενώ τα προβλήματα μπορούν να ανήκουν μόνο σε ένα διαγωνισμό.
}
\end{figure}
\end{figure}
\bigskip
\bigskip
...
@@ -1270,18 +1278,23 @@ callback για την χρησιμοποίηση αυτών των αποτελ
...
@@ -1270,18 +1278,23 @@ callback για την χρησιμοποίηση αυτών των αποτελ
\bigskip
\bigskip
Έπειτα από τις αλλαγές που περιγράφηκαν, η νέα μορφή της βάσης φαίνεται στο
σχήμα3.
Έπειτα από τις αλλαγές που περιγράφηκαν, η νέα μορφή της βάσης φαίνεται στο
Ο πίνακας compproblems είναι η νέα προσθήκη που είναι αναγκαία για τη σύνδεση
σχήμα 5.3. Ο πίνακας CompProblems είναι η νέα προσθήκη που είναι αναγκαία για
προβλημάτων με διαγωνισμός διατηρώντας μια κανονικοποιημένη βάση για αποφυγή του
τη σύνδεση προβλημάτων με διαγωνισμός διατηρώντας μια κανονικοποιημένη βάση για
πλεονασμού δεδομένων. (TODO: ισως αναφορα σε κατι σχετικο). Νέα πεδία προστέθηκαν,
αποφυγή του πλεονασμού δεδομένων. Νέα πεδία προστέθηκαν επίσης και στους
επίσης και στους
πίνακες submissions και finalresults.
πίνακες submissions και finalresults.
\bigskip
\bigskip
\begin{figure}
\begin{figure}
\centering
\centering
\includegraphics
[scale=0.4,trim=4 4 4 4,clip]
{
Figures/sepafter.png
}
\includegraphics
[scale=0.4,trim=4 4 4 4,clip]
{
Figures/sepafter.png
}
\caption
[Η αρχιτεκτονική του CMS]
{
Οι υπηρεσίες του CMS και οι σχέσεις μεταξύ τους
}
\caption
[Βάση μετά το διαχωρισμό]
{
Δημιουργήθηκε ο πίνακας CompProblems που
μας επιτρέπει τη σύνδεση προβλημάτων με πολλούς διαγωνισμούς ταυτόχρονα.
Παράλληλα, οι υποβολές απέκτησαν σύνδεση με το διαγωνισμό ώστε να
ανεξαρτητοποιηθούν από το πρόβλημα και να ανήκουν στο διαγωνισμό για τον
οποίο δημιουργήθηκαν. Επίσης, προστέθηκε και το πεδίο scoreDetailsjson στο
FinalResults.
}
\end{figure}
\end{figure}
\bigskip
\bigskip
...
@@ -1295,27 +1308,33 @@ callback για την χρησιμοποίηση αυτών των αποτελ
...
@@ -1295,27 +1308,33 @@ callback για την χρησιμοποίηση αυτών των αποτελ
επιλέγοντας διαγωνισμό. Τέλος, στο κάτω μέρος της οθόνης, όπου αναγράφονταν τα
επιλέγοντας διαγωνισμό. Τέλος, στο κάτω μέρος της οθόνης, όπου αναγράφονταν τα
ανένταχτα προβλήματα, κρίθηκε προτιμότερο να αναγράφονται όλα τα προβλήματα
ανένταχτα προβλήματα, κρίθηκε προτιμότερο να αναγράφονται όλα τα προβλήματα
ώστε να είναι ευκολότερο να αναζητηθεί και να αντιγραφεί κάποιο σε ένα νέο
ώστε να είναι ευκολότερο να αναζητηθεί και να αντιγραφεί κάποιο σε ένα νέο
διαγωνισμό. Η νέα διαχείριση παρουσιάζεται στις φωτογραφίες 5.
2 και 5.3
.
διαγωνισμό. Η νέα διαχείριση παρουσιάζεται στις φωτογραφίες 5.
4 και 5.5
.
\bigskip
\bigskip
\begin{figure}
\begin{figure}
\centering
\centering
\includegraphics
[scale=0.4,trim=4 4 4 4,clip]
{
Figures/aftersep.png
}
\includegraphics
[scale=0.4,trim=4 4 4 4,clip]
{
Figures/aftersep.png
}
\caption
[Η αρχιτεκτονική του CMS]
{
Οι υπηρεσίες του CMS και οι σχέσεις μεταξύ τους
}
\caption
[Διαχείριση διαγωνισμών με αντιγραφή προβλημάτων]
{
Η διαχείριση διαγωνισμών
δεν έχει κάποια διαφορά εμφανισιακά, αλλά πλέον επιτρέπεται η χρήση ενός
προβλήματος σε πολλαπλούς διαγωνισμούς, όπως φαίνεται στο πρόβλημα sudokugame.
Το πρώην πλήκτρο μεταφοράς στα δεξιά κάθε προβλήματος πλέον αντιγράφει το πρόβλημα
στον επιλεγμένο διαγωνισμό.
}
\end{figure}
\end{figure}
\begin{figure}
\begin{figure}
\centering
\centering
\includegraphics
[scale=0.4,trim=4 4 4 4,clip]
{
Figures/aftersepall.png
}
\includegraphics
[scale=0.4,trim=4 4 4 4,clip]
{
Figures/aftersepall.png
}
\caption
[Η αρχιτεκτονική του CMS]
{
Οι υπηρεσίες του CMS και οι σχέσεις μεταξύ τους
}
\caption
[Εμφάνιση όλων των προβλημάτων]
{
Το κάτω μέρος της διαχείρισης
επανασχεδιάστηκε ώστε να περιέχει όλα τα προβλήματα για εύκολη επισκόπηση,
τροποποίηση τους και αντιγραφή τους σε διαγωνισμούς.
}
\end{figure}
\end{figure}
\bigskip
\bigskip
Μια ενδιαφέρουσα παρατήρηση είναι ότι η αντιγραφή ενός προβλήματος σε νέο
Μια ενδιαφέρουσα παρατήρηση είναι ότι η αντιγραφή ενός προβλήματος σε νέο
διαγωνισμό, απλά αλλάζει τους συσχετισμούς στη βάση, προσθέτοντας μια νέα
διαγωνισμό, απλά αλλάζει τους συσχετισμούς στη βάση, προσθέτοντας μια νέα
εγγραφή στον
compp
roblems. Τόσο τα αρχεία ελέγχου, που είναι αποθηκευμένα στο
εγγραφή στον
CompP
roblems. Τόσο τα αρχεία ελέγχου, που είναι αποθηκευμένα στο
δίσκο του εξυπηρετητή για να διαβάζονται από τον Kewii, όσο και οι ομάδες
δίσκο του εξυπηρετητή για να διαβάζονται από τον Kewii, όσο και οι ομάδες
αρχείων ελέγχου, που αντιστοιχίζονται στη βάση με τα προβλήματα, δεν
αρχείων ελέγχου, που αντιστοιχίζονται στη βάση με τα προβλήματα, δεν
αντιγράφονται και, ως αποτέλεσμα χαρακτηρίζουν το πρόβλημα σε όλους τους
αντιγράφονται και, ως αποτέλεσμα χαρακτηρίζουν το πρόβλημα σε όλους τους
...
@@ -1337,8 +1356,6 @@ callback για την χρησιμοποίηση αυτών των αποτελ
...
@@ -1337,8 +1356,6 @@ callback για την χρησιμοποίηση αυτών των αποτελ
\subsection
{
Προσθήκη γλωσσών στο Grader/Kewii
}
\subsection
{
Προσθήκη γλωσσών στο Grader/Kewii
}
% TODO: ερωτηση παπασπυρου για chroot jail
Ο Grader, όπως έχει αναφερθεί και σε προηγούμενα κεφάλαια, επιτρέπει
Ο Grader, όπως έχει αναφερθεί και σε προηγούμενα κεφάλαια, επιτρέπει
στους διαγωνιζόμενους την υποβολή λύσεων σε οποιαδήποτε γλώσσα
στους διαγωνιζόμενους την υποβολή λύσεων σε οποιαδήποτε γλώσσα
προγραμματισμού από τις υποστηριζόμενες. Οι υποστηριζόμενες γλώσσες
προγραμματισμού από τις υποστηριζόμενες. Οι υποστηριζόμενες γλώσσες
...
@@ -1500,12 +1517,18 @@ descriptor.json στο οποίο έχουν συμπληρωθεί όλα τα
...
@@ -1500,12 +1517,18 @@ descriptor.json στο οποίο έχουν συμπληρωθεί όλα τα
\FloatBarrier
\FloatBarrier
\lstinputlisting
[frame=single,captionpos=b,caption=Παράδειγμα descriptor.json]
{
Listings/descriptordiploma.json
}
\lstinputlisting
[frame=single,captionpos=b,caption=Παράδειγμα descriptor.json.
Το συγκεκριμένο αρχείο περιγράφει 4 αρχεία ελέγχου σε 3 ομάδες αρχείων. Ακόμα
δίνει τη μορφή ονομασίας των αρχείων εισόδου και
εξόδου.]
{
Listings/descriptordiploma.json
}
\begin{figure}
\begin{figure}
\centering
\centering
\includegraphics
[scale=0.4,trim=4 4 4 4,clip]
{
Figures/massupload.png
}
\includegraphics
[scale=0.4,trim=4 4 4 4,clip]
{
Figures/massupload.png
}
\caption
[Η αρχιτεκτονική του CMS]
{
Οι υπηρεσίες του CMS και οι σχέσεις μεταξύ τους
}
\caption
[Προσθήκη επιλογής μαζικού ανεβάσματος αρχείων]
{
Η επιλογή μαζικού
ανεβάσματος αρχείων ελέγχου τοποθετήθηκε κάτω από το ανέβασμα μεμονωμένων αρχείων.
Στον τίτλο συμπεριλήφθηκε και η προειδοποίηση για τη διαγραφή υπαρχόντων αρχείων
και ομάδων κατά το ανέβασμα.
}
\end{figure}
\end{figure}
\subsection
{
Εργαλείο δημιουργίας
}
\subsection
{
Εργαλείο δημιουργίας
}
...
@@ -1529,7 +1552,9 @@ descriptor.json αρχείου.
...
@@ -1529,7 +1552,9 @@ descriptor.json αρχείου.
\begin{figure}
\begin{figure}
\centering
\centering
\includegraphics
[scale=0.4,trim=4 4 4 4,clip]
{
Figures/interactive.png
}
\includegraphics
[scale=0.4,trim=4 4 4 4,clip]
{
Figures/interactive.png
}
\caption
[Παράδειγμα χρήσης interactive generator script]
{
Οι υπηρεσίες του CMS και οι σχέσεις μεταξύ τους
}
\caption
[Εκτέλεση διαδραστικού generator αρχείου descriptor.json]
{
Ένα παράδειγμα
εκτέλεσης του generatejson.py για την αυτόματη παραγωγή του απαραίτητου
descriptor.json. Οι εντολές του χρήστη είναι υπογραμμισμένες.
}
\end{figure}
\end{figure}
\section
{
Αλλαγή MySQL connector
}
\section
{
Αλλαγή MySQL connector
}
...
@@ -1555,7 +1580,9 @@ manual της PHP (https://secure.php.net/manual/en/mysql.php TODO).
...
@@ -1555,7 +1580,9 @@ manual της PHP (https://secure.php.net/manual/en/mysql.php TODO).
\begin{figure}
\begin{figure}
\centering
\centering
\includegraphics
[scale=0.4,trim=4 4 4 4,clip]
{
Figures/mysqlconnectors.png
}
\includegraphics
[scale=0.4,trim=4 4 4 4,clip]
{
Figures/mysqlconnectors.png
}
\caption
[Παράδειγμα χρήσης interactive generator script]
{
Οι υπηρεσίες του CMS και οι σχέσεις μεταξύ τους
}
\caption
[Σύγκριση των επεκτάσεων MySQL της PHP]
{
Οι δυνατότητες των επίσημων
επεκτάσεων της PHP για επικοινωνία με MySQL βάση. Παρατηρούμε ότι mysqli και
PDO
\_
MySQL είναι εξίσου καλές επιλογές.
}
\end{figure}
\end{figure}
\bigskip
\bigskip
...
@@ -1629,7 +1656,7 @@ execute. Η επέκταση εμπεριέχει, επίσης, και δική
...
@@ -1629,7 +1656,7 @@ execute. Η επέκταση εμπεριέχει, επίσης, και δική
\FloatBarrier
\FloatBarrier
\lstinputlisting
[frame=single,captionpos=b,caption=Παραδείγματα χρήσης PDO]
{
Listings/pdoexamples.php
}
\lstinputlisting
[frame=single,captionpos=b,caption=Παραδείγματα χρήσης PDO
για σύνδεσή με βάση\, εκτέλεση απλών queries και εκτέλεση prepared statement.
]
{
Listings/pdoexamples.php
}
\chapter
{
Συμπεράσματα
}
\chapter
{
Συμπεράσματα
}
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment