Profiler Log
Mijn dag-tot-dag logboek van de werkzaamheden die ik op profiler uitvoer.

HOME

Archives:

This page is powered by Blogger. Why isn't yours?
vrijdag, augustus 31, 2001
Mail van Davy aan Edwin, 31-8-2001

He,

ik ben ook klaar voor vandaag en maandag ga ik weer verden met
Labsoftime, dus ik denk dat mijn bijdrage voor deze release, wat coden
betreft, er ver op zit. Ik heb het volgende gedaan:

* De weergavesignatuur eruit gesloopt (zie vorige mail)
* Een bug bij het opslaang van user templates gefixt (koppelingen werden
niet opgeslagen als je de CloneDB optie gebruikte)
* Functionaliteit toegevoegd om de huidige instellingen op te slaan als
user template. Het enige wat nu niet wordt opgeslagen is de
component-afhankelijke instellingen, maar ik denk dat zelfs dat
misschien wel te realiseren is (ook al kost het wat extra moeite...
ik schat een halve tot een hele dag).
* Een nieuwe dump gemaakt van de WEST_V1 (profiler_dba) voor Profiler
Lite (zowel dump als queries.trf bestand staan in source safe)
* De documentatie bijgewerkt op http:\\profiler.blogspot.com
* Het 'Te doen' document aangepast (dingen groen gemaakt die nu af zijn)

Dit wordt een erg waardevolle release, daar ben ik zeker van. Misschien
dat het nu eindelijk de organisatie ik kan.

Groeten,

Davy

PS: vergeet niet bij het maken van de install applicatie STFLib mee te nemen!


Mail van Edwin aan Davy, 31-8-2001

Hoi,


Ik ben klaar voor vandaaag. Ik heb het volgende gedaan:

- Hertekenen alleen indien zichtbaar. Dus als een deel van het profiel
buiten het scherm komt, wordt alleen een deel hertekend. Indien je
ergens klikt ofzo, wordt alleen het deel dat zichtbaar is hertekend.
Alles werkt nu een stuk sneller, zeker als je ingezoomd bent!

- Bij resize tijdelijk in kladmode; zodra de muis over het profiel
beweegt zit Profiler weer in de detailmode (indien Profiler in de
detailmode stond natuurlijk).


Ik kom niet meer aan testen toe, want ik ga zo tennissen.


Die progress bar bij berekenen van de lagenkolom is weer geheel
zichtbaar als het goed is.


Groeten Edwin en Prettig Weekeinde!!


Mail van Davy aan Edwin, 31-8-2001
Ondertussen heeft Edwin het overbodig hertekenen van het profiel opgelost en enkele andere herteken-problemen opgelost

Hoi,

Het was een hele klus, maar ik geloof dat ik nu op een vrij aardige
manier de gebruikerssignatuur als logisch object uit de applicatie
verwijderd. Dit heb ik als volgt gedaan:

1) De gebruikerssignatuur zoals die in legendaApp als los scherm bestond
is eruit gehaald (staat nog wel in de source, maar wordt niet
gebruikt. Je weet nooit of je het ooit terug zou willen halen)
2) Bij het toekennen van een weergavepatroon aan een
criteriumeenheid/legenda koppeling vraagt nu meteen om de
weergave. Je kunt dan dus kiezen uit een weergavepatroon uit een
component of er zelf 1 aanmaken (kan in hetzelfde scherm)
3) Als je een koppeling legt met een component wordt deze achter de
schermen automatisch nog steeds omgelegd naar een BESTAANDE
weergavepatroon. Deze zitten immers toch altijd in de database
en er is geen reden om dan steeds een nieuwe instantie van
hetzelfde aan te maken.
4) Als je een koppeling legt naar een zelf gedefinieerd weergavepatroon,
wordt automatisch een nieuwe weergavepatroon aangemaakt in de
database. Deze wordt verder nooit meer aan iets anders gekoppeld
en is dus voor exclusief gebruik van de koppeling. Dat betekent
dat bij een update gewoon de attributen van het weergavepatroon
kunnen worden gewijzigd.

