Pages

Saturday, April 28, 2007

Καπελοreport

Ένταξει, το ομολογώ δεν έχω κάνει και πολλά. Η αλήθεια είναι πως είμαι πιο τεμπέλης και από τελειωμένο, ράθυμο μηδενιστή την ημέρα των εκλογών μετά από ολονύχτιο ξενύχτι. Το μόνο που πρόλαβα ή καλύτερα αρκέστηκα να κάνω τις τελευταίες μέρες σε σχέση με την διαβοήτη πια διπλωματική (ΟΛΟΙ για αυτό με ρωτάνε... όχι πως είναι το δόντι μου....η υγεία μου...αλλά η άθλια διπλωματική μου), είναι να μεταφράσω δύο πολύ μικρούς κώδικες από C σε Matlab scripting language (aka m language), τους οποίους τσίμπησα από το NURBS ΒΟΟΚ. Φυσικά δεν έχω μπεί στη διαδικασία να τους debugάρω, ούτε καν να ελέγξω τους δείκτες (οι δείκτες είναι πάντα λάθος!!!).

Το καλύτερο από όλα είναι πως κάποτε ήξερα γιατί έπρεπε να κάνω την παραπάνω μεταγλώτισση (και όχι ‘μετάφραση’ για να ακριβολογούμε...). Είχα ένα σχέδιο, ένα μεγαλφυές πλάνο άμα θέλετε, είχα στο νου μου τι πρέπει να κάνω με τους διάφορους κώδικες, που και πως πρέπει να επέμβω στη διαδικασία βελτιστοποίησης, και πως θα ενσωμάτωνα τον εμπλουτισμό της γεωμετρίας.... όλα αυτά τα έχω ξεχάσει. Τελείως. Και τώρα πρέπει να σκεφτώ αυτό το περίφημο σχέδιο πάλι από την αρχή. Όμορφα. Αχ, ανέμελες οι εποχές που είχα ακαδημαϊκά ενδιαφέροντα!

Οι εν λόγω κώδικες verbatim είναι οι εξής 2:

// Basis Function.

// INPUT:

// i - knot span ( from FindSpan() )

// u - parametric point

// p - spline degree

// U - knot sequence

// OUTPUT:

// N - Basis functions vector[p+1]

// Algorithm A2.2 from 'The NURBS BOOK' pg70.

void basisfun(int i, double u, int p, double *U, double *N)