* Consequenties van 3) en 4) zijn dat je bij een weergavepatroon, na het
aanmaken, vast zit aan de keuze tussen een component of een zelfgemaakt
weergavepatroon. Als je dus gaat updaten kun je niet meer switchen
tussen een component en een eigen definitie. Je kunt natuurlijk altijd
nog de koppeling verwijderen en een nieuwe aanmaken als je ECHT wilt
wijzigen. De reden voor deze beperking is de dramatische vermindering
van complexiteit in de code. Het lijkt mij geen groot bezwaar voor de
gebruiker.

5) Het inleesmechanisme van ProfilerApp is gewijzigd om de nieuwe
indeling te ondersteunen. We hebben namelijk geen namen meer
voor signaturen (voorheen was dit de sleutel). Daarintegen is de
key leeg en kun je ze dus niet meer terugvinden in een lijst.
Daarom worden ze nu aangemaakt tijdens het aanmaken van de
legenda in plaats van ze eerst los aan te maken en ze vervolgens
te moeten koppelen. Dit heeft de inleesprocedure versneld (het
scheelt immers een flink aantal zoekacties door lijsten) maar
heeft wel geleid tot een groter .trf-bestand voor de
ProfilerLite versie (900 KB i.p.v. 700 KB).

* Consequentie van 5) is dat een weergavepatroon niet altijd meer een
key bevat. Op sommige plaatsen in de User Interface wordt deze
key echter afgedrukt (zoals in het eigenschappen scherm van de
lagen kolom component), wat betekent dat daar nu niets staat.
Dit lijkt mij geen groot bezwaar.

Het lijkt mij verstandig om voor de release toch nog even een grondige
test uit te voeren, omdat er nu weer flink gesleuteld is. Volgens mij
werkt het, maar ik ben natuurlijk niet objectief.


Mijn volgende 'missie' is de 'Save Current Settings As User Template'
knop in ProfilerApp. Ik zal alles wat er nu staat even inchecken en
labelen voor het geval die volgende missie niet echt wil vlotten.

Groeten,

Davy





woensdag, augustus 22, 2001
Voortgang Profiler uitbreiding/buglijst d.d. 13-8-2001
Mail van Davy aan Edwin, 22-8-2001

Hoi,

het gaat best lekker op het moment. Ik zal even kort aangeven welke
zaken ik al (en vooral hoe) heb opgelost, wat mijn eventuele vragen nog
zijn enz. Ik doe dit aan de hand van de lijst die je me gegeven hebt.

Profiler
-----------

(1) Analoge kolom: instelling voor manieren tekenen lijn.

Er moesten 3 manieren komen waarop je een analoge kolom kunt tekenen.
Daarom ben ik meteen in de draw-code gedoken, maar daarvan was de code
dusdanig geschreven dat ik de uitbreiding niet eenvoudig kon maken.
Daarom heb ik de hele Draw-functie maar opnieuw geschreven, maar wel op
zo'n manier dat de 3 manieren van tekenen op een goede manier kon worden
toegevoegd.

De nieuwe analoge kolom kan de volgende dingen:
* Zowel links als rechts als nulpunt instellen (kan in scherm & user
template worden ingesteld)
* Een schaal gebruiken voor de meetwaarden (kan in scherm & user
template worden ingesteld)
* Een manier voor het tekenen van de lijn instellen (3 keuzes) (kan in
scherm & user template worden ingesteld)

De volgende zaken kunnen nog niet:
* De legenda gebruiken om te kijken wat de kleur en stijl van de lijn
moet zijn (volgens mij werkt dat nog niet)
* Een stukje van de lijn afkappen als de analoge kolom langs onder wordt
gekortwiekt. Dit kan een lelijk effect geven als je de
projectiediepte niet gelijk stelt met een bestaande onderdiepte.


(2) Analoge kolom: kolombreedte als eigenschap van een legenda/template: kan
dit en zo ja, hoe?

Dit snap ik niet helemaal. Ik kan begrijpen dat je de kolombreedte van
een laag in een lagenkolom zou willen kunnen opgeven in een legenda
(punt 5), maar bij een analoge kolom zie ik even niet wat je hiermee
bedoelt.


(3) Analoge kolom: tekst 'analoge kolom' onderdrukken indien geen data

Is gebeurt. Was uiteraard een fluitje van een cent.


(4) Analoge kolom: lijn vanaf links of rechts tekenen