{

int j,r;

double saved, temp;

// work space

double *left = (double*) mxMalloc((p+1)*sizeof(double));

double *right = (double*) mxMalloc((p+1)*sizeof(double));

N[0] = 1.0;

for (j = 1; j <= p; j++)

{

left[j] = u - U[i+1-j];

right[j] = U[i+j] - u;

saved = 0.0;

for (r = 0; r <>

{

temp = N[r] / (right[r+1] + left[j-r]);

N[r] = saved + right[r+1] * temp;

saved = left[j-r] * temp;

}

N[j] = saved;

}

mxFree(left);

mxFree(right);

}

και

// Find the knot span of the parametric point u.

// INPUT:

// n - number of control points - 1

// p - spline degree

// u - parametric point

// U - knot sequence

// RETURN:

// s - knot span

// Algorithm A2.1 from 'The NURBS BOOK' pg68

int findspan(int n, int p, double u, double *U)

{

int low, high, mid;

// special case

if (u == U[n+1]) return(n);

// do binary search

low = p;

high = n + 1;

mid = (low + high) / 2;

while (u <>= U[mid+1])

{

if (u <>

high = mid;

else

low = mid;

mid = (low + high) / 2;

}

return(mid);

}

Δεν έχω τη παραμικρή ιδέα πόσους κανόνες clopyright (no spelling errors intended) παραβιάζω, αλλά σήμερα νιώθω λίγο ριψοκίνδυνος, κάτι σαν την αμυντική γραμμή της ομαδάρας.

Στα παρελκόμενα των προηγούμενων ημερών, είχαμε την κατά με απογοητευτική Berlinale inAthens με τον πλεόν διαβόητο ‘συγχρονισμένο υποτιτλισμό΄’ (!!!!), με τα ‘A Friend of Mine’ (ζωηρή αλλά και σκηνοθετικά σοβαρή και ευχάριστη, και με happy end) και το ‘Spider Lillies’ (λεσβίες και σχιζοειδλη συμπεριφορά made in Taiwan, γουστάρω!) να είναι τα καλύτερα από τα πολύ λίγα που πρόλαβα να δω, ενώ το Fast Food Nation και το When a Man Falls in theForest να αδικούν τον απο-βιομηχανοποιημένο αμερικάνικο κινηματογράφο. Μπέρtheway, αν και ψήνομαι τρελλά, δεν θα υποκύψω στο πειρασμό να κράξω το Gazarte.

Κατά τα άλλα, δουλειά, δουλειά, και πάλι δουλειά, με μπόλικους εκνευρισμούς, ηλιθιότητες και ηλιθίους (μεταξύ αυτών κι εγώ φυσικά!) εκκρεμότητες (νέο φυλλάδιο, νέο website, wireless δίκτυο, επαναπροσδιορισμός του availability and tares grid στα GDS και άλλα....) και μια δικαιολογημένη αίσθηση πως πλησιάζει κάποια στραβή στη γωνία. Άμα περάσει και η Milan, την κάτσαμε τη βάρκα με τις ακυρώσεις για τις 23 του Μαίου.

Όπως και να έχει, έχω καταφέρει και ακόμα κρατώ τα ράματα στα ούλα μου (δεν έχω τη παραμικρή ιδέα για τις επιπτώσεις), γεγονός το οποίο μάλλον αντιρποσωπεύει την ελαφρότητα με την οποία αντιμετώπιζω το χρόνο. Όπως λόγου χάρη η ξαδέρφη μου, η οποία έχει τα γενέθλιά της σήμερα, και παντρεύεται σε λίγες μέρες. Ούτε δώρα έχω σκεφτεί, ούτε έχω πάει για κοστούμι, το κούρεμα θα γίνει παράδειγμα αναβλητικότητας, ενώ διερωτώμαι γιατί πρέπει να αγοράσω άλλο ένα ζευγάρι παπούτσα. Ξεφτίλα σκέτη, και το χειρότερο είναι πως ούτε καν αγχώνομαι, κουβαλάω πάνω μου φαίνεται μια φαιδρή σιγουρία πως κάπως θα τα βολέψω πάλι. Λες;

Υ.Γ.Έμαθα πως ο Σαρμπέλ αγόρασε κάτι ομόλογα για να ξεπληρώσει τα καμμένα αμάξια των Εξαρχείων που παρασύρθηκαν στον βυθό της Σαντορίνης η οποία πωλείται για να καλύψει τα έξοδα των νέων μεταγραφικών στόχων της Εθνικής ή οποία προβλέπεται να μετακομίσει στην Γουανδελούπη. Αληθεύει;

13 comments:

Anonymous said...

exw thn apanthsh sto provlhma sou

Iasonas said...

Ναι;

Anonymous said...

nai

Iasonas said...

Και ποιά είναι αυτή;

Anonymous said...

8a sou dwsw hints na th vreis monos sou

Iasonas said...

Ναι;

Anonymous said...

To left[j] = u - U[i+1-j] den einai swsto

Iasonas said...

I am speechless....or write-less or blog-less for that matter.

Anonymous said...

Nothing to add...

Gogo said...

molis se diavasa..
elpizw na min pires ena akoma zeugari "gamopapoutsa".. ksereis, apo auta pou forane oi antres gambroi, ta aidiastika ;-(((

Iasonas said...

Δεν έχω την παραμικρή ιδέα για τι παπούτσα μιλάμε, αλλά αποφάσισα να μην πάρω, χα! Τελικά πάντως, δεν έχω μα καμμία ίδεα τι υποτίθεται πως πρέπει να βάλω...

Gogo said...

E pare kana tipou mokasini mwre, akoma kalitera kati pou na moiazei kai sport!

Iasonas said...

Δεν το πιστεύω πως δέχομαι συμβουλές υψηλής υποδηματικής on-line (www.what-to-wear-damnit.gr), αλλά ευχαριστώ. Θα πάω μάλλον με κάτι αλά Madrugada, old enough to pay, young enough to kick around δερμάτινα με ψηλό αστράγγαλο από Μοναστηράκι με 30 ευρωκοτοπουλάκια, και να πάνε να κόψουνε το λαιμό τους!