Zie ook punt (1). Bovendien kon dit in de oude versie ook al, dus ik
snap niet hoe dit als probleempunt in de lijst is gekomen.


(9) Y-schaal opties als instellingen in de template: kan dit en zo ja,
hoe?

Ja, inderdaad, dit kon al een geruime tijd. Dit kan dankzij een mechanisme
dat we halverwege de werkzaamheden voor de boorgatinrichting al hebben
ingebouwd. Dit mechanisme geeft weergave-componenten een platform om aan
de applicatie duidelijk te maken welke instellingen het heeft. Deze
instellingen staan in een string in het component hard-gecodeerd en
worden door ProfilerApp dynamisch uitgelezen bij het aanmaken van een
user-template. Het onderste gedeelte van het user-template definitie
scherm gaat over dit gedeelte. Je kunt rechtsboven de verschillende
componenten doorlopen. Als je een weergavecomponent selecteert, in dit
geval de Y-Schaal component, krijg je onderin alle mogelijke
instellingen te zien. Deze kun je veranderen en opslaan in de template.
Dit mechanisme is erg flexibel en eenvoudig uit te breiden voor nieuwe
opties.


(17) Kunnen wijzigen van de naam van een template.

Was een beetje tricky om te doen, maar het is nu mogelijk. Je kunt de
naam wijzigen in het scherm waar je ook alle andere instellingen van de
template kunt wijzigen. Dus gewoon de user-template selecteren en dan
'Wijzigen' kiezen.



Legenda App
---------------------

(1) Hoe main database te bewerken?

Dit is altijd al mogelijk geweest door de primaire en secundaire
database om te draaien. Omdat dit natuurlijk niet handig is om steeds te
doen heb ik een opstartparameter bij de LegendaApp bij-geprogrammeerd.
Als je LegendaApp gewoon start, krijg je de reguliere versie (dus
primaire database als ALLEEN LEZEN en de secundaire database voor de
updates). Start je LegendaApp op de volgende manier:
D:Profiler\> LegendaApp \m
dan start LegendaApp in de mode voor het wijzigen van de Main database
(vandaar de M van Main). Je kunt die ook zien door de gewijzigde
koptekst van het hoofdscherm. Je kunt dan de main database naar
hartelust bewerken.

Tijdens deze uitbreiding kwam ik volgende problemen nog tegen:
* De secundaire database detecteerde niet meer dat de primaire database
was gewijzigd. Dit moet al sinds de integratie van STFLib het geval zijn
geweest, want de fout lag bij het feit dat alle functies van SetManager
en ExtSetManager als final waren gedefinieerd (dus niet met virtual) en
dus niet konden worden ge-overload. Ik heb daarom een nieuwe STFLib
release uitgebracht, waarin alle functies van SetManager en
ExtSetManager overloadable zijn. Ik heb meteen de vervelende trayicon
bug gefixt (dus het feit dat de trayicon niet goed functioneerde en kon
crashen bij het gebruik van STFLib in de DINO-SBB5 en DINO-Sondering
componenten). Profiler bevat nu dus STF v. 4.2.6
* De Database-Synchronisatie bevatte nog een groot aantal fouten in
queries. Deze heb ik ook meteen gefixt, dus ik denk dat het
synchroniseren nu helemaal goed werkt. Ik heb het getest door puur
gebruik te maken van LegendaApp en dan lijkt alles goed te gaan. Volgens
mij gaat het echter ook goed als je handmatig de database wijzigt en
vervolgens een Synchronisatie forceert (misschien ook leuk om daar nog
een functie voor in te bouwen: 'Synchronisatie Forceren')


(3) Probleem met niet unieke 'weergavepatroon.key'

Ik ga dit probleem op proberen te lossen door de koppeling tussen
weergavepatroon en weergavesignatuur 1-op-1 te maken in plaats van het
huidige n-op-1. Ik denk dat dit een beter model is, omdat je signaturen
niet gauw zult willen hergebruiken. Het gaat wel een hoop data schelen
als je eigen kopieën gaat bijhouden van bestaande legenda's met een paar
kleine wijzigingen....


Ik ga op het moment met LegendaApp punt (3) beginnen.


Zo, da's weer genoeg info voor het moment ;-)

Groeten,

Davy